org.teiid.language.visitor
Class DelegatingHierarchyVisitor

java.lang.Object
  extended by org.teiid.language.visitor.AbstractLanguageVisitor
      extended by org.teiid.language.visitor.HierarchyVisitor
          extended by org.teiid.language.visitor.DelegatingHierarchyVisitor
All Implemented Interfaces:
LanguageObjectVisitor

public class DelegatingHierarchyVisitor
extends HierarchyVisitor

Delegates pre- and post-processing for each node in the hierarchy to delegate visitors.


Constructor Summary
DelegatingHierarchyVisitor(LanguageObjectVisitor preProcessingDelegate, LanguageObjectVisitor postProcessingDelegate)
           
 
Method Summary
protected  LanguageObjectVisitor getPostVisitor()
           
protected  LanguageObjectVisitor getPreVisitor()
           
static void postOrderVisit(LanguageObjectVisitor behaviorVisitor, LanguageObject object)
          This utility method can be used to execute the behaviorVisitor in a post-order walk of the language objects.
static void preOrderVisit(LanguageObjectVisitor behaviorVisitor, LanguageObject object)
          This utility method can be used to execute the behaviorVisitor in a pre-order walk of the language objects.
 void visit(AggregateFunction obj)
           
 void visit(AndOr obj)
           
 void visit(Argument obj)
           
 void visit(BatchedUpdates obj)
           
 void visit(Call obj)
           
 void visit(ColumnReference obj)
           
 void visit(Comparison obj)
           
 void visit(Delete obj)
           
 void visit(DerivedColumn obj)
           
 void visit(DerivedTable obj)
           
 void visit(Exists obj)
           
 void visit(Function obj)
           
 void visit(GroupBy obj)
           
 void visit(In obj)
           
 void visit(Insert obj)
           
 void visit(IsNull obj)
           
 void visit(Join obj)
           
 void visit(Like obj)
           
 void visit(Limit obj)
           
 void visit(Literal obj)
           
 void visit(NamedTable obj)
           
 void visit(Not obj)
           
 void visit(OrderBy obj)
           
 void visit(ScalarSubquery obj)
           
 void visit(SearchedCase obj)
           
 void visit(SearchedWhenClause obj)
           
 void visit(Select obj)
           
 void visit(SetClause obj)
           
 void visit(SetQuery obj)
           
 void visit(SortSpecification obj)
           
 void visit(SubqueryComparison obj)
           
 void visit(SubqueryIn obj)
           
 void visit(Update obj)
           
 
Methods inherited from class org.teiid.language.visitor.HierarchyVisitor
visit
 
Methods inherited from class org.teiid.language.visitor.AbstractLanguageVisitor
visit, visitNode, visitNodes, visitNodes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingHierarchyVisitor

public DelegatingHierarchyVisitor(LanguageObjectVisitor preProcessingDelegate,
                                  LanguageObjectVisitor postProcessingDelegate)
Method Detail

getPostVisitor

protected LanguageObjectVisitor getPostVisitor()

getPreVisitor

protected LanguageObjectVisitor getPreVisitor()

visit

public void visit(AggregateFunction obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(BatchedUpdates obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Comparison obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(AndOr obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Delete obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(ColumnReference obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(Call obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Exists obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Function obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(NamedTable obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(GroupBy obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(In obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(DerivedTable obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Insert obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(IsNull obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Join obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Like obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Limit obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(Literal obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(Not obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(OrderBy obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SortSpecification obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(Argument obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class AbstractLanguageVisitor

visit

public void visit(Select obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(ScalarSubquery obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SearchedCase obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(DerivedColumn obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SubqueryComparison obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SubqueryIn obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SetQuery obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(Update obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SetClause obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

visit

public void visit(SearchedWhenClause obj)
Specified by:
visit in interface LanguageObjectVisitor
Overrides:
visit in class HierarchyVisitor

preOrderVisit

public static void preOrderVisit(LanguageObjectVisitor behaviorVisitor,
                                 LanguageObject object)
This utility method can be used to execute the behaviorVisitor in a pre-order walk of the language objects. "Pre-order" in this case means that the visit method of the behaviorVisitor will be called before the visit method of it's children. It is expected that the behavior visit does NOT perform iteration, as that function will be performed by the HierarchyVisitor.

Parameters:
behaviorVisitor - The visitor specifying what behavior is performed at each node type
object - The root of the object tree to perform visitation on

postOrderVisit

public static void postOrderVisit(LanguageObjectVisitor behaviorVisitor,
                                  LanguageObject object)
This utility method can be used to execute the behaviorVisitor in a post-order walk of the language objects. "Post-order" in this case means that the visit method of the behaviorVisitor will be called after the visit method of it's children. It is expected that the behavior visit does NOT perform iteration, as that function will be performed by the HierarchyVisitor.

Parameters:
behaviorVisitor - The visitor specifying what behavior is performed at each node type
object - The root of the object tree to perform visitation on


Copyright © 2010. All Rights Reserved.