Class AbstractDepthFirstNodeListGenerator
- java.lang.Object
-
- org.eclipse.aether.util.graph.visitor.AbstractDepthFirstNodeListGenerator
-
- All Implemented Interfaces:
DependencyVisitor
- Direct Known Subclasses:
PostorderNodeListGenerator
,PreorderNodeListGenerator
abstract class AbstractDepthFirstNodeListGenerator extends java.lang.Object implements DependencyVisitor
Abstract base class for depth first dependency tree traversers. Subclasses of this visitor will visit each node exactly once regardless how many paths within the dependency graph lead to the node such that the resulting node sequence is free of duplicates.Actual vertex ordering (preorder, inorder, postorder) needs to be defined by subclasses through appropriate implementations for
visitEnter(org.eclipse.aether.graph.DependencyNode)
andvisitLeave(org.eclipse.aether.graph.DependencyNode)
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<DependencyNode>
nodes
private java.util.Map<DependencyNode,java.lang.Object>
visitedNodes
-
Constructor Summary
Constructors Constructor Description AbstractDepthFirstNodeListGenerator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.util.List<Artifact>
getArtifacts(boolean includeUnresolved)
Gets the artifacts associated with the list of dependency nodes generated during the graph traversal.java.lang.String
getClassPath()
Gets a class path by concatenating the artifact files of the visited dependency nodes.java.util.List<Dependency>
getDependencies(boolean includeUnresolved)
Gets the dependencies seen during the graph traversal.java.util.List<java.io.File>
getFiles()
Gets the files of resolved artifacts seen during the graph traversal.java.util.List<DependencyNode>
getNodes()
Gets the list of dependency nodes that was generated during the graph traversal.protected boolean
setVisited(DependencyNode node)
Marks the specified node as being visited and determines whether the node has been visited before.abstract boolean
visitEnter(DependencyNode node)
Notifies the visitor of a node visit before its children have been processed.abstract boolean
visitLeave(DependencyNode node)
Notifies the visitor of a node visit after its children have been processed.
-
-
-
Field Detail
-
visitedNodes
private final java.util.Map<DependencyNode,java.lang.Object> visitedNodes
-
nodes
protected final java.util.List<DependencyNode> nodes
-
-
Method Detail
-
getNodes
public java.util.List<DependencyNode> getNodes()
Gets the list of dependency nodes that was generated during the graph traversal.- Returns:
- The list of dependency nodes, never
null
.
-
getDependencies
public java.util.List<Dependency> getDependencies(boolean includeUnresolved)
Gets the dependencies seen during the graph traversal.- Parameters:
includeUnresolved
- Whether unresolved dependencies shall be included in the result or not.- Returns:
- The list of dependencies, never
null
.
-
getArtifacts
public java.util.List<Artifact> getArtifacts(boolean includeUnresolved)
Gets the artifacts associated with the list of dependency nodes generated during the graph traversal.- Parameters:
includeUnresolved
- Whether unresolved artifacts shall be included in the result or not.- Returns:
- The list of artifacts, never
null
.
-
getFiles
public java.util.List<java.io.File> getFiles()
Gets the files of resolved artifacts seen during the graph traversal.- Returns:
- The list of artifact files, never
null
.
-
getClassPath
public java.lang.String getClassPath()
Gets a class path by concatenating the artifact files of the visited dependency nodes. Nodes with unresolved artifacts are automatically skipped.- Returns:
- The class path, using the platform-specific path separator, never
null
.
-
setVisited
protected boolean setVisited(DependencyNode node)
Marks the specified node as being visited and determines whether the node has been visited before.- Parameters:
node
- The node being visited, must not benull
.- Returns:
true
if the node has not been visited before,false
if the node was already visited.
-
visitEnter
public abstract boolean visitEnter(DependencyNode node)
Description copied from interface:DependencyVisitor
Notifies the visitor of a node visit before its children have been processed.- Specified by:
visitEnter
in interfaceDependencyVisitor
- Parameters:
node
- The dependency node being visited, must not benull
.- Returns:
true
to visit child nodes of the specified node as well,false
to skip children.
-
visitLeave
public abstract boolean visitLeave(DependencyNode node)
Description copied from interface:DependencyVisitor
Notifies the visitor of a node visit after its children have been processed. Note that this method is always invoked regardless whether any children have actually been visited.- Specified by:
visitLeave
in interfaceDependencyVisitor
- Parameters:
node
- The dependency node being visited, must not benull
.- Returns:
true
to visit siblings nodes of the specified node as well,false
to skip siblings.
-
-