Package org.jboss.vfs
Class VirtualFile
- java.lang.Object
-
- org.jboss.vfs.VirtualFile
-
- All Implemented Interfaces:
Serializable
public final class VirtualFile extends Object implements Serializable
A virtual file. This is a symbolic reference to a location in the virtual file system hierarchy. Holding aVirtualFileinstance gives no guarantees as to the presence or immutability of the referenced file or any of its parent path elements.- Version:
- $Revision: 44334 $
- Author:
- Scott.Stark@jboss.org, adrian@jboss.org, Ales.Justin@jboss.org, David M. Lloyd
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description URIasDirectoryURI()Get file's URI as a directory.URLasDirectoryURL()Get file's URL as a directory.URIasFileURI()Get file's URI as a file.URLasFileURL()Get file's URL as a file.booleandelete()Delete this virtual filebooleanequals(Object o)Determine whether the given object is equal to this one.booleanequals(VirtualFile o)Determine whether the given object is equal to this one.booleanexists()Tests whether the underlying implementation file still exists.Certificate[]getCertificates()Get theCertificates for the virtual file.VirtualFilegetChild(String path)Get a child virtual file.List<VirtualFile>getChildren()Get the children.List<VirtualFile>getChildren(VirtualFileFilter filter)Get the childrenList<VirtualFile>getChildrenRecursively()Get all the children recursivelyList<VirtualFile>getChildrenRecursively(VirtualFileFilter filter)Get all the children recursivelyCodeSigner[]getCodeSigners()Get theCodeSigners for a the virtual file.longgetLastModified()When the file was last modifiedStringgetLowerCaseName()Deprecated.should not be used anymore, as the code is case-sensitive from JBVFS-170StringgetName()Get the simple VF name (X.java)VirtualFilegetParent()Get aVirtualFilewhich represents the parent of this instance.List<VirtualFile>getParentFileList()Get the all the parent files of this virtual file from this file to the root as a list.VirtualFile[]getParentFiles()Get the all the parent files of this virtual file from this file to the root.StringgetPathName()Get the absolute VFS full path name (/xxx/yyy/foo.ear/baz.jar/org/jboss/X.java)StringgetPathNameRelativeTo(VirtualFile parent)Get the path name relative to a parent virtual file.FilegetPhysicalFile()Get a physical file for this virtual file.longgetSize()Get the sizeinthashCode()Get a hashcode for this virtual file.booleanisDirectory()Determine whether the named virtual file is a directory.booleanisFile()Determine whether the named virtual file is a plain file.booleanisLeaf()Deprecated.useisDirectory()orisFile()insteadbooleanisRoot()Determines whether this virtual file represents a true root of a file system.InputStreamopenStream()Access the file contents.StringtoString()Get a human-readable (but non-canonical) representation of this virtual file.URItoURI()Get file's current URI.URLtoURL()Get file's current URL.voidvisit(VirtualFileVisitor visitor)Visit the virtual file system
-
-
-
Method Detail
-
getName
public String getName()
Get the simple VF name (X.java)- Returns:
- the simple file name
-
getLowerCaseName
public String getLowerCaseName()
Deprecated.should not be used anymore, as the code is case-sensitive from JBVFS-170Get the simple VF name mapped to lowercase (x.java) (used by case-insensitive filesystems like ZIP).- Returns:
- the lowercase simple file name
-
getPathName
public String getPathName()
Get the absolute VFS full path name (/xxx/yyy/foo.ear/baz.jar/org/jboss/X.java)- Returns:
- the VFS full path name
-
getPathNameRelativeTo
public String getPathNameRelativeTo(VirtualFile parent) throws IllegalArgumentException
Get the path name relative to a parent virtual file. If the given virtual file is not a parent of this virtual file, then anIllegalArgumentExceptionis thrown.- Parameters:
parent- the parent virtual file- Returns:
- the relative path name as a string
- Throws:
IllegalArgumentException- if the given virtual file is not a parent of this virtual file
-
getLastModified
public long getLastModified()
When the file was last modified- Returns:
- the last modified time
-
getSize
public long getSize()
Get the size- Returns:
- the size
-
exists
public boolean exists()
Tests whether the underlying implementation file still exists.- Returns:
- true if the file exists, false otherwise.
-
isRoot
public boolean isRoot()
Determines whether this virtual file represents a true root of a file system. On UNIX, there is only one root "/". Howevever, on Windows there are an infinite number of roots that correspond to drives, or UNC paths.- Returns:
trueif this represents a root.
-
isLeaf
@Deprecated public boolean isLeaf()
Deprecated.useisDirectory()orisFile()insteadWhether it is a simple leaf of the VFS, i.e. whether it can contain other files- Returns:
trueif a simple file
-
isFile
public boolean isFile()
Determine whether the named virtual file is a plain file.- Returns:
trueif it is a plain file,falseotherwise
-
isDirectory
public boolean isDirectory()
Determine whether the named virtual file is a directory.- Returns:
trueif it is a directory,falseotherwise
-
openStream
public InputStream openStream() throws IOException
Access the file contents.- Returns:
- an InputStream for the file contents.
- Throws:
IOException- for any error accessing the file system
-
delete
public boolean delete()
Delete this virtual file- Returns:
trueif file was deleted
-
getPhysicalFile
public File getPhysicalFile() throws IOException
Get a physical file for this virtual file. Depending on the underlying file system type, this may simply return an already-existing file; it may create a copy of a file; or it may reuse a preexisting copy of the file. Furthermore, the returned file may or may not have any relationship to other files from the same or any other virtual directory.- Returns:
- the physical file
- Throws:
IOException- if an I/O error occurs while producing the physical file
-
getParent
public VirtualFile getParent()
Get aVirtualFilewhich represents the parent of this instance.- Returns:
- the parent or
nullif there is no parent
-
getParentFiles
public VirtualFile[] getParentFiles()
Get the all the parent files of this virtual file from this file to the root. The leafmost file will be at the start of the array, and the rootmost will be at the end.- Returns:
- the array of parent files
-
getParentFileList
public List<VirtualFile> getParentFileList()
Get the all the parent files of this virtual file from this file to the root as a list. The leafmost file will be at the start of the list, and the rootmost will be at the end.- Returns:
- the list of parent files
-
getChildren
public List<VirtualFile> getChildren()
Get the children. This is the combined list of real children within this directory, as well as virtual children created by submounts.- Returns:
- the children
-
getChildren
public List<VirtualFile> getChildren(VirtualFileFilter filter) throws IOException
Get the children- Parameters:
filter- to filter the children- Returns:
- the children
- Throws:
IOException- for any problem accessing the virtual file systemIllegalStateException- if the file is closed or it is a leaf node
-
getChildrenRecursively
public List<VirtualFile> getChildrenRecursively() throws IOException
Get all the children recursively
This always usesVisitorAttributes.RECURSE- Returns:
- the children
- Throws:
IOException- for any problem accessing the virtual file systemIllegalStateException- if the file is closed
-
getChildrenRecursively
public List<VirtualFile> getChildrenRecursively(VirtualFileFilter filter) throws IOException
Get all the children recursively
This always usesVisitorAttributes.RECURSE- Parameters:
filter- to filter the children- Returns:
- the children
- Throws:
IOException- for any problem accessing the virtual file systemIllegalStateException- if the file is closed or it is a leaf node
-
visit
public void visit(VirtualFileVisitor visitor) throws IOException
Visit the virtual file system- Parameters:
visitor- the visitor- Throws:
IOException- for any problem accessing the virtual file systemIllegalArgumentException- if the visitor is nullIllegalStateException- if the file is closed
-
getChild
public VirtualFile getChild(String path)
Get a child virtual file. The child may or may not exist in the virtual filesystem.- Parameters:
path- the path- Returns:
- the child
- Throws:
IllegalArgumentException- if the path is null
-
toURL
public URL toURL() throws MalformedURLException
Get file's current URL. Note: if this VirtualFile refers to a directory at the time of this method invocation, a trailing slash will be appended to the URL; this means that invoking this method may require a filesystem access, and in addition, may not produce consistent results over time.- Returns:
- the current url
- Throws:
MalformedURLException- if the URL is somehow malformed- See Also:
asDirectoryURL(),asFileURL()
-
toURI
public URI toURI() throws URISyntaxException
Get file's current URI. Note: if this VirtualFile refers to a directory at the time of this method invocation, a trailing slash will be appended to the URI; this means that invoking this method may require a filesystem access, and in addition, may not produce consistent results over time.- Returns:
- the current uri
- Throws:
URISyntaxException- if the URI is somehow malformed- See Also:
asDirectoryURI(),asFileURI()
-
asDirectoryURL
public URL asDirectoryURL() throws MalformedURLException
Get file's URL as a directory. There will always be a trailing"/"character.- Returns:
- the url
- Throws:
MalformedURLException- if the URL is somehow malformed
-
asDirectoryURI
public URI asDirectoryURI() throws URISyntaxException
Get file's URI as a directory. There will always be a trailing"/"character.- Returns:
- the uri
- Throws:
URISyntaxException- if the URI is somehow malformed
-
asFileURL
public URL asFileURL() throws MalformedURLException
Get file's URL as a file. There will be no trailing"/"character unless thisVirtualFilerepresents a root.- Returns:
- the url
- Throws:
MalformedURLException- if the URL is somehow malformed
-
asFileURI
public URI asFileURI() throws URISyntaxException
Get file's URI as a file. There will be no trailing"/"character unless thisVirtualFilerepresents a root.- Returns:
- the url
- Throws:
URISyntaxException- if the URI is somehow malformed
-
getCodeSigners
public CodeSigner[] getCodeSigners()
Get theCodeSigners for a the virtual file.- Returns:
- the
CodeSigners for the virtual file, ornullif not signed
-
getCertificates
public Certificate[] getCertificates()
Get theCertificates for the virtual file. Simply extracts the certificate entries from the code signers array.- Returns:
- the certificates for the virtual file, or
nullif not signed
-
toString
public String toString()
Get a human-readable (but non-canonical) representation of this virtual file.
-
equals
public boolean equals(Object o)
Determine whether the given object is equal to this one. Returns true if the argument is aVirtualFilefrom the sameVFSinstance with the same name.
-
equals
public boolean equals(VirtualFile o)
Determine whether the given object is equal to this one. Returns true if the argument is aVirtualFilefrom the sameVFSinstance with the same name.- Parameters:
o- the other virtual file- Returns:
trueif they are equal
-
-