@PublicApi public class NodeTraverser extends java.lang.Object
Node
tree.Modifier and Type | Class and Description |
---|---|
static class |
NodeTraverser.LeaveOrEnter
Used by depthFirst to indicate via
TraverserContext.getVar(Class) if the visit happens inside the ENTER or LEAVE phase. |
Constructor and Description |
---|
NodeTraverser() |
NodeTraverser(java.util.Map<java.lang.Class<?>,java.lang.Object> rootVars,
java.util.function.Function<? super Node,? extends java.util.List<Node>> getChildren) |
Modifier and Type | Method and Description |
---|---|
void |
depthFirst(NodeVisitor nodeVisitor,
java.util.Collection<? extends Node> roots)
depthFirst traversal with a enter/leave phase.
|
void |
depthFirst(NodeVisitor nodeVisitor,
Node root)
depthFirst traversal with a enter/leave phase.
|
static <T> T |
oneVisitWithResult(Node node,
NodeVisitor nodeVisitor) |
void |
postOrder(NodeVisitor nodeVisitor,
java.util.Collection<? extends Node> roots)
Post-Order traversal: This is a specialized version of depthFirst with only the leave phase.
|
void |
postOrder(NodeVisitor nodeVisitor,
Node root)
Version of
postOrder(NodeVisitor, Collection) with one root. |
void |
preOrder(NodeVisitor nodeVisitor,
java.util.Collection<? extends Node> roots)
Pre-Order traversal: This is a specialized version of depthFirst with only the enter phase.
|
void |
preOrder(NodeVisitor nodeVisitor,
Node root)
Version of
preOrder(NodeVisitor, Collection) with one root. |
public NodeTraverser(java.util.Map<java.lang.Class<?>,java.lang.Object> rootVars, java.util.function.Function<? super Node,? extends java.util.List<Node>> getChildren)
public NodeTraverser()
public void depthFirst(NodeVisitor nodeVisitor, Node root)
nodeVisitor
- root
- public void depthFirst(NodeVisitor nodeVisitor, java.util.Collection<? extends Node> roots)
nodeVisitor
- roots
- public void preOrder(NodeVisitor nodeVisitor, Node root)
preOrder(NodeVisitor, Collection)
with one root.nodeVisitor
- root
- public void preOrder(NodeVisitor nodeVisitor, java.util.Collection<? extends Node> roots)
nodeVisitor
- roots
- public void postOrder(NodeVisitor nodeVisitor, Node root)
postOrder(NodeVisitor, Collection)
with one root.nodeVisitor
- root
- public void postOrder(NodeVisitor nodeVisitor, java.util.Collection<? extends Node> roots)
nodeVisitor
- roots
- public static <T> T oneVisitWithResult(Node node, NodeVisitor nodeVisitor)