Class FSRLRoot


  • public class FSRLRoot
    extends FSRL
    A type of FSRL that is specific to the filesystem's identity. A FSRL's parent is always a FSRLRoot.

    A FSRLRoot's parent is always a FSRL (ie. the container the filesystem data is in), or null.

    Examples of relationship between FSRL and FSRLRoots:

    • FSRLRoot [ file:// ]
      "file://"
    • FSRLRoot [ file:// ] <---- FSRL [ /filename.txt ]
      "file:///filename.txt"
    • FSRLRoot [ file:// ] <---- FSRL [ /filename.txt ] <--- FSRLRoot [ subfs:// ]
      "file:///filename.txt|subfs://"
    • Method Detail

      • makeRoot

        public static FSRLRoot makeRoot​(java.lang.String protocol)
        Creates a FSRLRoot without a parent container, using the supplied protocol string as its type.
        Parameters:
        protocol - string protocol name
        Returns:
        new FSRLRoot instance.
      • nestedFS

        public static FSRLRoot nestedFS​(FSRL containerFile,
                                        java.lang.String fstype)
        Creates a FSRLRoot as a child of a container FSRL, using the supplied protocol string as its type.
        Parameters:
        containerFile - FSRL of the container that contains this nested filesystem.
        fstype - the filesystem type.
        Returns:
        new FSRLRoot instance with a parent pointing to the specified containerFile.
      • nestedFS

        public static FSRLRoot nestedFS​(FSRL containerFile,
                                        FSRLRoot copyFSRL)
        Create a copy of copyFSRL, but using a different containerFile parent.

        (ie. re-parents copyFSRL so its parent is containerFile)

        Parameters:
        containerFile - FSRL of new parent
        copyFSRL - FSRLRoot that will be copied and re-parented.
        Returns:
        new FSRLRoot
      • getFS

        public FSRLRoot getFS()
        Description copied from class: FSRL
        Returns the FSRLRoot object that represents the entire filesystem for this FSRL.

        Never returns NULL, and calling getFS() on a FSRLRoot object returns itself.

        Overrides:
        getFS in class FSRL
        Returns:
        FSRLRoot instance that is the parent of this FSRL, never null.
      • getProtocol

        public java.lang.String getProtocol()
        Returns the "protocol" portion of this FSRLRoot, for example, in a FSRLRoot of "file://", this method would return "file".

        Returns:
        string protocol / filesystem type.
      • getContainer

        public FSRL getContainer()
        Returns the parent containerfile FSRL, or null if this FSRLRoot specifies a root-level filesystem.

        Returns:
        FSRL of the container object that this filesystem is nested under.
      • hasContainer

        public boolean hasContainer()
        Returns true if there is a parent containerfile, or false if this FSRLRoot specifies a root-level filesystem.
        Returns:
        boolean true if this FSRLRoot has a parent container, or false if not.
      • getPath

        public java.lang.String getPath()
        Always returns null for a FSRLRoot.
        Overrides:
        getPath in class FSRL
        Returns:
        null because this is a FSRLRoot instance which never has paths.
      • getName

        public java.lang.String getName()
        Always returns null for a FSRLRoot.
        Overrides:
        getName in class FSRL
        Returns:
        null because this is a FSRLRoot instance which never has a path and therefore doesn't have a name part of a path.
      • withPathMD5

        public FSRL withPathMD5​(java.lang.String newPath,
                                java.lang.String newMD5)
        Creates a new FSRL as a child of this FSRLRoot, using the supplied path and MD5 values.

        Parameters:
        newPath - string path and filename of the object inside this filesystem, should not be null.
        newMD5 - string md5 of the object inside this filesystem, null ok.
        Returns:
        new FSRL instance which is a child of this FSRLRoot.
      • appendToStringBuilder

        protected void appendToStringBuilder​(java.lang.StringBuilder sb,
                                             boolean recurse,
                                             boolean includeParams,
                                             boolean includeFSRoot)
        Overrides:
        appendToStringBuilder in class FSRL
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class FSRL