Class HasNodeVisitor

java.lang.Object
org.apache.derby.impl.sql.compile.HasNodeVisitor
All Implemented Interfaces:
Visitor
Direct Known Subclasses:
HasTableFunctionVisitor

class HasNodeVisitor extends Object implements Visitor
Find out if we have a particular node anywhere in the tree. Stop traversal as soon as we find one.

Can find any type of node -- the class or class name of the target node is passed in as a constructor parameter.

  • Field Details

    • hasNode

      protected boolean hasNode
    • nodeClass

      private Class<?> nodeClass
    • skipOverClass

      private Class<?> skipOverClass
  • Constructor Details

    • HasNodeVisitor

      HasNodeVisitor(Class<?> nodeClass)
      Construct a visitor
      Parameters:
      nodeClass - the class of the node that we are looking for.
    • HasNodeVisitor

      HasNodeVisitor(Class<?> nodeClass, Class<?> skipOverClass)
      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

    • visit

      public Visitable visit(Visitable node)
      If we have found the target node, we are done.
      Specified by:
      visit in interface Visitor
      Parameters:
      node - the node to process
      Returns:
      me
    • stopTraversal

      public boolean stopTraversal()
      Stop traversal if we found the target node
      Specified by:
      stopTraversal in interface Visitor
      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 interface Visitor
      Parameters:
      node - the node to process
      Returns:
      true/false
    • visitChildrenFirst

      public boolean visitChildrenFirst(Visitable node)
      Visit parent before children.
      Specified by:
      visitChildrenFirst in interface Visitor
      Parameters:
      node - the top node of a sub-tree about to be visited
      Returns:
      true if node's children should be visited before node, false otherwise
    • hasNode

      boolean hasNode()
      Indicate whether we found the node in question
      Returns:
      true/false
    • reset

      void reset()
      Reset the status so it can be run again.