org.apache.pig.newplan
Class PlanWalker

java.lang.Object
  extended by org.apache.pig.newplan.PlanWalker
Direct Known Subclasses:
DependencyOrderWalker, DepthFirstWalker, PreOrderDepthFirstWalker, ReverseDependencyOrderWalker, ReverseDependencyOrderWalkerWOSeenChk

public abstract class PlanWalker
extends Object


Field Summary
protected  OperatorPlan plan
           
 
Constructor Summary
PlanWalker(OperatorPlan plan)
           
 
Method Summary
 OperatorPlan getPlan()
           
 void setPlan(OperatorPlan plan)
          Set the plan for this walker to operate on.
abstract  PlanWalker spawnChildWalker(OperatorPlan plan)
          Return a new instance of this same type of walker for a subplan.
abstract  void walk(PlanVisitor visitor)
          Begin traversing the graph.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

plan

protected OperatorPlan plan
Constructor Detail

PlanWalker

public PlanWalker(OperatorPlan plan)
Parameters:
plan - Plan for this walker to traverse.
Method Detail

walk

public abstract void walk(PlanVisitor visitor)
                   throws FrontendException
Begin traversing the graph.

Parameters:
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.
Throws:
VisitorException - if an error is encountered while walking.
FrontendException

spawnChildWalker

public abstract PlanWalker spawnChildWalker(OperatorPlan 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.

Parameters:
plan - Plan for the new walker.
Returns:
Instance of the same type of walker with plan set to plan.

getPlan

public OperatorPlan getPlan()

setPlan

public void setPlan(OperatorPlan plan)
Set the plan for this walker to operate on.

Parameters:
plan - to walk


Copyright © 2007-2012 The Apache Software Foundation