Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed 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 com.facebook.presto.sql.analyzer;
 
 
Represents an expression or a direct field reference. The latter is used, for instance, when expanding "*" in SELECT * FROM ....
 
 public class FieldOrExpression
 {
     // reference to field in underlying relation
     private final Optional<IntegerfieldIndex;
     private final Optional<Expressionexpression;
 
     public FieldOrExpression(int fieldIndex)
     {
         this. = Optional.of(fieldIndex);
         this. = Optional.empty();
     }
 
     public FieldOrExpression(Expression expression)
     {
         Preconditions.checkNotNull(expression"expression is null");
 
         this. = Optional.empty();
         this. = Optional.of(expression);
     }
 
     public boolean isFieldReference()
     {
         return .isPresent();
     }
 
     public int getFieldIndex()
     {
         Preconditions.checkState(isFieldReference(), "Not a field reference");
         return .get();
     }
 
     public boolean isExpression()
     {
         return .isPresent();
     }
 
     public Expression getExpression()
     {
         Preconditions.checkState(isExpression(), "Not an expression");
         return .get();
     }
 
     @Override
     public String toString()
     {
         if (.isPresent()) {
             return .get().toString();
         }
 
         return .get().toString();
     }
 
     @Override
     public boolean equals(Object o)
     {
         if (this == o) {
             return true;
         }
         if (o == null || getClass() != o.getClass()) {
             return false;
         }
 
         FieldOrExpression that = (FieldOrExpressiono;
 
         if (!.equals(that.expression)) {
             return false;
         }
         if (!.equals(that.fieldIndex)) {
             return false;
         }
 
         return true;
     }
 
     @Override
    public int hashCode()
    {
        int result = .hashCode();
        result = 31 * result + .hashCode();
        return result;
    }
New to GrepCode? Check out our FAQ X