Class CollectNodesVisitor<T extends Visitable>
- java.lang.Object
-
- org.apache.derby.impl.sql.compile.CollectNodesVisitor<T>
-
- All Implemented Interfaces:
Visitor
public class CollectNodesVisitor<T extends Visitable> extends java.lang.Object implements 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.
-
-
Constructor Summary
Constructors Constructor Description CollectNodesVisitor(java.lang.Class<T> nodeClass)
Construct a visitorCollectNodesVisitor(java.lang.Class<T> nodeClass, java.lang.Class<? extends Visitable> skipOverClass)
Construct a visitor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<T>
getList()
Return the list of matching nodes.boolean
skipChildren(Visitable node)
Don't visit children under the skipOverClass node, if it isn't null.boolean
stopTraversal()
Method that is called to see if query tree traversal should be stopped before visiting all nodes.Visitable
visit(Visitable node)
If we have found the target node, we are done.boolean
visitChildrenFirst(Visitable node)
Method that is called to see ifvisit()
should be called on the children ofnode
before it is called onnode
itself.
-
-
-
Constructor Detail
-
CollectNodesVisitor
public CollectNodesVisitor(java.lang.Class<T> nodeClass)
Construct a visitor- Parameters:
nodeClass
- the class of the node that we are looking for.
-
-
Method Detail
-
visitChildrenFirst
public boolean visitChildrenFirst(Visitable node)
Description copied from interface:Visitor
Method that is called to see ifvisit()
should be called on the children ofnode
before it is called onnode
itself. 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:
visitChildrenFirst
in interfaceVisitor
- Parameters:
node
- the top node of a sub-tree about to be visited- Returns:
true
ifnode
's children should be visited beforenode
,false
otherwise
-
stopTraversal
public boolean stopTraversal()
Description copied from interface:Visitor
Method 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:
stopTraversal
in interfaceVisitor
- Returns:
- true/false
-
skipChildren
public boolean skipChildren(Visitable node)
Don't visit children under the skipOverClass node, if it isn't null.- Specified by:
skipChildren
in interfaceVisitor
- Parameters:
node
- the node to process- Returns:
- true/false
-
getList
public java.util.List<T> getList()
Return the list of matching nodes. The returned list may be empty, if there are no matching nodes. It is nevernull
.
-
-