Interface PathTree

    • Method Detail

      • ofDirectoryOrFile

        static PathTree ofDirectoryOrFile​(Path p)
      • ofDirectoryOrArchive

        static PathTree ofDirectoryOrArchive​(Path p)
        Creates a new PathTree for a given existing path which is expected to be either a directory or a ZIP-based archive.
        Parameters:
        p - path to a directory or an archive
        Returns:
        an instance of PathTree for a given existing directory or an archive
      • ofDirectoryOrArchive

        static PathTree ofDirectoryOrArchive​(Path p,
                                             PathFilter filter)
        Creates a new PathTree for a given existing path which is expected to be either a directory or a ZIP-based archive applying a provided PathFilter unless it is null.
        Parameters:
        p - path to a directory or an archive
        filter - path filter to apply, could be null
        Returns:
        an instance of PathTree for a given existing directory or an archive
      • ofArchive

        static PathTree ofArchive​(Path archive)
        Creates a new PathTree for an existing path that is expected to be a ZIP-based archive.
        Parameters:
        archive - path to an archive
        Returns:
        an instance of PathTree for a given archive
      • ofArchive

        static PathTree ofArchive​(Path archive,
                                  PathFilter filter)
        Creates a new PathTree for an existing path that is expected to be a ZIP-based archive applying a provided PathFilter unless it is null.
        Parameters:
        archive - path to an archive
        filter - path filter to apply, could be null
        Returns:
        an instance of PathTree for a given archive
      • getRoots

        Collection<Path> getRoots()
        The roots of the path tree.
        Returns:
        roots of the path tree
      • isEmpty

        default boolean isEmpty()
        Checks whether the tree is empty
        Returns:
        true, if the tree is empty, otherwise - false
      • getManifest

        Manifest getManifest()
        If META-INF/MANIFEST.MF found, reads it and returns an instance of Manifest, otherwise returns null.
        Returns:
        parsed META-INF/MANIFEST.MF if it's found, otherwise null
      • walk

        void walk​(PathVisitor visitor)
        Walks the tree.
        Parameters:
        visitor - path visitor
      • apply

        <T> T apply​(String relativePath,
                    Function<PathVisit,​T> func)
        Applies a function to a given path relative to the root of the tree. If the path isn't found in the tree, the PathVisit argument passed to the function will be null.
        Type Parameters:
        T - resulting type
        Parameters:
        relativePath - relative path to process
        func - processing function
        Returns:
        result of the function
      • accept

        void accept​(String relativePath,
                    Consumer<PathVisit> consumer)
        Consumes a given path relative to the root of the tree. If the path isn't found in the tree, the PathVisit argument passed to the consumer will be null.
        Parameters:
        relativePath - relative path to consume
        consumer - path consumer
      • contains

        boolean contains​(String relativePath)
        Checks whether the tree contains a relative path.
        Parameters:
        relativePath - path relative to the root of the tree
        Returns:
        true, in case the tree contains the path, otherwise - false
      • open

        OpenPathTree open()
        Returns an OpenPathTree for this tree, which is supposed to be closed at the end of processing. It is meant to be an optimization when processing multiple paths of path trees that represent archives. If a path tree does not represent an archive but a directory, for example, this method is expected to be a no-op, returning the original tree as an instance of OpenPathTree.
        Returns:
        an instance of OpenPathTree for this path tree