org.apache.pig.newplan
Class DependencyOrderWalker

java.lang.Object
  extended by org.apache.pig.newplan.PlanWalker
      extended by org.apache.pig.newplan.DependencyOrderWalker
Direct Known Subclasses:
SubtreeDependencyOrderWalker

public class DependencyOrderWalker
extends PlanWalker

A walker to walk graphs in dependency order. It is guaranteed that a node will not be visited until all of its predecessors have been visited. This is equivalent to doing a topilogical sort on the graph and then visiting the nodes in order.


Field Summary
 
Fields inherited from class org.apache.pig.newplan.PlanWalker
plan
 
Constructor Summary
DependencyOrderWalker(OperatorPlan plan)
           
 
Method Summary
protected  void doAllPredecessors(Operator node, Set<Operator> seen, Collection<Operator> fifo)
           
 PlanWalker spawnChildWalker(OperatorPlan plan)
          Return a new instance of this same type of walker for a subplan.
 void walk(PlanVisitor visitor)
          Begin traversing the graph.
 
Methods inherited from class org.apache.pig.newplan.PlanWalker
getPlan, setPlan
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DependencyOrderWalker

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

spawnChildWalker

public PlanWalker spawnChildWalker(OperatorPlan plan)
Description copied from class: PlanWalker
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.

Specified by:
spawnChildWalker in class PlanWalker
Parameters:
plan - Plan for the new walker.
Returns:
Instance of the same type of walker with plan set to plan.

walk

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

Specified by:
walk in class PlanWalker
Parameters:
visitor - Visitor this walker is being used by.
Throws:
VisitorException - if an error is encountered while walking.
FrontendException

doAllPredecessors

protected void doAllPredecessors(Operator node,
                                 Set<Operator> seen,
                                 Collection<Operator> fifo)
                          throws FrontendException
Throws:
FrontendException


Copyright © 2007-2012 The Apache Software Foundation