Class AbstractFileObject<AFS extends AbstractFileSystem>

java.lang.Object
org.apache.commons.vfs2.provider.AbstractFileObject<AFS>
Type Parameters:
AFS - An AbstractFileSystem subclass
All Implemented Interfaces:
Closeable, AutoCloseable, Comparable<FileObject>, Iterable<FileObject>, FileObject
Direct Known Subclasses:
CompressedFileFileObject, DelegateFileObject, FtpFileObject, Http4FileObject, LocalFile, RamFileObject, SftpFileObject, TarFileObject, UrlFileObject, ZipFileObject

public abstract class AbstractFileObject<AFS extends AbstractFileSystem> extends Object implements FileObject
A partial file object implementation. TODO - Chop this class up - move all the protected methods to several interfaces, so that structure and content can be separately overridden.

TODO - Check caps in methods like getChildren(), etc, and give better error messages (eg 'this file type does not support listing children', vs 'this is not a folder')

  • Field Details

  • Constructor Details

  • Method Details

    • traverse

      private static void traverse(DefaultFileSelectorInfo fileInfo, FileSelector selector, boolean depthwise, List<FileObject> selected) throws Exception
      Traverses a file.
      Throws:
      Exception
    • attach

      private void attach() throws FileSystemException
      Attaches to the file.
      Throws:
      FileSystemException - if an error occurs.
    • canRenameTo

      public boolean canRenameTo(FileObject newfile)
      Queries the object if a simple rename to the file name of newfile is possible.
      Specified by:
      canRenameTo in interface FileObject
      Parameters:
      newfile - the new file name
      Returns:
      true if rename is possible
    • childrenChanged

      protected void childrenChanged(FileName childName, FileType newType) throws Exception
      Notifies the file that its children have changed.
      Parameters:
      childName - The name of the child.
      newType - The type of the child.
      Throws:
      Exception - if an error occurs.
    • close

      public void close() throws FileSystemException
      Closes this file, and its content.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface FileObject
      Throws:
      FileSystemException - if an error occurs.
      See Also:
    • compareTo

      public int compareTo(FileObject file)
      Compares two FileObjects (ignores case).
      Specified by:
      compareTo in interface Comparable<AFS extends AbstractFileSystem>
      Parameters:
      file - the object to compare.
      Returns:
      a negative integer, zero, or a positive integer when this object is less than, equal to, or greater than the given object.
    • copyFrom

      public void copyFrom(FileObject file, FileSelector selector) throws FileSystemException
      Copies another file to this file.
      Specified by:
      copyFrom in interface FileObject
      Parameters:
      file - The FileObject to copy.
      selector - The FileSelector.
      Throws:
      FileSystemException - if an error occurs.
    • createFile

      public void createFile() throws FileSystemException
      Creates this file, if it does not exist.
      Specified by:
      createFile in interface FileObject
      Throws:
      FileSystemException - if an error occurs.
    • createFolder

      public void createFolder() throws FileSystemException
      Creates this folder, if it does not exist. Also creates any ancestor files which do not exist.
      Specified by:
      createFolder in interface FileObject
      Throws:
      FileSystemException - if an error occurs.
    • delete

      public boolean delete() throws FileSystemException
      Deletes this file.

      TODO - This will not fail if this is a non-empty folder.

      Specified by:
      delete in interface FileObject
      Returns:
      true if this object has been deleted
      Throws:
      FileSystemException - if an error occurs.
    • delete

      public int delete(FileSelector selector) throws FileSystemException
      Deletes this file, and all children matching the selector.
      Specified by:
      delete in interface FileObject
      Parameters:
      selector - The FileSelector.
      Returns:
      the number of deleted files.
      Throws:
      FileSystemException - if an error occurs.
    • deleteAll

      public int deleteAll() throws FileSystemException
      Deletes this file and all children. Shorthand for delete(Selectors.SELECT_ALL)
      Specified by:
      deleteAll in interface FileObject
      Returns:
      the number of deleted files.
      Throws:
      FileSystemException - if an error occurs.
      See Also:
    • deleteSelf

      private boolean deleteSelf() throws FileSystemException
      Deletes this file, once all its children have been deleted
      Returns:
      true if this file has been deleted
      Throws:
      FileSystemException - if an error occurs.
    • detach

      private void detach() throws Exception
      Detaches this file, invalidating all cached info. This will force a call to doAttach() next time this file is used.
      Throws:
      Exception - if an error occurs.
    • doAttach

      protected void doAttach() throws Exception
      Attaches this file object to its file resource.

      This method is called before any of the doBlah() or onBlah() methods. Sub-classes can use this method to perform lazy initialization.

      This implementation does nothing.

      Throws:
      Exception - if an error occurs.
    • doCreateFileContent

      protected FileContent doCreateFileContent() throws FileSystemException
      Create a FileContent implementation.
      Returns:
      The FileContent.
      Throws:
      FileSystemException - if an error occurs.
      Since:
      2.0
    • doCreateFolder

      protected void doCreateFolder() throws Exception
      Creates this file as a folder. Is only called when: This implementation throws an exception.
      Throws:
      Exception - if an error occurs.
    • doDelete

      protected void doDelete() throws Exception
      Deletes the file. Is only called when: This implementation throws an exception.
      Throws:
      Exception - if an error occurs.
    • doDetach

      protected void doDetach() throws Exception
      Detaches this file object from its file resource.

      Called when this file is closed. Note that the file object may be reused later, so should be able to be reattached.

      This implementation does nothing.

      Throws:
      Exception - if an error occurs.
    • doGetAttributes

      protected Map<String,Object> doGetAttributes() throws Exception
      Returns the attributes of this file. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns an empty map.

      Returns:
      The attributes of the file.
      Throws:
      Exception - if an error occurs.
    • doGetCertificates

      protected Certificate[] doGetCertificates() throws Exception
      Returns the certificates used to sign this file. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns null.

      Returns:
      The certificates used to sign the file.
      Throws:
      Exception - if an error occurs.
    • doGetContentSize

      protected abstract long doGetContentSize() throws Exception
      Returns the size of the file content (in bytes). Is only called if doGetType() returns FileType.FILE.
      Returns:
      The size of the file in bytes.
      Throws:
      Exception - if an error occurs.
    • doGetInputStream

      protected InputStream doGetInputStream() throws Exception
      Creates an input stream to read the file content from. Is only called if doGetType() returns FileType.FILE.

      It is guaranteed that there are no open output streams for this file when this method is called.

      The returned stream does not have to be buffered.

      Returns:
      An InputStream to read the file content.
      Throws:
      Exception - if an error occurs.
    • doGetInputStream

      protected InputStream doGetInputStream(int bufferSize) throws Exception
      Creates an input stream to read the file content from. Is only called if doGetType() returns FileType.FILE.

      It is guaranteed that there are no open output streams for this file when this method is called.

      The returned stream does not have to be buffered.

      Parameters:
      bufferSize - Buffer size hint.
      Returns:
      An InputStream to read the file content.
      Throws:
      Exception - if an error occurs.
    • doGetLastModifiedTime

      protected long doGetLastModifiedTime() throws Exception
      Returns the last modified time of this file. Is only called if doGetType() does not return

      This implementation throws an exception.

      Returns:
      The last modification time.
      Throws:
      Exception - if an error occurs.
    • doGetOutputStream

      protected OutputStream doGetOutputStream(boolean bAppend) throws Exception
      Creates an output stream to write the file content to. Is only called if: It is guaranteed that there are no open stream (input or output) for this file when this method is called.

      The returned stream does not have to be buffered.

      This implementation throws an exception.

      Parameters:
      bAppend - true if the file should be appended to, false if it should be overwritten.
      Returns:
      An OutputStream to write to the file.
      Throws:
      Exception - if an error occurs.
    • doGetRandomAccessContent

      protected RandomAccessContent doGetRandomAccessContent(RandomAccessMode mode) throws Exception
      Creates access to the file for random i/o. Is only called if doGetType() returns FileType.FILE.

      It is guaranteed that there are no open output streams for this file when this method is called.

      Parameters:
      mode - The mode to access the file.
      Returns:
      The RandomAccessContext.
      Throws:
      Exception - if an error occurs.
    • doGetType

      protected abstract FileType doGetType() throws Exception
      Determines the type of this file. Must not return null. The return value of this method is cached, so the implementation can be expensive.
      Returns:
      the type of the file.
      Throws:
      Exception - if an error occurs.
    • doIsExecutable

      protected boolean doIsExecutable() throws Exception
      Determines if this file is executable. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns false.

      Returns:
      true if the file is executable, false otherwise.
      Throws:
      Exception - if an error occurs.
    • doIsHidden

      protected boolean doIsHidden() throws Exception
      Determines if this file is hidden. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns false.

      Returns:
      true if the file is hidden, false otherwise.
      Throws:
      Exception - if an error occurs.
    • doIsReadable

      protected boolean doIsReadable() throws Exception
      Determines if this file can be read. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns true.

      Returns:
      true if the file is readable, false otherwise.
      Throws:
      Exception - if an error occurs.
    • doIsSameFile

      protected boolean doIsSameFile(FileObject destFile) throws FileSystemException
      Checks if this fileObject is the same file as destFile just with a different name. E.g. for case insensitive file systems like windows.
      Parameters:
      destFile - The file to compare to.
      Returns:
      true if the FileObjects are the same.
      Throws:
      FileSystemException - if an error occurs.
    • doIsSymbolicLink

      protected boolean doIsSymbolicLink() throws Exception
      Determines if this file is a symbolic link. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns false.

      Returns:
      true if the file is readable, false otherwise.
      Throws:
      Exception - if an error occurs.
      Since:
      2.4
    • doIsWriteable

      protected boolean doIsWriteable() throws Exception
      Determines if this file can be written to. Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation always returns true.

      Returns:
      true if the file is writable.
      Throws:
      Exception - if an error occurs.
    • doListChildren

      protected abstract String[] doListChildren() throws Exception
      Lists the children of this file. Is only called if doGetType() returns FileType.FOLDER. The return value of this method is cached, so the implementation can be expensive.
      Returns:
      a possible empty String array if the file is a directory or null or an exception if the file is not a directory or can't be read.
      Throws:
      Exception - if an error occurs.
    • doListChildrenResolved

      protected FileObject[] doListChildrenResolved() throws Exception
      Lists the children of this file.

      Is only called if doGetType() returns FileType.FOLDER.

      The return value of this method is cached, so the implementation can be expensive. Other than doListChildren you could return FileObject's to e.g. reinitialize the type of the file.

      (Introduced for Webdav: "permission denied on resource" during getType())

      Returns:
      The children of this FileObject.
      Throws:
      Exception - if an error occurs.
    • doRemoveAttribute

      protected void doRemoveAttribute(String attrName) throws Exception
      Removes an attribute of this file.

      Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation throws an exception.

      Parameters:
      attrName - The name of the attribute to remove.
      Throws:
      Exception - if an error occurs.
      Since:
      2.0
    • doRename

      protected void doRename(FileObject newFile) throws Exception
      Renames the file.

      Is only called when:

      This implementation throws an exception.

      Parameters:
      newFile - A FileObject with the new file name.
      Throws:
      Exception - if an error occurs.
    • doSetAttribute

      protected void doSetAttribute(String attrName, Object value) throws Exception
      Sets an attribute of this file.

      Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation throws an exception.

      Parameters:
      attrName - The attribute name.
      value - The value to be associated with the attribute name.
      Throws:
      Exception - if an error occurs.
    • doSetExecutable

      protected boolean doSetExecutable(boolean executable, boolean ownerOnly) throws Exception
      Make the file executable.

      Only called if doGetType() does not return FileType.IMAGINARY.

      This implementation returns false.

      Parameters:
      executable - True to allow access, false to disallow.
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded.
      Throws:
      Exception - Any Exception thrown is wrapped in FileSystemException.
      Since:
      2.1
      See Also:
    • doSetLastModifiedTime

      protected boolean doSetLastModifiedTime(long modtime) throws Exception
      Sets the last modified time of this file.

      Is only called if doGetType() does not return FileType.IMAGINARY.

      This implementation throws an exception.

      Parameters:
      modtime - The last modification time.
      Returns:
      true if the time was set.
      Throws:
      Exception - Any Exception thrown is wrapped in FileSystemException.
    • doSetReadable

      protected boolean doSetReadable(boolean readable, boolean ownerOnly) throws Exception
      Make the file or folder readable.

      Only called if doGetType() does not return FileType.IMAGINARY.

      This implementation returns false.

      Parameters:
      readable - True to allow access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      Exception - Any Exception thrown is wrapped in FileSystemException.
      Since:
      2.1
      See Also:
    • doSetWritable

      protected boolean doSetWritable(boolean writable, boolean ownerOnly) throws Exception
      Make the file or folder writable.

      Only called if doGetType() does not return FileType.IMAGINARY.

      Parameters:
      writable - True to allow access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      Exception - Any Exception thrown is wrapped in FileSystemException.
      Since:
      2.1
      See Also:
    • endOutput

      protected void endOutput() throws Exception
      Called when the output stream for this file is closed.
      Throws:
      Exception - if an error occurs.
    • exists

      public boolean exists() throws FileSystemException
      Determines if the file exists.
      Specified by:
      exists in interface FileObject
      Returns:
      true if the file exists, false otherwise,
      Throws:
      FileSystemException - if an error occurs.
    • extractNames

      private FileName[] extractNames(FileObject[] objects)
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • findFiles

      public FileObject[] findFiles(FileSelector selector) throws FileSystemException
      Finds the set of matching descendants of this file, in depthwise order.
      Specified by:
      findFiles in interface FileObject
      Parameters:
      selector - The FileSelector.
      Returns:
      list of files or null if the base file (this object) do not exist
      Throws:
      FileSystemException - if an error occurs.
    • findFiles

      public void findFiles(FileSelector selector, boolean depthwise, List<FileObject> selected) throws FileSystemException
      Traverses the descendants of this file, and builds a list of selected files.
      Specified by:
      findFiles in interface FileObject
      Parameters:
      selector - The FileSelector.
      depthwise - if true files are added after their descendants, before otherwise.
      selected - A List of the located FileObjects.
      Throws:
      FileSystemException - if an error occurs.
    • getAbstractFileSystem

      protected AFS getAbstractFileSystem()
      Returns the file system this file belongs to.
      Returns:
      The FileSystem this file is associated with.
    • getChild

      public FileObject getChild(String name) throws FileSystemException
      Returns a child of this file.
      Specified by:
      getChild in interface FileObject
      Parameters:
      name - The name of the child to locate.
      Returns:
      The FileObject for the file or null if the child does not exist.
      Throws:
      FileSystemException - if an error occurs.
    • getChildren

      public FileObject[] getChildren() throws FileSystemException
      Returns the children of the file.
      Specified by:
      getChildren in interface FileObject
      Returns:
      an array of FileObjects, one per child.
      Throws:
      FileSystemException - if an error occurs.
    • getContent

      public FileContent getContent() throws FileSystemException
      Returns the file's content.
      Specified by:
      getContent in interface FileObject
      Returns:
      the FileContent for this FileObject.
      Throws:
      FileSystemException - if an error occurs.
    • getFileContentInfoFactory

      protected FileContentInfoFactory getFileContentInfoFactory()
      Creates the FileContentInfo factory.
      Returns:
      The FileContentInfoFactory.
    • getFileOperations

      public FileOperations getFileOperations() throws FileSystemException
      Specified by:
      getFileOperations in interface FileObject
      Returns:
      FileOperations interface that provides access to the operations API.
      Throws:
      FileSystemException - if an error occurs.
    • getFileSystem

      public FileSystem getFileSystem()
      Returns the file system this file belongs to.
      Specified by:
      getFileSystem in interface FileObject
      Returns:
      The FileSystem this file is associated with.
    • getInputStream

      public InputStream getInputStream() throws FileSystemException
      Returns an input stream to use to read the content of the file.
      Returns:
      The InputStream to access this file's content.
      Throws:
      FileSystemException - if an error occurs.
    • getInputStream

      public InputStream getInputStream(int bufferSize) throws FileSystemException
      Returns an input stream to use to read the content of the file.
      Parameters:
      bufferSize - buffer size hint.
      Returns:
      The InputStream to access this file's content.
      Throws:
      FileSystemException - if an error occurs.
    • getName

      public FileName getName()
      Returns the name of the file.
      Specified by:
      getName in interface FileObject
      Returns:
      The FileName, never null.
    • getOutputStream

      public OutputStream getOutputStream() throws FileSystemException
      Prepares this file for writing. Makes sure it is either a file, or its parent folder exists. Returns an output stream to use to write the content of the file to.
      Returns:
      An OutputStream where the new contents of the file can be written.
      Throws:
      FileSystemException - if an error occurs.
    • getOutputStream

      public OutputStream getOutputStream(boolean bAppend) throws FileSystemException
      Prepares this file for writing. Makes sure it is either a file, or its parent folder exists. Returns an output stream to use to write the content of the file to.
      Parameters:
      bAppend - true when append to the file. Note: If the underlying file system does not support appending, a FileSystemException is thrown.
      Returns:
      An OutputStream where the new contents of the file can be written.
      Throws:
      FileSystemException - if an error occurs; for example: bAppend is true, and the underlying FileSystem does not support it
    • getParent

      public FileObject getParent() throws FileSystemException
      Returns the parent of the file.
      Specified by:
      getParent in interface FileObject
      Returns:
      the parent FileObject.
      Throws:
      FileSystemException - if an error occurs.
    • getPublicURIString

      public String getPublicURIString()
      Returns the receiver as a URI String for public display, like, without a password.
      Specified by:
      getPublicURIString in interface FileObject
      Returns:
      A URI String without a password, never null.
    • getRandomAccessContent

      public RandomAccessContent getRandomAccessContent(RandomAccessMode mode) throws FileSystemException
      Returns an input/output stream to use to read and write the content of the file in and random manner.
      Parameters:
      mode - The RandomAccessMode.
      Returns:
      The RandomAccessContent.
      Throws:
      FileSystemException - if an error occurs.
    • getType

      public FileType getType() throws FileSystemException
      Returns the file's type.
      Specified by:
      getType in interface FileObject
      Returns:
      The FileType.
      Throws:
      FileSystemException - if an error occurs.
    • getURL

      public URL getURL() throws FileSystemException
      Returns a URL representation of the file.
      Specified by:
      getURL in interface FileObject
      Returns:
      The URL representation of the file.
      Throws:
      FileSystemException - if an error occurs.
    • handleChanged

      protected void handleChanged() throws Exception
      Called when this file is changed.

      This will only happen if you monitor the file using FileMonitor.

      Throws:
      Exception - if an error occurs.
    • handleCreate

      protected void handleCreate(FileType newType) throws Exception
      Called when this file is created. Updates cached info and notifies the parent and file system.
      Parameters:
      newType - The type of the file.
      Throws:
      Exception - if an error occurs.
    • handleDelete

      protected void handleDelete() throws Exception
      Called when this file is deleted. Updates cached info and notifies subclasses, parent and file system.
      Throws:
      Exception - if an error occurs.
    • holdObject

      public void holdObject(Object strongRef)
      This method is meant to add an object where this object holds a strong reference then. E.g. a archive-file system creates a list of all children and they shouldn't get garbage collected until the container is garbage collected
      Parameters:
      strongRef - The Object to add.
    • injectType

      protected void injectType(FileType fileType)
    • isAttached

      public boolean isAttached()
      Check if the internal state is "attached".
      Specified by:
      isAttached in interface FileObject
      Returns:
      true if this is the case
    • isContentOpen

      public boolean isContentOpen()
      Check if the content stream is open.
      Specified by:
      isContentOpen in interface FileObject
      Returns:
      true if this is the case
    • isExecutable

      public boolean isExecutable() throws FileSystemException
      Determines if this file is executable.
      Specified by:
      isExecutable in interface FileObject
      Returns:
      true if this file is executable, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • isFile

      public boolean isFile() throws FileSystemException
      Checks if this file is a regular file by using its file type.
      Specified by:
      isFile in interface FileObject
      Returns:
      true if this file is a regular file.
      Throws:
      FileSystemException - if an error occurs.
      See Also:
    • isFolder

      public boolean isFolder() throws FileSystemException
      Checks if this file is a folder by using its file type.
      Specified by:
      isFolder in interface FileObject
      Returns:
      true if this file is a regular file.
      Throws:
      FileSystemException - if an error occurs.
      See Also:
    • isHidden

      public boolean isHidden() throws FileSystemException
      Determines if this file can be read.
      Specified by:
      isHidden in interface FileObject
      Returns:
      true if the file is a hidden file, false otherwise.
      Throws:
      FileSystemException - if an error occurs.
    • isReadable

      public boolean isReadable() throws FileSystemException
      Determines if this file can be read.
      Specified by:
      isReadable in interface FileObject
      Returns:
      true if the file can be read, false otherwise.
      Throws:
      FileSystemException - if an error occurs.
    • isSameFile

      protected boolean isSameFile(FileObject destFile) throws FileSystemException
      Checks if this fileObject is the same file as destFile just with a different name. E.g. for case insensitive file systems like windows.
      Parameters:
      destFile - The file to compare to.
      Returns:
      true if the FileObjects are the same.
      Throws:
      FileSystemException - if an error occurs.
    • isSymbolicLink

      public boolean isSymbolicLink() throws FileSystemException
      Determines if this file can be read.
      Specified by:
      isSymbolicLink in interface FileObject
      Returns:
      true if the file can be read, false otherwise.
      Throws:
      FileSystemException - if an error occurs.
      Since:
      2.4
    • isWriteable

      public boolean isWriteable() throws FileSystemException
      Determines if this file can be written to.
      Specified by:
      isWriteable in interface FileObject
      Returns:
      true if the file can be written to, false otherwise.
      Throws:
      FileSystemException - if an error occurs.
    • iterator

      public Iterator<FileObject> iterator()
      Returns an iterator over a set of all FileObject in this file object.
      Specified by:
      iterator in interface Iterable<AFS extends AbstractFileSystem>
      Returns:
      an Iterator.
    • listFiles

      public List<FileObject> listFiles(FileSelector selector) throws FileSystemException
      Lists the set of matching descendants of this file, in depthwise order.
      Parameters:
      selector - The FileSelector.
      Returns:
      list of files or null if the base file (this object) do not exist or the selector is null
      Throws:
      FileSystemException - if an error occurs.
    • moveTo

      public void moveTo(FileObject destFile) throws FileSystemException
      Moves (rename) the file to another one.
      Specified by:
      moveTo in interface FileObject
      Parameters:
      destFile - The target FileObject.
      Throws:
      FileSystemException - if an error occurs.
    • notifyAllStreamsClosed

      protected void notifyAllStreamsClosed()
      Clled after this file-object closed all its streams.
    • notifyParent

      private void notifyParent(FileName childName, FileType newType) throws Exception
      Notify the parent of a change to its children, when a child is created or deleted.
      Parameters:
      childName - The name of the child.
      newType - The type of the child.
      Throws:
      Exception - if an error occurs.
    • onChange

      protected void onChange() throws Exception
      Called when the type or content of this file changes.

      This implementation does nothing.

      Throws:
      Exception - if an error occurs.
    • onChildrenChanged

      protected void onChildrenChanged(FileName child, FileType newType) throws Exception
      Called when the children of this file change. Allows subclasses to refresh any cached information about the children of this file.

      This implementation does nothing.

      Parameters:
      child - The name of the child that changed.
      newType - The type of the file.
      Throws:
      Exception - if an error occurs.
    • refresh

      public void refresh() throws FileSystemException
      This will prepare the fileObject to get resynchronized with the underlying file system if required.
      Specified by:
      refresh in interface FileObject
      Throws:
      FileSystemException - if an error occurs.
    • removeChildrenCache

      private void removeChildrenCache()
    • resolveFile

      private FileObject resolveFile(FileName child) throws FileSystemException
      Throws:
      FileSystemException
    • resolveFile

      public FileObject resolveFile(String path) throws FileSystemException
      Finds a file, relative to this file.
      Specified by:
      resolveFile in interface FileObject
      Parameters:
      path - The path of the file to locate. Can either be a relative path, which is resolved relative to this file, or an absolute path, which is resolved relative to the file system that contains this file.
      Returns:
      The FileObject.
      Throws:
      FileSystemException - if an error occurs.
    • resolveFile

      public FileObject resolveFile(String name, NameScope scope) throws FileSystemException
      Returns a child by name.
      Specified by:
      resolveFile in interface FileObject
      Parameters:
      name - The name of the child to locate.
      scope - the NameScope.
      Returns:
      The FileObject for the file or null if the child does not exist.
      Throws:
      FileSystemException - if an error occurs.
    • resolveFiles

      private FileObject[] resolveFiles(FileName[] children) throws FileSystemException
      Throws:
      FileSystemException
    • setExecutable

      public boolean setExecutable(boolean readable, boolean ownerOnly) throws FileSystemException
      Description copied from interface: FileObject
      Sets the owner's (or everybody's) write permission.
      Specified by:
      setExecutable in interface FileObject
      Parameters:
      readable - True to allow read access, false to disallow.
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded.
      Throws:
      FileSystemException - On error determining if this file exists.
    • setFileType

      private void setFileType(FileType type)
    • setReadable

      public boolean setReadable(boolean readable, boolean ownerOnly) throws FileSystemException
      Description copied from interface: FileObject
      Sets the owner's (or everybody's) read permission.
      Specified by:
      setReadable in interface FileObject
      Parameters:
      readable - True to allow read access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      FileSystemException - On error determining if this file exists.
    • setWritable

      public boolean setWritable(boolean readable, boolean ownerOnly) throws FileSystemException
      Description copied from interface: FileObject
      Sets the owner's (or everybody's) write permission.
      Specified by:
      setWritable in interface FileObject
      Parameters:
      readable - True to allow read access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      FileSystemException - On error determining if this file exists.
    • toString

      public String toString()
      Returns the URI as a String.
      Overrides:
      toString in class Object
      Returns:
      Returns the URI as a String.