Interface PathTree

All Known Subinterfaces:
OpenPathTree
All Known Implementing Classes:
ArchivePathTree, ArchivePathTree.OpenArchivePathTree, CachingPathTree, DirectoryPathTree, EmptyPathTree, MultiRootPathTree, PathTreeWithManifest

public interface PathTree
  • Method Details

    • ofDirectoryOrFile

      static PathTree ofDirectoryOrFile(Path p)
    • ofDirectoryOrFile

      static PathTree ofDirectoryOrFile(Path p, PathFilter filter)
    • 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