public class FindModuleDependencies extends java.lang.Object implements NodeTraversal.ScopedCallback
Discovers dependencies from:
The order of dependency references is preserved so that a deterministic depth-first ordering can be achieved.
Modifier and Type | Method and Description |
---|---|
void |
enterScope(NodeTraversal t)
Called immediately after entering a new scope.
|
void |
exitScope(NodeTraversal t)
Called immediately before exiting a scope.
|
void |
process(Node root) |
boolean |
shouldTraverse(NodeTraversal t,
Node n,
Node parent)
Visits a node in preorder (before its children) and decides whether its children should be
traversed.
|
void |
visit(NodeTraversal t,
Node n,
Node parent)
Visits a node in postorder (after its children).
|
public void process(Node root)
public boolean shouldTraverse(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)
in preorder and by NodeTraversal.Callback.visit(NodeTraversal,
Node, Node)
in postorder.
Siblings are always visited left-to-right.
Implementations can have side-effects (e.g. modify the parse tree). Removing the current node is legal, but removing or reordering nodes above the current node may cause nodes to be visited twice or not at all.
shouldTraverse
in interface NodeTraversal.Callback
t
- The current traversal.n
- The current node.parent
- The parent of the current node.public void visit(NodeTraversal t, Node n, Node parent)
NodeTraversal.Callback
NodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node)
returned true for its parent. In particular, the
root node is never visited in postorder.
Siblings are always visited left-to-right.
Implementations can have side-effects (e.g. modify the parse tree). Removing the current node is legal, but removing or reordering nodes above the current node may cause nodes to be visited twice or not at all.
visit
in interface NodeTraversal.Callback
t
- The current traversal.n
- The current node.parent
- The parent of the current node.public void enterScope(NodeTraversal t)
NodeTraversal.ScopedCallback
enterScope
in interface NodeTraversal.ScopedCallback
public void exitScope(NodeTraversal t)
NodeTraversal.ScopedCallback
exitScope
in interface NodeTraversal.ScopedCallback
Copyright © 2009-2020 Google. All Rights Reserved.