Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.apache.pig.impl.plan;

PlanWalker encapsulates the logic to traverse a plan. It is used only by visitors. All walkers must be constructed in a way that they only visit a given node once in a traversal.
public abstract class PlanWalker <O extends Operator,
       P extends OperatorPlan<O>> {
    protected P mPlan;


plan Plan for this walker to traverse.
    public PlanWalker(P plan) {
         = plan;

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 void walk(PlanVisitor<O, P> visitorthrows VisitorException;

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 abstract PlanWalker<O, P> spawnChildWalker(P plan);
	public P getPlan() {
        return  ;
    public void setPlan(P plan) {
         = plan;
New to GrepCode? Check out our FAQ X