Class GFileImpl

  • All Implemented Interfaces:
    GFile

    public class GFileImpl
    extends java.lang.Object
    implements GFile
    Base implementation of file in a filesystem.

    Only valid while the owning filesystem object is still open and not closed.

    See GFile.

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected GFileImpl​(GFileSystem fileSystem, GFile parentFile, boolean isDirectory, long length, FSRL fsrl)
      Protected constructor, use static helper methods to create new instances.
    • Constructor Detail

      • GFileImpl

        protected GFileImpl​(GFileSystem fileSystem,
                            GFile parentFile,
                            boolean isDirectory,
                            long length,
                            FSRL fsrl)
        Protected constructor, use static helper methods to create new instances.

        Creates a new GFile instance without any name parsing.

        Parameters:
        fileSystem - the GFileSystem that owns this file
        parentFile - the parent of the new GFile or null if child-of-root.
        isDirectory - boolean flag to indicate that this is a directory
        length - length of the file (use -1 if not know or specified).
        fsrl - FSRL to assign to the file.
    • Method Detail

      • fromPathString

        public static GFileImpl fromPathString​(GFileSystem fileSystem,
                                               java.lang.String path,
                                               FSRL fsrl,
                                               boolean isDirectory,
                                               long length)
        Creates a GFile for a filesystem using a string path (ie. "dir/subdir/filename"), with the path starting at the root of the filesystem.

        The parents of this GFile are created fresh from any directory names in the path string. It is better to use the fromFilename(GFileSystem, GFile, String, boolean, long, FSRL) method to create GFile instances if you can supply the parent value as that will allow reuse of the parent objects instead of duplicates of them being created for each file with the same parent path.

        Parameters:
        fileSystem - the GFileSystem that owns this file
        path - forward slash '/' separated path and filename string.
        fsrl - FSRL to assign to the file, NULL if an auto-created FSRL is ok.
        isDirectory - boolean flag to indicate that this is a directory
        length - length of the file (use -1 if not know or specified).
        Returns:
        a new GFileImpl
      • fromPathString

        public static GFileImpl fromPathString​(GFileSystem fileSystem,
                                               GFile parent,
                                               java.lang.String path,
                                               FSRL fsrl,
                                               boolean isDirectory,
                                               long length)
        Creates a GFile for a specific owning filesystem using a string path (ie. "dir/subdir/filename"), with the path starting at the supplied parent directory.

        The parents of this GFile are created fresh from any directory names in the path string. It is better to use the fromFilename(GFileSystem, GFile, String, boolean, long, FSRL) method to create GFile instances if you can supply the parent value as that will allow reuse of the parent objects instead of duplicates of them being created for each file with the same parent path.

        Parameters:
        fileSystem - the GFileSystem that owns this file
        parent - the parent of the new GFile or null if child-of-root.
        path - forward slash '/' separated path and filename string.
        fsrl - FSRL to assign to the file, NULL if an auto-created FSRL is ok.
        isDirectory - boolean flag to indicate that this is a directory
        length - length of the file (use -1 if not know or specified).
        Returns:
        a new GFileImpl
      • fromFilename

        public static GFileImpl fromFilename​(GFileSystem fileSystem,
                                             GFile parent,
                                             java.lang.String filename,
                                             boolean isDirectory,
                                             long length,
                                             FSRL fsrl)
        Creates a GFile for a filesystem using a simple name (not a path) and as a child of the specified parent.

        The filename is accepted without checking or validation.

        Parameters:
        fileSystem - the GFileSystem that owns this file
        parent - the parent of the new GFile or null if child-of-root.
        filename - the file's name, not used if FSRL param specified.
        isDirectory - boolean flag to indicate that this is a directory
        length - length of the file (use -1 if not know or specified).
        fsrl - FSRL to assign to the file, NULL if an auto-created FSRL is ok.
        Returns:
        a new GFileImpl
      • fromFSRL

        public static GFileImpl fromFSRL​(GFileSystem fileSystem,
                                         GFile parent,
                                         FSRL fsrl,
                                         boolean isDirectory,
                                         long length)
        Creates a GFile for a filesystem using the information in a FSRL as the file's name and as a child of the specified parent.

        Parameters:
        fileSystem - the GFileSystem that owns this file
        parent - the parent of the new GFile or null if child-of-root.
        fsrl - FSRL to assign to the file.
        isDirectory - boolean flag to indicate that this is a directory
        length - length of the file (use -1 if not know or specified).
        Returns:
        a new GFileImpl
      • getParentFile

        public GFile getParentFile()
        Description copied from interface: GFile
        The parent directory of this file.
        Specified by:
        getParentFile in interface GFile
        Returns:
        parent GFile directory of this file.
      • getName

        public java.lang.String getName()
        Description copied from interface: GFile
        The name of this file.
        Specified by:
        getName in interface GFile
        Returns:
        name of this file.
      • isDirectory

        public boolean isDirectory()
        Description copied from interface: GFile
        Returns true if this is a directory.

        Specified by:
        isDirectory in interface GFile
        Returns:
        boolean true if this file is a directory, false otherwise.
      • getLength

        public long getLength()
        Description copied from interface: GFile
        Returns the length of this file, or -1 if not known.
        Specified by:
        getLength in interface GFile
        Returns:
        number of bytes in this file.
      • toString

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

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getPath

        public java.lang.String getPath()
        Description copied from interface: GFile
        The path and filename of this file, relative to its owning filesystem.
        Specified by:
        getPath in interface GFile
        Returns:
        path and filename of this file, relative to its owning filesystem.
      • setLength

        public void setLength​(long length)
      • getFSRL

        public FSRL getFSRL()
        Description copied from interface: GFile
        The FSRL of this file.
        Specified by:
        getFSRL in interface GFile
        Returns:
        FSRL of this file.
      • setFSRL

        public void setFSRL​(FSRL fsrl)