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.byteCode.expression;
 
 
 
 import java.util.List;
 
 import static com.facebook.presto.byteCode.Access.STATIC;
 import static com.facebook.presto.byteCode.ParameterizedType.type;
 import static com.facebook.presto.byteCode.instruction.FieldInstruction.getStaticInstruction;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static java.lang.String.format;
 
         extends ByteCodeExpression
 {
     private final ByteCodeExpression instance;
     private final ParameterizedType declaringClass;
     private final String name;
 
     public GetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceClass<?> declaringClassString name)
     {
         this(instancegetDeclaredField(declaringClassname));
     }
 
     public GetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceField field)
     {
         this(instancetype(checkNotNull(field"field is null").getDeclaringClass()), field.getName(), type(field.getType()));
 
         boolean isStatic = Modifier.isStatic(field.getModifiers());
         if (instance == null) {
             checkArgument(isStatic"Field is not static: %s"field);
         }
         else {
             checkArgument(!isStatic"Field is static: %s"field);
         }
     }
 
     {
         this(instancecheckNotNull(field"field is null").getDeclaringClass().getType(), field.getName(), field.getType());
         if (instance == null) {
             checkArgument(field.getAccess().contains(), "Field is not static: %s"field);
         }
         else {
             checkArgument(!field.getAccess().contains(), "Field is static: %s"field);
         }
     }
 
     public GetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceParameterizedType declaringClassString nameParameterizedType type)
     {
         super(type);
         checkArgument(instance == null || !instance.getType().isPrimitive(), "Type %s does not have fields"getType());
         this. = instance;
         this. = checkNotNull(declaringClass"declaringClass is null");
         this. = checkNotNull(name"name is null");
     }
 
     @Override
     public ByteCodeNode getByteCode()
     {
         if ( == null) {
             return getStaticInstruction(getType());
         }
 
         return new Block(null)
                 .append(.getByteCode())
                 .getField(getType());
     }
 
     @Override
     protected String formatOneLine()
     {
         if ( == null) {
             return .getSimpleName() + "." + ;
         }
         return  + "." + ;
     }
    @Override
    public List<ByteCodeNodegetChildNodes()
    {
        return ( == null) ? ImmutableList.<ByteCodeNode>of() : ImmutableList.<ByteCodeNode>of();
    }
    private static Field getDeclaredField(Class<?> declaringClassString name)
    {
        checkNotNull(declaringClass"declaringClass is null");
        checkNotNull(name"name is null");
        try {
            return declaringClass.getField(name);
        }
        catch (NoSuchFieldException e) {
            throw new IllegalArgumentException(format("Class %s does not have a '%s' field"declaringClass.getName(), name));
        }
    }
New to GrepCode? Check out our FAQ X