Class VFSFileSystem

  • All Implemented Interfaces:
    FileSystem

    public class VFSFileSystem
    extends Object
    implements FileSystem
    VFS (Commons-VFS) based FileSystem implementation.
    • Constructor Detail

      • VFSFileSystem

        public VFSFileSystem()
        Default constructor.
    • Method Detail

      • getConfig

        public String getConfig()
        Return path of configuration properties.
        Returns:
        path of configuration properties.
      • setConfig

        public void setConfig​(String config)
        Set the configuration properties path.
        Parameters:
        config - path of configuration properties.
      • getFileSystemManagerClassName

        public String getFileSystemManagerClassName()
        Returns the class name of the VFS FileSystemManager instance used in this VFS file system.
        Returns:
      • setFileSystemManagerClassName

        public void setFileSystemManagerClassName​(String fileSystemManagerClassName)
        Sets the class name of the VFS FileSystemManager instance used in this VFS file system. If this is not set, then StandardFileSystemManager is used by default.
        Parameters:
        fileSystemManagerClassName -
      • getFileSystemManager

        public org.apache.commons.vfs2.FileSystemManager getFileSystemManager()
        Returns the VFS FileSystemManager instance used in this VFS file system.
        Returns:
        the VFS FileSystemManager instance used in this VFS file system
      • getFileSystemOptions

        public org.apache.commons.vfs2.FileSystemOptions getFileSystemOptions()
                                                                       throws FileSystemException
        Returns FileSystemOptions instance used when resolving the baseFolder. This may return null if FileSystemOptions instance was not injected or a fileSystemOptionsProperties instance cannot be injected or created. Therefore, the caller should check whether or not this returns null. When returning null, the caller may not use a FileSystemOptions instance.
        Returns:
        FileSystemOptions instance used when resolving the baseFolder
        Throws:
        FileSystemException
      • setFileSystemOptions

        public void setFileSystemOptions​(org.apache.commons.vfs2.FileSystemOptions fileSystemOptions)
        Sets the FileSystemOptions instance used when resolving the baseFolder.
        Parameters:
        fileSystemOptions - FileSystemOptions instance used when resolving the baseFolder
      • setFileSystemOptionsProperties

        public void setFileSystemOptionsProperties​(Properties fileSystemOptionsProperties)
        Sets the properties used when building a FileSystemOptions, using DelegatingFileSystemOptionsBuilder.
        Parameters:
        fileSystemOptionsProperties - properties used when building a FileSystemOptions
      • setFileSystemOptionsPropertiesInString

        public void setFileSystemOptionsPropertiesInString​(String fileSystemOptionsPropertiesInString)
        Sets the properties in a semi-colon delimited string used when building a FileSystemOptions, using DelegatingFileSystemOptionsBuilder.
        Parameters:
        fileSystemOptionsPropertiesInString - properties in String
      • setBaseFolderUri

        public void setBaseFolderUri​(String baseFolderUri)
        Sets the base VFS folder URI.
        Parameters:
        baseFolderUri - base VFS folder URI
      • hashCode

        public int hashCode()
        Returns zero to satisfy the Object equals/hashCode contract. This class is mutable and not meant to be used as a hash key.
        Overrides:
        hashCode in class Object
        Returns:
        always zero
        See Also:
        Object.hashCode()
      • createFolder

        public void createFolder​(String folderPath)
                          throws FileSystemException
        Description copied from interface: FileSystem
        Creates the folder named by this path, including any necessary but nonexistent parent folders. Note that if this operation fails it may have succeeded in creating some of the necessary parent folders.
        Specified by:
        createFolder in interface FileSystem
        Parameters:
        folderPath - the path of the folder to be created.
        Throws:
        FileSystemException - if a file system entry denoted by path already exists or if another error occurs.
      • deleteFile

        public void deleteFile​(String filePath)
                        throws FileSystemException
        Description copied from interface: FileSystem
        Deletes the file denoted by this path.
        Specified by:
        deleteFile in interface FileSystem
        Parameters:
        filePath - the path of the file to be deleted.
        Throws:
        FileSystemException - if this path does not denote a file or if another error occurs.
      • deleteFolder

        public void deleteFolder​(String folderPath)
                          throws FileSystemException
        Description copied from interface: FileSystem
        Deletes the folder denoted by this path. Any contents of this folder (folders and files) will be deleted recursively.
        Specified by:
        deleteFolder in interface FileSystem
        Parameters:
        folderPath - the path of the folder to be deleted.
        Throws:
        FileSystemException - if this path does not denote a folder or if another error occurs.
      • exists

        public boolean exists​(String path)
                       throws FileSystemException
        Description copied from interface: FileSystem
        Tests whether the file system entry denoted by this path exists.
        Specified by:
        exists in interface FileSystem
        Parameters:
        path - the path of a file system entry.
        Returns:
        true if the file system entry at path exists; false otherwise.
        Throws:
        FileSystemException
      • getInputStream

        public InputStream getInputStream​(String filePath)
                                   throws FileSystemException
        Description copied from interface: FileSystem
        Returns an input stream of the contents of the file denoted by this path.
        Specified by:
        getInputStream in interface FileSystem
        Parameters:
        filePath - the path of the file.
        Returns:
        an input stream of the contents of the file.
        Throws:
        FileSystemException - if the file does not exist or if it cannot be read from
      • getOutputStream

        public OutputStream getOutputStream​(String filePath)
                                     throws FileSystemException
        Description copied from interface: FileSystem
        Returns an output stream for writing bytes to the file denoted by this path. The file will be created if it doesn't exist. If the file exists, its contents will be overwritten.
        Specified by:
        getOutputStream in interface FileSystem
        Parameters:
        filePath - the path of the file.
        Returns:
        an output stream for writing bytes to the file.
        Throws:
        FileSystemException - if the file cannot be written to or created
      • hasChildren

        public boolean hasChildren​(String path)
                            throws FileSystemException
        Description copied from interface: FileSystem
        Tests whether the file system entry denoted by this path has child entries.
        Specified by:
        hasChildren in interface FileSystem
        Parameters:
        path - the path of a file system entry.
        Returns:
        true if the file system entry at path has child entries; false otherwise.
        Throws:
        FileSystemException
      • isFile

        public boolean isFile​(String path)
                       throws FileSystemException
        Description copied from interface: FileSystem
        Tests whether the file system entry denoted by this path exists and is a file.
        Specified by:
        isFile in interface FileSystem
        Parameters:
        path - the path of a file system entry.
        Returns:
        true if the file system entry at path is a file; false otherwise.
        Throws:
        FileSystemException
      • isFolder

        public boolean isFolder​(String path)
                         throws FileSystemException
        Description copied from interface: FileSystem
        Tests whether the file system entry denoted by this path exists and is a folder.
        Specified by:
        isFolder in interface FileSystem
        Parameters:
        path - the path of a file system entry.
        Returns:
        true if the file system entry at path is a folder; false otherwise.
        Throws:
        FileSystemException
      • lastModified

        public long lastModified​(String path)
                          throws FileSystemException
        Description copied from interface: FileSystem
        Returns the time that the file system entry denoted by this path was last modified.
        Specified by:
        lastModified in interface FileSystem
        Parameters:
        path - the path of a file system entry.
        Returns:
        A long value representing the time the file system entry was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the modification time can't be determined.
        Throws:
        FileSystemException - if the file system entry does not exist.
      • length

        public long length​(String filePath)
                    throws FileSystemException
        Description copied from interface: FileSystem
        Returns the length of the file denoted by this path.
        Specified by:
        length in interface FileSystem
        Parameters:
        filePath - the path of the file.
        Returns:
        The length, in bytes, of the file denoted by this path, or -1L if the length can't be determined.
        Throws:
        FileSystemException - if the path does not denote an existing file.
      • list

        public String[] list​(String folderPath)
                      throws FileSystemException
        Description copied from interface: FileSystem
        Returns an array of strings naming the files and folders in the folder denoted by this path.
        Specified by:
        list in interface FileSystem
        Parameters:
        folderPath - the path of the folder whose contents is to be listed.
        Returns:
        an array of strings naming the files and folders in the folder denoted by this path.
        Throws:
        FileSystemException - if this path does not denote a folder or if another error occurs.
      • listFiles

        public String[] listFiles​(String folderPath)
                           throws FileSystemException
        Description copied from interface: FileSystem
        Returns an array of strings naming the files in the folder denoted by this path.
        Specified by:
        listFiles in interface FileSystem
        Parameters:
        folderPath - the path of the folder whose contents is to be listed.
        Returns:
        an array of strings naming the files in the folder denoted by this path.
        Throws:
        FileSystemException - if this path does not denote a folder or if another error occurs.
      • listFolders

        public String[] listFolders​(String folderPath)
                             throws FileSystemException
        Description copied from interface: FileSystem
        Returns an array of strings naming the folders in the folder denoted by this path.
        Specified by:
        listFolders in interface FileSystem
        Parameters:
        folderPath - the path of the folder whose contents is to be listed.
        Returns:
        an array of strings naming the folders in the folder denoted by this path.
        Throws:
        FileSystemException - if this path does not denote a folder or if another error occurs.
      • createFileSystemManager

        protected org.apache.commons.vfs2.FileSystemManager createFileSystemManager()
                                                                             throws FileSystemException
        Creates a FileSystemManager instance.
        Returns:
        a FileSystemManager instance.
        Throws:
        FileSystemException - if an error occurs creating the manager.
      • createFileSystemOptions

        protected org.apache.commons.vfs2.FileSystemOptions createFileSystemOptions()
                                                                             throws FileSystemException
        Builds and returns FileSystemOptions instance which is used when resolving the baseFolder during the initialization. If fileSystemOptionsProperties is available, this scans all the property key names starting with FILE_SYSTEM_OPTIONS_PROP_PREFIX and uses the rest of the key name after the FILE_SYSTEM_OPTIONS_PROP_PREFIX as the combination of scheme and property name when building a FileSystemOptions using DelegatingFileSystemOptionsBuilder.
        Returns:
        FileSystemOptions instance which is used when resolving the baseFolder during the initialization
        Throws:
        FileSystemException - if any file system exception occurs
      • getFileSystemOptionsProperties

        protected Properties getFileSystemOptionsProperties()
        Returns properties used when building a FileSystemOptions instance by the properties during the initialization.
        Returns:
        properties used when building a FileSystemOptions instance by the properties during the initialization