org.openide.filesystems 7.3.1

org.openide.filesystems
Class JarFileSystem

java.lang.Object
  extended by org.openide.filesystems.FileSystem
      extended by org.openide.filesystems.AbstractFileSystem
          extended by org.openide.filesystems.JarFileSystem
All Implemented Interfaces:
Serializable

public class JarFileSystem
extends AbstractFileSystem

A virtual filesystem based on a JAR archive.

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.

See Also:
Serialized Form

Nested Class Summary
static class JarFileSystem.Impl
          Implementation of all interfaces List, Change, Info and Attr that delegates to JarFileSystem
 
Nested classes/interfaces inherited from class org.openide.filesystems.AbstractFileSystem
AbstractFileSystem.Attr, AbstractFileSystem.Change, AbstractFileSystem.Info, AbstractFileSystem.List, AbstractFileSystem.Transfer
 
Nested classes/interfaces inherited from class org.openide.filesystems.FileSystem
FileSystem.AtomicAction, FileSystem.Environment, FileSystem.HtmlStatus, FileSystem.Status
 
Field Summary
 
Fields inherited from class org.openide.filesystems.AbstractFileSystem
attr, change, info, list, transfer
 
Fields inherited from class org.openide.filesystems.FileSystem
PROP_DISPLAY_NAME, PROP_HIDDEN, PROP_READ_ONLY, PROP_ROOT, PROP_SYSTEM_NAME, PROP_VALID
 
Constructor Summary
JarFileSystem()
          Default constructor.
JarFileSystem(FileSystemCapability cap)
          Deprecated. Useless.
 
Method Summary
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>
Reference<T>
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)
           
 void prepareEnvironment(FileSystem.Environment env)
          Deprecated. Useless.
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)
           
 
Methods inherited from class org.openide.filesystems.AbstractFileSystem
canRead, canWrite, checkVirtual, existingFileObjects, find, findReference, findResource, getActions, getRefreshTime, getRoot, markImportant, refresh, refreshResource, refreshRoot, setRefreshTime
 
Methods inherited from class org.openide.filesystems.FileSystem
addFileChangeListener, addFileStatusListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, fireFileStatusChanged, firePropertyChange, fireVetoableChange, getActions, getCapability, getStatus, getSystemName, isDefault, isHidden, isPersistent, isValid, removeFileChangeListener, removeFileStatusListener, removePropertyChangeListener, removeVetoableChangeListener, runAtomicAction, setCapability, setHidden, setSystemName, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JarFileSystem

public JarFileSystem()
Default constructor.

Most module code should never create an instance of this class directly. Use FileUtil.getArchiveRoot(FileObject) instead.


JarFileSystem

@Deprecated
public JarFileSystem(FileSystemCapability cap)
Deprecated. Useless.

Constructor that can provide own capability for the filesystem.

Parameters:
cap - the capability
Method Detail

createReference

protected <T extends FileObject> Reference<T> createReference(T fo)
Description copied from class: AbstractFileSystem
Creates Reference. In FileSystem, which subclasses AbstractFileSystem, you can overload method createReference(FileObject fo) to achieve another type of Reference (weak, strong etc.)

Overrides:
createReference in class AbstractFileSystem
Parameters:
fo - is FileObject. It`s reference yourequire to get.
Returns:
Reference to FileObject

getManifest

public Manifest getManifest()
Get the JAR manifest. It will be lazily initialized.

Returns:
parsed manifest file for this archive

setJarFile

public void setJarFile(File aRoot)
                throws IOException,
                       PropertyVetoException
Set name of the ZIP/JAR file.

Parameters:
aRoot - path to new ZIP or JAR file
Throws:
IOException - if the file is not valid
PropertyVetoException

getJarFile

public File getJarFile()
Get the file path for the ZIP or JAR file.

Returns:
the file path

getDisplayName

public String getDisplayName()
Description copied from class: FileSystem
Provides a name for the system that can be presented to the user.

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).

Specified by:
getDisplayName in class AbstractFileSystem
Returns:
user presentable name of the filesystem

isReadOnly

public boolean isReadOnly()
This filesystem is read-only.

Specified by:
isReadOnly in class FileSystem
Returns:
true

removeNotify

public void removeNotify()
Description copied from class: FileSystem
Notifies this filesystem that it has been removed from the repository. Concrete filesystem implementations could perform clean-up here. The default implementation does nothing.

Note 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.

Overrides:
removeNotify in class FileSystem

prepareEnvironment

@Deprecated
public void prepareEnvironment(FileSystem.Environment env)
Deprecated. Useless.

Prepare environment for external compilation or execution.

Adds name of the ZIP/JAR file, if it has been set, to the class path.

Overrides:
prepareEnvironment in class FileSystem
Parameters:
env - the environment to setup

children

protected String[] children(String name)

createFolder

protected void createFolder(String name)
                     throws IOException
Throws:
IOException

createData

protected void createData(String name)
                   throws IOException
Throws:
IOException

rename

protected void rename(String oldName,
                      String newName)
               throws IOException
Throws:
IOException

delete

protected void delete(String name)
               throws IOException
Throws:
IOException

lastModified

protected Date lastModified(String name)

folder

protected boolean folder(String name)

readOnly

protected boolean readOnly(String name)

mimeType

protected String mimeType(String name)

size

protected long size(String name)

inputStream

protected InputStream inputStream(String name)
                           throws FileNotFoundException
Throws:
FileNotFoundException

outputStream

protected OutputStream outputStream(String name)
                             throws IOException
Throws:
IOException

lock

protected void lock(String name)
             throws IOException
Throws:
IOException

unlock

protected void unlock(String name)

markUnimportant

protected void markUnimportant(String name)

readAttribute

protected Object readAttribute(String name,
                               String attrName)

writeAttribute

protected void writeAttribute(String name,
                              String attrName,
                              Object value)
                       throws IOException
Throws:
IOException

attributes

protected Enumeration<String> attributes(String name)

renameAttributes

protected void renameAttributes(String oldName,
                                String newName)

deleteAttributes

protected void deleteAttributes(String name)

finalize

protected void finalize()
                 throws Throwable
Close the jar file when we go away...

Overrides:
finalize in class Object
Throws:
Throwable

org.openide.filesystems 7.3.1

Built on January 29 2008.  |  Portions Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.