Package io.quarkus.paths
Interface PathTree
- All Known Subinterfaces:
OpenPathTree
- All Known Implementing Classes:
ArchivePathTree,ArchivePathTree.OpenArchivePathTree,DirectoryPathTree,EmptyPathTree,FilteredPathTree,MultiRootPathTree,OpenContainerPathTree,PathTreeWithManifest
public interface PathTree
Classpath resource set backed by file system paths.
-
Method Summary
Modifier and TypeMethodDescriptionvoidConsumes a given resource from the tree.default voidConsumes a given resource from the tree.<T> TApplies a function to a given resource in the tree.booleanChecks whether the tree contains a resource.default PathTreefilter(PathFilter filter) IfMETA-INF/MANIFEST.MFfound, reads it and returns an instance ofManifestAttributes, a trimmed down version of the Manifest, otherwise returns null.Returns a set of resource names provided by this path tree.getRoots()The roots of the path tree.booleanWhether the content of this tree comes from an archive or not.default booleanisEmpty()Checks whether the tree is emptystatic PathTreeCreates a newPathTreefor an existing path that is expected to be a ZIP-based archive.static PathTreeofArchive(Path archive, PathFilter filter) Creates a newPathTreefor an existing path that is expected to be a ZIP-based archive applying a providedPathFilterunless it isnull.static PathTreeCreates a newPathTreefor a given existing path which is expected to be either a directory or a ZIP-based archive.static PathTreeofDirectoryOrArchive(Path p, PathFilter filter) Creates a newPathTreefor a given existing path which is expected to be either a directory or a ZIP-based archive applying a providedPathFilterunless it isnull.static PathTreestatic PathTreeofDirectoryOrFile(Path p, PathFilter filter) open()Returns anOpenPathTreefor this tree, which is supposed to be closed at the end of processing.voidwalk(PathVisitor visitor) Walks the tree.voidwalkIfContains(String resourceDirName, PathVisitor visitor) Walks a subtree of resources in this tree that begins with a passed inresourceDirName.voidwalkRaw(PathVisitor visitor) Walks the tree without remapping multi release content to the paths expected for the current Java version.
-
Method Details
-
ofDirectoryOrFile
-
ofDirectoryOrFile
-
ofDirectoryOrArchive
Creates a newPathTreefor 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
PathTreefor a given existing directory or an archive
-
ofDirectoryOrArchive
Creates a newPathTreefor a given existing path which is expected to be either a directory or a ZIP-based archive applying a providedPathFilterunless it isnull.- Parameters:
p- path to a directory or an archivefilter- path filter to apply, could benull- Returns:
- an instance of
PathTreefor a given existing directory or an archive
-
ofArchive
Creates a newPathTreefor an existing path that is expected to be a ZIP-based archive.- Parameters:
archive- path to an archive- Returns:
- an instance of
PathTreefor a given archive
-
ofArchive
Creates a newPathTreefor an existing path that is expected to be a ZIP-based archive applying a providedPathFilterunless it isnull.- Parameters:
archive- path to an archivefilter- path filter to apply, could benull- Returns:
- an instance of
PathTreefor a given archive
-
isArchiveOrigin
boolean isArchiveOrigin()Whether the content of this tree comes from an archive or not.This is useful for instance when you want to determine if the resources can be updated in dev mode.
-
getRoots
Collection<Path> getRoots()The roots of the path tree.Note that you shouldn't use these roots for browsing except if the PathTree is open.
- 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
-
getManifestAttributes
ManifestAttributes getManifestAttributes()IfMETA-INF/MANIFEST.MFfound, reads it and returns an instance ofManifestAttributes, a trimmed down version of the Manifest, otherwise returns null.- Returns:
- parsed
META-INF/MANIFEST.MFif it's found, otherwisenull
-
getResourceNames
Returns a set of resource names provided by this path tree. The set may include both directories and files.- Returns:
- a set of resource names provided by this path tree
-
walk
Walks the tree. This method will make sure the relevant multi release content is associated with the expected resource name paths for the current Java version.- Parameters:
visitor- path visitor
-
walkRaw
Walks the tree without remapping multi release content to the paths expected for the current Java version.- Parameters:
visitor- path visitor
-
walkIfContains
Walks a subtree of resources in this tree that begins with a passed inresourceDirName. If this tree does not contain resourceresourceDirNamethen the method returns without an error.This method does not create a new
PathTreewith the root atresourceDirName. It simply applies an inclusion filter to thisPathTreeinstance, keeping the same root.- Parameters:
resourceDirName- directory resource name starting from which the walk should beginvisitor- path visitor
-
apply
Applies a function to a given resource in the tree. If the resource isn't found in the tree, thePathVisitargument passed to the function will benull.- Type Parameters:
T- resulting type- Parameters:
resourceName- resource to processfunc- processing function- Returns:
- result of the function
-
accept
Consumes a given resource from the tree. If the resource isn't found in the tree, thePathVisitargument passed to the consumer will benull.- Parameters:
resourceName- resource to consumeconsumer- path consumer
-
acceptAll
Consumes a given resource from the tree. If the resource isn't found in the tree, thePathVisitargument passed to the consumer will benull.If multiple items match then the consumer will be called multiple times.
- Parameters:
resourceName- resource to consumeconsumer- path consumer
-
contains
Checks whether the tree contains a resource.- Parameters:
resourceName- resource name to check- Returns:
- true, in case the tree contains the path, otherwise - false
-
open
OpenPathTree open()Returns anOpenPathTreefor 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 ofOpenPathTree.- Returns:
- an instance of
OpenPathTreefor this path tree
-
filter
-