org.eclipse.aether.util.graph.visitor

## Class CloningDependencyVisitor

- java.lang.Object
- - org.eclipse.aether.util.graph.visitor.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 (via `DefaultDependencyNode.DefaultDependencyNode(DependencyNode)`) but clients can create a subclass and override `clone(DependencyNode)` to alter the clone process.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CloningDependencyVisitor()` Creates a new visitor that clones the visited nodes.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 final 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 final 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 final 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 The Eclipse Foundation. All Rights Reserved.