public class JarFileSystem extends AbstractFileSystem
For historical reasons many AbstractFileSystem.* methods are implemented as protected in this class. Do not call them! Subclasses might override them, or (better) use delegation.
Most module code should never create an instance of this class directly.
Use FileUtil.getArchiveRoot(FileObject) instead.
| Modifier and Type | Class and Description |
|---|---|
static class |
JarFileSystem.Impl
Implementation of all interfaces List, Change, Info and Attr
that delegates to JarFileSystem
|
AbstractFileSystem.Attr, AbstractFileSystem.Change, AbstractFileSystem.Info, AbstractFileSystem.List, AbstractFileSystem.SymlinkInfo, AbstractFileSystem.TransferFileSystem.AtomicActionattr, change, info, list, transferPROP_DISPLAY_NAME, PROP_HIDDEN, PROP_READ_ONLY, PROP_ROOT, PROP_SYSTEM_NAME, PROP_VALID| Constructor and Description |
|---|
JarFileSystem()
Default constructor.
|
JarFileSystem(File jar)
Creates new JAR for a given JAR file.
|
| Modifier and Type | Method and Description |
|---|---|
protected Enumeration<String> |
attributes(String name) |
protected String[] |
children(String name) |
protected void |
createData(String name) |
protected void |
createFolder(String name) |
protected <T extends FileObject> |
createReference(T fo)
Creates Reference.
|
protected void |
delete(String name) |
protected void |
deleteAttributes(String name) |
protected void |
finalize()
Close the jar file when we go away...
|
protected boolean |
folder(String name) |
String |
getDisplayName()
Provides a name for the system that can be presented to the user.
|
File |
getJarFile()
Get the file path for the ZIP or JAR file.
|
Manifest |
getManifest()
Get the JAR manifest.
|
protected InputStream |
inputStream(String name) |
boolean |
isReadOnly()
This filesystem is read-only.
|
protected Date |
lastModified(String name) |
protected void |
lock(String name) |
protected void |
markUnimportant(String name) |
protected String |
mimeType(String name) |
protected OutputStream |
outputStream(String name) |
protected Object |
readAttribute(String name,
String attrName) |
protected boolean |
readOnly(String name) |
void |
removeNotify()
Notifies this filesystem that it has been removed from the repository.
|
protected void |
rename(String oldName,
String newName) |
protected void |
renameAttributes(String oldName,
String newName) |
void |
setJarFile(File aRoot)
Set name of the ZIP/JAR file.
|
protected long |
size(String name) |
protected void |
unlock(String name) |
protected void |
writeAttribute(String name,
String attrName,
Object value) |
canRead, canWrite, checkVirtual, existingFileObjects, findReference, findResource, getRefreshTime, getRoot, markImportant, refresh, refreshResource, refreshRoot, setRefreshTimeaddFileChangeListener, addFileStatusListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, createTempFile, find, findExtrasFor, fireFileStatusChanged, firePropertyChange, fireVetoableChange, getDecorator, getSystemName, getTempFolder, isDefault, isValid, removeFileChangeListener, removeFileStatusListener, removePropertyChangeListener, removeVetoableChangeListener, runAtomicAction, setSystemName, toStringpublic JarFileSystem()
Most module code should never create an instance of this class directly.
Use FileUtil.getArchiveRoot(FileObject) instead.
public JarFileSystem(File jar) throws IOException
JarFileSystem fs = new JarFileSystem(); fs.setJarFile(jar);but it is more effective in some situations. It does not open and read the content of the jar file immediately. Instead it waits until somebody asks for resources from inside the JAR.
jar - location of the JAR fileIOExceptionprotected <T extends FileObject> Reference<T> createReference(T fo)
AbstractFileSystemcreateReference in class AbstractFileSystemfo - is FileObject. It`s reference yourequire to get.public Manifest getManifest()
public void setJarFile(File aRoot) throws IOException, PropertyVetoException
aRoot - path to new ZIP or JAR fileIOException - if the file is not validIllegalArgumentException - if the file is not normalizedPropertyVetoExceptionpublic File getJarFile()
public String getDisplayName()
FileSystem
This call should never be used to attempt to identify the file root
of the filesystem. On some systems it may happen to look the same but this is a
coincidence and may well change in the future. Either check whether
you are working with a LocalFileSystem or similar implementation and use
LocalFileSystem.getRootDirectory(); or better, try
FileUtil.toFile(org.openide.filesystems.FileObject) which is designed to do this correctly.
Note: for most purposes it is probably a bad idea to use
this method. Instead look at FileUtil.getFileDisplayName(org.openide.filesystems.FileObject).
getDisplayName in class AbstractFileSystempublic boolean isReadOnly()
isReadOnly in class FileSystemtruepublic void removeNotify()
FileSystemNote that this method is advisory and serves as an optimization to avoid retaining resources for too long etc. Filesystems should maintain correct semantics regardless of whether and when this method is called.
removeNotify in class FileSystemprotected void createFolder(String name) throws IOException
IOExceptionprotected void createData(String name) throws IOException
IOExceptionprotected void rename(String oldName, String newName) throws IOException
IOExceptionprotected void delete(String name) throws IOException
IOExceptionprotected boolean folder(String name)
protected boolean readOnly(String name)
protected long size(String name)
protected InputStream inputStream(String name) throws FileNotFoundException
FileNotFoundExceptionprotected OutputStream outputStream(String name) throws IOException
IOExceptionprotected void lock(String name) throws IOException
IOExceptionprotected void unlock(String name)
protected void markUnimportant(String name)
protected void writeAttribute(String name, String attrName, Object value) throws IOException
IOExceptionprotected Enumeration<String> attributes(String name)
protected void deleteAttributes(String name)