
目录
2021SC@SDUSC
PlanWalker
PlanWalker
package org.apache.pig.newplan;
import org.apache.pig.impl.logicalLayer.FrontendException;
public abstract class PlanWalker {
protected OperatorPlan plan;
public PlanWalker(OperatorPlan plan) {
this.plan = plan;
}
public abstract void walk(PlanVisitor visitor) throws FrontendException;
public abstract PlanWalker spawnChildWalker(OperatorPlan plan);
public OperatorPlan getPlan() {
return plan ;
}
public void setPlan(OperatorPlan plan) {
this.plan = plan;
}
}
PlanWalker提供的是遍历访问一个plan的能力。
子类PlanWalker的子类主要实现两个方法:
public abstract void walk(PlanVisitor visitor) throws FrontendException; public abstract PlanWalker spawnChildWalker(OperatorPlan plan);
walk()方法在子类的实现中,会以不同的顺序遍历plan,最后的结果是遍历到的节点Operator会调op.accept(visitor)接受本Visitor。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)