Class PlanWalker<O extends Operator,P extends OperatorPlan<O>>
- Direct Known Subclasses:
- DependencyOrderWalker, DepthFirstWalker, ReverseDependencyOrderWalker
public abstract class PlanWalker<O extends Operator,P extends OperatorPlan<O>>
- extends Object
PlanWalker encapsulates the logic to traverse a plan. It is used only by
All walkers must be constructed in a way that they only visit a given node
once in a traversal.
|Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
protected P extends OperatorPlan<O> mPlan
public PlanWalker(P plan)
plan - Plan for this walker to traverse.
public abstract void walk(PlanVisitor<O,P> visitor)
- Begin traversing the graph.
visitor - Visitor this walker is being used by. This can't be set in
the constructor because the visitor is constructing this class, and does
not yet have a 'this' pointer to send as an argument.
VisitorException - if an error is encountered while walking.
public abstract PlanWalker<O,P> spawnChildWalker(P plan)
- Return a new instance of this same type of walker for a subplan.
When this method is called the same type of walker with the
provided plan set as the plan, must be returned. This can then be
used to walk subplans. This allows abstract visitors to clone
walkers without knowning the type of walker their subclasses used.
plan - Plan for the new walker.
- Instance of the same type of walker with mPlan set to plan.
public P getPlan()
public void setPlan(P plan)
Copyright © 2007-2012 The Apache Software Foundation