Package org.jboss.vfs
Class VirtualFile
java.lang.Object
org.jboss.vfs.VirtualFile
- All Implemented Interfaces:
Serializable
A virtual file. This is a symbolic reference to a location in the virtual file system hierarchy. Holding a
VirtualFile
instance gives no guarantees as to the presence or immutability of the referenced file or any of its
parent path elements.- Version:
- $Revision: 44334 $
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final String
private final String
private final VirtualFile
private String
private static final long
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet file's URI as a directory.Get file's URL as a directory.Get file's URI as a file.Get file's URL as a file.boolean
delete()
Delete this virtual fileprivate static <T> T
doIoPrivileged
(PrivilegedExceptionAction<T> action) boolean
Determine whether the given object is equal to this one.boolean
Determine whether the given object is equal to this one.boolean
exists()
Tests whether the underlying implementation file still exists.Get theCertificate
s for the virtual file.Get a child virtual file.Get the children.getChildren
(VirtualFileFilter filter) Get the childrenGet all the children recursivelyGet all the children recursivelyGet theCodeSigner
s for a the virtual file.long
When the file was last modifiedDeprecated.should not be used anymore, as the code is case-sensitive from JBVFS-170getName()
Get the simple VF name (X.java)Get aVirtualFile
which represents the parent of this instance.Get the all the parent files of this virtual file from this file to the root as a list.Get the all the parent files of this virtual file from this file to the root.private VirtualFile[]
getParentFiles
(int idx) Get the absolute VFS full path name (/xxx/yyy/foo.ear/baz.jar/org/jboss/X.java)(package private) String
getPathName
(boolean url) Get the absolute VFS full path name.getPathNameRelativeTo
(VirtualFile parent) Get the path name relative to a parent virtual file.private void
getPathNameRelativeTo
(VirtualFile parent, StringBuilder builder) Get a physical file for this virtual file.long
getSize()
Get the sizeint
hashCode()
Get a hashcode for this virtual file.boolean
Determine whether the named virtual file is a directory.boolean
isFile()
Determine whether the named virtual file is a plain file.boolean
isLeaf()
Deprecated.useisDirectory()
orisFile()
insteadboolean
isRoot()
Determines whether this virtual file represents a true root of a file system.Access the file contents.toString()
Get a human-readable (but non-canonical) representation of this virtual file.toURI()
Get file's current URI.toURL()
Get file's current URL.void
visit
(VirtualFileVisitor visitor) Visit the virtual file systemprivate void
visit
(VirtualFileVisitor visitor, boolean root)
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
name
-
lcname
-
parent
-
hashCode
private final int hashCode -
pathName
-
-
Constructor Details
-
VirtualFile
VirtualFile(String name, VirtualFile parent)
-
-
Method Details
-
getName
Get the simple VF name (X.java)- Returns:
- the simple file name
-
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
Get the absolute VFS full path name (/xxx/yyy/foo.ear/baz.jar/org/jboss/X.java)- Returns:
- the VFS full path name
-
getPathNameRelativeTo
Get the path name relative to a parent virtual file. If the given virtual file is not a parent of this virtual file, then anIllegalArgumentException
is 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
-
getPathNameRelativeTo
-
getPathName
Get the absolute VFS full path name. If this is a URL then directory entries will have a trailing slash.- Parameters:
url
- whether or not this path is being used for a URL- Returns:
- the VFS full path name
-
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:
true
if this represents a root.
-
isLeaf
Deprecated.useisDirectory()
orisFile()
insteadWhether it is a simple leaf of the VFS, i.e. whether it can contain other files- Returns:
true
if a simple file
-
isFile
public boolean isFile()Determine whether the named virtual file is a plain file.- Returns:
true
if it is a plain file,false
otherwise
-
isDirectory
public boolean isDirectory()Determine whether the named virtual file is a directory.- Returns:
true
if it is a directory,false
otherwise
-
openStream
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:
true
if file was deleted
-
getPhysicalFile
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
-
doIoPrivileged
- Throws:
IOException
-
getParent
Get aVirtualFile
which represents the parent of this instance.- Returns:
- the parent or
null
if there is no parent
-
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
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
-
getParentFiles
-
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
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
Get all the children recursivelyVisitorAttributes.RECURSE
- Returns:
- the children
- Throws:
IOException
- for any problem accessing the virtual file systemIllegalStateException
- if the file is closed
-
getChildrenRecursively
Get all the children recursivelyVisitorAttributes.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
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
-
visit
- Throws:
IOException
-
getChild
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
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:
-
toURI
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:
-
asDirectoryURL
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
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
Get file's URL as a file. There will be no trailing"/"
character unless thisVirtualFile
represents a root.- Returns:
- the url
- Throws:
MalformedURLException
- if the URL is somehow malformed
-
asFileURI
Get file's URI as a file. There will be no trailing"/"
character unless thisVirtualFile
represents a root.- Returns:
- the url
- Throws:
URISyntaxException
- if the URI is somehow malformed
-
getCodeSigners
Get theCodeSigner
s for a the virtual file.- Returns:
- the
CodeSigner
s for the virtual file, ornull
if not signed
-
getCertificates
Get theCertificate
s for the virtual file. Simply extracts the certificate entries from the code signers array.- Returns:
- the certificates for the virtual file, or
null
if not signed
-
toString
Get a human-readable (but non-canonical) representation of this virtual file. -
equals
Determine whether the given object is equal to this one. Returns true if the argument is aVirtualFile
from the sameVFS
instance with the same name. -
equals
Determine whether the given object is equal to this one. Returns true if the argument is aVirtualFile
from the sameVFS
instance with the same name.- Parameters:
o
- the other virtual file- Returns:
true
if they are equal
-
hashCode
public int hashCode()Get a hashcode for this virtual file.
-