Class HasNodeVisitor

  • All Implemented Interfaces:
    Visitor
    Direct Known Subclasses:
    HasTableFunctionVisitor

    class HasNodeVisitor
    extends java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      protected boolean hasNode  
      private java.lang.Class<?> nodeClass  
      private java.lang.Class<?> skipOverClass  
    • Constructor Summary

      Constructors 
      Constructor Description
      HasNodeVisitor​(java.lang.Class<?> nodeClass)
      Construct a visitor
      HasNodeVisitor​(java.lang.Class<?> nodeClass, java.lang.Class<?> skipOverClass)
      Construct a visitor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) boolean hasNode()
      Indicate whether we found the node in question
      (package private) void reset()
      Reset the status so it can be run again.
      boolean skipChildren​(Visitable node)
      Don't visit children under the skipOverClass node, if it isn't null.
      boolean stopTraversal()
      Stop traversal if we found the target node
      Visitable visit​(Visitable node)
      If we have found the target node, we are done.
      boolean visitChildrenFirst​(Visitable node)
      Visit parent before children.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • hasNode

        protected boolean hasNode
      • nodeClass

        private java.lang.Class<?> nodeClass
      • skipOverClass

        private java.lang.Class<?> skipOverClass
    • Constructor Detail

      • HasNodeVisitor

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

        HasNodeVisitor​(java.lang.Class<?> nodeClass,
                       java.lang.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 Detail

      • 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.