Class OpenContainerPathTree

java.lang.Object
io.quarkus.paths.PathTreeWithManifest
io.quarkus.paths.OpenContainerPathTree
All Implemented Interfaces:
OpenPathTree, PathTree, Closeable, AutoCloseable
Direct Known Subclasses:
ArchivePathTree.OpenArchivePathTree, DirectoryPathTree

public abstract class OpenContainerPathTree extends PathTreeWithManifest implements OpenPathTree
  • Field Details

  • Constructor Details

    • OpenContainerPathTree

      public OpenContainerPathTree()
      For deserialization of DirectoryPathTree
    • OpenContainerPathTree

      protected OpenContainerPathTree(PathFilter pathFilter)
    • OpenContainerPathTree

      protected OpenContainerPathTree(PathFilter pathFilter, boolean manifestEnabled)
    • OpenContainerPathTree

      protected OpenContainerPathTree(PathFilter pathFilter, PathTreeWithManifest pathTreeWithManifest)
  • Method Details

    • getContainerPath

      protected abstract Path getContainerPath()
      This is the path to the container.

      In the case of a zip archive, it's the path of the archive. In the case of a directory, it's the directory.

      Should only be used for equals/hashCode.

    • getRootPath

      protected abstract Path getRootPath()
      This is the path to the container.

      In the case of a zip archive, it's the path to the root of the archive (i.e. a ZipPath). In the case of a directory, it's the directory.

      Should be used for any read operation on the container.

    • open

      public OpenPathTree open()
      Description copied from interface: PathTree
      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.
      Specified by:
      open in interface PathTree
      Returns:
      an instance of OpenPathTree for this path tree
    • getRoots

      public Collection<Path> getRoots()
      Description copied from interface: PathTree
      The roots of the path tree.

      Note that you shouldn't use these roots for browsing except if the PathTree is open.

      Specified by:
      getRoots in interface PathTree
      Returns:
      roots of the path tree
    • walk

      public void walk(PathVisitor visitor)
      Description copied from interface: PathTree
      Walks the tree.
      Specified by:
      walk in interface PathTree
      Parameters:
      visitor - path visitor
    • walkIfContains

      public void walkIfContains(String relativePath, PathVisitor visitor)
      Description copied from interface: PathTree
      Walks a subtree of this tree that begins with a passed in relativePath, if the tree contains relativePath. If the tree does not contain relativePath then the method returns without an error.

      This method does not create a new PathTree with the root at relativePath. It simply applies an inclusion filter to this PathTree instance, keeping the same root.

      Specified by:
      walkIfContains in interface PathTree
      Parameters:
      relativePath - relative path from which the walk should begin
      visitor - path visitor
    • apply

      protected <T> T apply(String relativePath, Function<PathVisit,T> func, boolean manifestEnabled)
      Specified by:
      apply in class PathTreeWithManifest
    • accept

      public void accept(String relativePath, Consumer<PathVisit> consumer)
      Description copied from interface: PathTree
      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.
      Specified by:
      accept in interface PathTree
      Parameters:
      relativePath - relative path to consume
      consumer - path consumer
    • contains

      public boolean contains(String relativePath)
      Description copied from interface: PathTree
      Checks whether the tree contains a relative path.
      Specified by:
      contains in interface PathTree
      Parameters:
      relativePath - path relative to the root of the tree
      Returns:
      true, in case the tree contains the path, otherwise - false
    • getPath

      public Path getPath(String relativePath)
      Specified by:
      getPath in interface OpenPathTree
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object