org.sonatype.aether.util.graph
Class CloningDependencyVisitor

java.lang.Object
  extended by org.sonatype.aether.util.graph.CloningDependencyVisitor
All Implemented Interfaces:
DependencyVisitor

public class CloningDependencyVisitor
extends Object
implements DependencyVisitor

A dependency visitor that constructs a clone of the visited dependency graph. If such a visitor is passed into a FilteringDependencyVisitor, a sub graph can be created. This class creates shallow clones of the visited dependency nodes but clients can create a subclass and override clone(DependencyNode) to alter the clone process.

Author:
Benjamin Bentmann

Constructor Summary
CloningDependencyVisitor()
          Creates a new visitor that clones the visited nodes.
 
Method Summary
protected  DependencyNode clone(DependencyNode node)
          Creates a clone of the specified node.
 DependencyNode getRootNode()
          Gets the root node of the cloned dependency graph.
 boolean visitEnter(DependencyNode node)
          Notifies the visitor of a node visit before its children have been processed.
 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
 

Constructor Detail

CloningDependencyVisitor

public CloningDependencyVisitor()
Creates a new visitor that clones the visited nodes.

Method Detail

getRootNode

public DependencyNode getRootNode()
Gets the root node of the cloned dependency graph.

Returns:
The root node of the cloned dependency graph or null.

clone

protected DependencyNode clone(DependencyNode node)
Creates a clone of the specified node.

Parameters:
node - The node to clone, must not be null.
Returns:
The cloned node, never null.

visitEnter

public 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 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-2012. All Rights Reserved.