Class CollectNodesVisitor<T extends Visitable>
java.lang.Object
org.apache.derby.impl.sql.compile.CollectNodesVisitor<T>
- All Implemented Interfaces:
Visitor
Collect all nodes of the designated type to be returned
in a list.
Can find any type of node -- the class or class name of the target node is passed in as a constructor parameter.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCollectNodesVisitor(Class<T> nodeClass) Construct a visitorCollectNodesVisitor(Class<T> nodeClass, Class<? extends Visitable> skipOverClass) Construct a visitor -
Method Summary
Modifier and TypeMethodDescriptiongetList()Return the list of matching nodes.booleanskipChildren(Visitable node) Don't visit children under the skipOverClass node, if it isn't null.booleanMethod that is called to see if query tree traversal should be stopped before visiting all nodes.If we have found the target node, we are done.booleanvisitChildrenFirst(Visitable node) Method that is called to see ifvisit()should be called on the children ofnodebefore it is called onnodeitself.
-
Field Details
-
nodeList
-
nodeClass
-
skipOverClass
-
-
Constructor Details
-
CollectNodesVisitor
Construct a visitor- Parameters:
nodeClass- the class of the node that we are looking for.
-
CollectNodesVisitor
Construct a visitor- Parameters:
nodeClass- the class of the node that we are looking for.skipOverClass- do not go below this node when searching for nodeClass.
-
-
Method Details
-
visitChildrenFirst
Description copied from interface:VisitorMethod that is called to see ifvisit()should be called on the children ofnodebefore it is called onnodeitself. If this method always returnstrue, the visitor will walk the tree bottom-up. If it always returnsfalse, the tree is visited top-down.- Specified by:
visitChildrenFirstin interfaceVisitor- Parameters:
node- the top node of a sub-tree about to be visited- Returns:
trueifnode's children should be visited beforenode,falseotherwise
-
stopTraversal
public boolean stopTraversal()Description copied from interface:VisitorMethod that is called to see if query tree traversal should be stopped before visiting all nodes. Useful for short circuiting traversal if we already know we are done.- Specified by:
stopTraversalin interfaceVisitor- Returns:
- true/false
-
visit
If we have found the target node, we are done. -
skipChildren
Don't visit children under the skipOverClass node, if it isn't null.- Specified by:
skipChildrenin interfaceVisitor- Parameters:
node- the node to process- Returns:
- true/false
-
getList
Return the list of matching nodes. The returned list may be empty, if there are no matching nodes. It is nevernull.
-