org.sonatype.aether.util.graph
Class AbstractDepthFirstNodeListGenerator

java.lang.Object
  extended by org.sonatype.aether.util.graph.AbstractDepthFirstNodeListGenerator
All Implemented Interfaces:
DependencyVisitor
Direct Known Subclasses:
PostorderNodeListGenerator, PreorderNodeListGenerator

public abstract class AbstractDepthFirstNodeListGenerator
extends 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.sonatype.aether.graph.DependencyNode) and visitLeave(org.sonatype.aether.graph.DependencyNode)

Author:
Benjamin Bentmann, Ansgar Konermann

Field Summary
protected  List<DependencyNode> nodes
           
 
Constructor Summary
AbstractDepthFirstNodeListGenerator()
           
 
Method Summary
 List<Artifact> getArtifacts(boolean includeUnresolved)
          Gets the artifacts associated with the list of dependency nodes generated during the graph traversal.
 String getClassPath()
          Gets a class path by concatenating the artifact files of the visited dependency nodes.
 List<Dependency> getDependencies(boolean includeUnresolved)
          Gets the dependencies seen during the graph traversal.
 List<File> getFiles()
          Gets the files of resolved artifacts seen during the graph traversal.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodes

protected final List<DependencyNode> nodes
Constructor Detail

AbstractDepthFirstNodeListGenerator

public AbstractDepthFirstNodeListGenerator()
Method Detail

getNodes

public 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 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 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 List<File> getFiles()
Gets the files of resolved artifacts seen during the graph traversal.

Returns:
The list of artifact files, never null.

getClassPath

public 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 be null.
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 interface DependencyVisitor
Parameters:
node - The dependency node being visited, must not be null.
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 interface DependencyVisitor
Parameters:
node - The dependency node being visited, must not be null.
Returns:
true to visit siblings nodes of the specified node as well, false to skip siblings.


Copyright © 2010-2013. All Rights Reserved.