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 static com.facebook.presto.byteCode.ParameterizedType.type;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressionAssertions.assertByteCodeExpression;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressionAssertions.assertByteCodeNode;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressions.constantInt;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressions.constantString;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressions.newInstance;
import static com.facebook.presto.byteCode.expression.ByteCodeExpressions.setStatic;
import static com.facebook.presto.sql.gen.Bootstrap.BOOTSTRAP_METHOD;
import static org.testng.Assert.assertEquals;
    public static String testField;
    @Test
    public void testSetField()
            throws Exception
    {
        CompilerContext context = new CompilerContext();
        Variable point = context.declareVariable(Point.class"point");
        assertSetPoint(contextpoint.setField("x"constantInt(42)));
        assertSetPoint(contextpoint.setField(Point.class.getField("x"), constantInt(42)));
    }
    public static void assertSetPoint(CompilerContext contextByteCodeExpression setX)
            throws Exception
    {
        assertEquals(setX.toString(), "point.x = 42;");
        Block block = new Block(context)
                .append(context.getVariable("point").set(newInstance(Point.classconstantInt(3), constantInt(7))))
                .append(setX)
                .append(context.getVariable("point").ret());
        assertByteCodeNode(blocktype(Point.class), new Point(42, 7));
    }
    @Test
    public void testSetStaticField()
            throws Exception
    {
        assertSetStaticField(setStatic(getClass(), "testField"constantString("testValue")));
        assertSetStaticField(setStatic(getClass().getField("testField"), constantString("testValue")));
        assertSetStaticField(setStatic(type(getClass()), "testField"constantString("testValue")));
    }
    public void assertSetStaticField(ByteCodeExpression setStaticField)
            throws Exception
    {
         = "fail";
        assertByteCodeExpression(setStaticFieldnullgetClass().getSimpleName() + ".testField = \"testValue\";");
        assertEquals("testValue");
    }
New to GrepCode? Check out our FAQ X