Class LocalFileSystem

  • All Implemented Interfaces:
    GFileSystem, ExtensionPoint, java.io.Closeable, java.lang.AutoCloseable

    public class LocalFileSystem
    extends java.lang.Object
    implements GFileSystem
    A GFileSystem implementation giving access to the user's operating system's local file system.

    This implementation does not have a GFileSystemFactory as this class will be used as the single root filesystem.

    Closing() this filesystem does nothing.

    • Method Detail

      • isLocalSubdir

        public boolean isLocalSubdir​(FSRL fsrl)
        Returns true if the FSRL is a local filesystem subdirectory.
        Parameters:
        fsrl - FSRL to test.
        Returns:
        boolean true if local filesystem directory.
      • getLocalFile

        public java.io.File getLocalFile​(FSRL fsrl)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getName

        public java.lang.String getName()
        Description copied from interface: GFileSystem
        File system volume name.

        Typically the name of the container file, or a internally stored 'volume' name.

        Specified by:
        getName in interface GFileSystem
        Returns:
        string filesystem volume name.
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • isStatic

        public boolean isStatic()
        Description copied from interface: GFileSystem
        Indicates if this filesystem is a static snapshot or changes.
        Specified by:
        isStatic in interface GFileSystem
        Returns:
        boolean true if the filesystem is static or false if dynamic content.
      • getListing

        public java.util.List<GFile> getListing​(GFile directory)
        Description copied from interface: GFileSystem
        Returns a list of files that reside in the specified directory on this filesystem.

        Specified by:
        getListing in interface GFileSystem
        Parameters:
        directory - NULL means root of filesystem.
        Returns:
        List of GFile instances of file in the requested directory.
      • getInfo

        public java.lang.String getInfo​(GFile file,
                                        TaskMonitor monitor)
        Description copied from interface: GFileSystem
        Returns a multi-line string with information about the specified file.

        TODO: this method needs to be refactored to return a Map instead of a pre-formatted multi-line string.

        Specified by:
        getInfo in interface GFileSystem
        Parameters:
        file - GFile to get info message for.
        monitor - TaskMonitor to watch and update progress.
        Returns:
        multi-line formatted string with info about the file, or null.
      • lookup

        public GFileImpl lookup​(java.lang.String path)
                         throws java.io.IOException
        Description copied from interface: GFileSystem
        Retrieves a GFile from this filesystem based on its full path and filename.

        Specified by:
        lookup in interface GFileSystem
        Parameters:
        path - string path and filename of a file located in this filesystem. Use null or "/" to retrieve the root directory
        Returns:
        GFile instance of requested file, null if not found.
        Throws:
        java.io.IOException - if IO error when looking up file.
      • getInputStream

        public java.io.InputStream getInputStream​(GFile file,
                                                  TaskMonitor monitor)
                                           throws java.io.IOException
        Description copied from interface: GFileSystem
        Returns an InputStream that contains the contents of the specified GFile.

        The caller is responsible for closing the stream.

        Specified by:
        getInputStream in interface GFileSystem
        Parameters:
        file - GFile to get an InputStream for
        monitor - TaskMonitor to watch and update progress
        Returns:
        new InputStream contains the contents of the file or NULL if the file doesn't have data.
        Throws:
        java.io.IOException - if IO problem
      • isClosed

        public boolean isClosed()
        Description copied from interface: GFileSystem
        Returns true if the filesystem has been closed
        Specified by:
        isClosed in interface GFileSystem
        Returns:
        boolean true if the filesystem has been closed.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object