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
   *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.apache.pig.newplan.logical.relational;
 
 import java.util.Map;
 
Operator to map the data into the inner plan of LOForEach It can only be used in the inner plan of LOForEach
 
 public class LOInnerLoad extends LogicalRelationalOperator {    
     private ProjectExpression prj
     private LOForEach foreach;
     private boolean sourceIsBag = false;
 
     public LOInnerLoad(OperatorPlan planLOForEach foreachint colNum) {
         super("LOInnerLoad"plan);        
         
         // store column number as a ProjectExpression in a plan 
         // to be able to dynamically adjust column number during optimization
         LogicalExpressionPlan exp = new LogicalExpressionPlan();
         
         // we don't care about type, so set to -1
          = new ProjectExpression(exp, 0, colNumforeach);
         this. = foreach;
     }
 
     public LOInnerLoad(OperatorPlan planLOForEach foreachString colAlias)
     throws FrontendException {
         super("LOInnerLoad"plan); 
         
         // store column number as a ProjectExpression in a plan 
         // to be able to dynamically adjust column number during optimization
         LogicalExpressionPlan exp = new LogicalExpressionPlan();
         
         this. = new ProjectExpressionexp, 0, colAliasnullforeach );
         this. = foreach;
     }
 
     public LOInnerLoad(LogicalPlan planLOForEach foreach,
             ProjectExpression projectExpression) {
         super("LOInnerLoad"plan); 
         this. = projectExpression;
         this..setInputNum(0);
         this..setAttachedRelationalOp(foreach);
         this. = foreach;
     }
 
     @Override
     public LogicalSchema getSchema() throws FrontendException {
         if (!=null)
             return ;
         
         if (.findReferent().getSchema()!=null && .getFieldSchema()!=null) {
             if (.getFieldSchema().==.) {
                  = true;
                  = .getFieldSchema().;
                 if (.getFieldSchema().!=null) {
                     LogicalFieldSchema tupleSchema = .getFieldSchema()..getField(0);
                     if (tupleSchema!=null && tupleSchema.schema!=null) {
                          = new LogicalSchema();
                         for (int i=0;i<tupleSchema.schema.size();i++)
                             .addField(tupleSchema.schema.getField(i));
                     }
                 }
             }
             else {
                  = new LogicalSchema();
                 .addField(.getFieldSchema());
             }
         } else if (!.isRangeOrStarProject()) {
              = new LogicalSchema();
             .addField(new LogicalFieldSchema(nullnull.));
        }
        return ;
    }
    
    @Override
    public void resetSchema(){
        super.resetSchema();
        .resetFieldSchema();
    }
    
    public ProjectExpression getProjection() {
        return ;
    }
    @Override
    public boolean isEqual(Operator otherthrows FrontendException {
        if (!(other instanceof LOInnerLoad)) {
            return false;
        }
        
        return (getColNum() == ((LOInnerLoad)other).getColNum());
    }    
    
    @Override
    public void accept(PlanVisitor vthrows FrontendException {
         if (!(v instanceof LogicalRelationalNodesVisitor)) {
             throw new FrontendException("Expected LogicalPlanVisitor", 2223);
         }
         ((LogicalRelationalNodesVisitor)v).visit(this);
    }
    public int getColNum() {
        return .getColNum();
    }
    
    
Get the LOForEach operator that contains this operator as part of inner plan

Returns:
the LOForEach operator
    public LOForEach getLOForEach() {
        return ;
    }
    
    public boolean sourceIsBag() {
        return ;
    }
    
    public String toString() {
        StringBuilder msg = new StringBuilder();
        if (!=null) {
            msg.append( + ": ");
        }
        msg.append("(Name: " + );
        msg.append("[");
        ifgetProjection().getColAlias() != null )
            msg.appendgetProjection().getColAlias() );
        else if (getProjection().isProjectStar())
            msg.append("*");
        else if (getProjection().isRangeProject())
            msg.append(getProjection().getStartCol())
            .append(" .. ")
            .append(getProjection().getEndCol());
        else
            msg.append(getProjection().getColNum());
        msg.append("]");
        msg.append(" Schema: ");
        if (!=null)
            msg.append();
        else
            msg.append("null");
        msg.append(")");
        if (!=null) {
            for (Map.Entry<StringObjectentry : .entrySet()) {
                msg.append(entry);
            }
        }
        return msg.toString();
    }
    
    @Override
    public void setLocation(SourceLocation loc) {
    	super.setLocationloc );
    	.setLocationloc );
    }
New to GrepCode? Check out our FAQ X