@@ -78,11 +78,18 @@ public class NodeTraversal {
78
78
/** Callback for tree-based traversals */
79
79
public interface Callback {
80
80
/**
81
- * Visits a node in preorder (before its children) and decides whether its children should be
82
- * traversed. If the children should be traversed, they will be visited by {@link
81
+ * Visits a node in preorder (before its children) and decides whether the node and its children
82
+ * should be traversed.
83
+ *
84
+ * <p>If this method returns true, the node will be visited by {@link #visit(NodeTraversal,
85
+ * Node, Node)} in postorder and its children will be visited by both {@link
83
86
* #shouldTraverse(NodeTraversal, Node, Node)} in preorder and by {@link #visit(NodeTraversal,
84
87
* Node, Node)} in postorder.
85
88
*
89
+ * <p>If this method returns false, the node will not be visited by {@link #visit(NodeTraversal,
90
+ * Node, Node)} and its children will neither be visited by {@link
91
+ * #shouldTraverse(NodeTraversal, Node, Node)} nor {@link #visit(NodeTraversal, Node, Node)}.
92
+ *
86
93
* <p>Siblings are always visited left-to-right.
87
94
*
88
95
* <p>Implementations can have side-effects (e.g. modify the parse tree). Removing the current
@@ -98,8 +105,8 @@ public interface Callback {
98
105
99
106
/**
100
107
* Visits a node in postorder (after its children). A node is visited in postorder iff {@link
101
- * #shouldTraverse(NodeTraversal, Node, Node)} returned true for its parent. In particular, the
102
- * root node is never visited in postorder.
108
+ * #shouldTraverse(NodeTraversal, Node, Node)} returned true for its parent and itself. In
109
+ * particular, the root node is never visited in postorder.
103
110
*
104
111
* <p>Siblings are always visited left-to-right.
105
112
*
0 commit comments