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.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;
     private final ByteCodeExpression value;
     private final ParameterizedType fieldType;
 
     public SetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceClass<?> declaringClassString nameByteCodeExpression value)
     {
         this(instancegetDeclaredField(declaringClassname), value);
     }
 
     public SetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceField fieldByteCodeExpression value)
     {
         this(instancetype(checkNotNull(field"field is null").getDeclaringClass()), field.getName(), valuetype(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(), valuefield.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 SetFieldByteCodeExpression(@Nullable ByteCodeExpression instanceParameterizedType declaringClassString nameByteCodeExpression value)
     {
         this(instancedeclaringClassnamevaluevalue.getType());
     }
 
             ParameterizedType declaringClass,
             String name,
             ByteCodeExpression value,
             ParameterizedType fieldType)
     {
         super(type(void.class));
         if (instance != null) {
             checkArgument(!instance.getType().isPrimitive(), "Type %s does not have fields"instance.getType());
         }
         this. = instance;
         this. = checkNotNull(declaringClass"declaringClass is null");
         this. = checkNotNull(name"name is null");
         this. = checkNotNull(fieldType"fieldType is null");
         this. = checkNotNull(value"value is null");
     }
 
     @Override
     public ByteCodeNode getByteCode()
     {
         if ( == null) {
             return new Block(null)
                     .append(.getByteCode())
                    .putStaticField();
        }
        return new Block(null)
                .append(.getByteCode())
                .append(.getByteCode())
                .putField();
    }
    @Override
    protected String formatOneLine()
    {
        if ( == null) {
            return .getSimpleName() + "." +  + " = " + ;
        }
        else {
            return  + "." +  + " = " + ;
        }
    }
    @Override
    public List<ByteCodeNodegetChildNodes()
    {
        ImmutableList.Builder<ByteCodeNodechildren = ImmutableList.builder();
        if ( != null) {
            children.add();
        }
        children.add();
        return children.build();
    }
    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