public static ContextualStatementBuilder invokeStatic(final Class<?> clazz, final String methodName, final Object... parameters) { return StatementBuilder.create().invokeStatic(clazz, methodName, parameters); }
public static VariableReferenceContextualStatementBuilder loadVariable(final String name, final Object... indexes) { return StatementBuilder.create().loadVariable(name, indexes); }
public static StatementBuilder declareVariable(final String name, final TypeLiteral<?> type, final Object initialization) { return StatementBuilder.create().declareVariable(name, type, initialization); }
@Test public void testForLoopUnchainedWithInitializerAndCountingExpression() { String s = StatementBuilder.create() .declareVariable("i", Integer.class) .for_(StatementBuilder.create().loadVariable("i").assignValue(0), Bool.expr(Variable.get("i"), BooleanOperator.LessThan, 100), StatementBuilder.create().loadVariable("i").assignValue(AssignmentOperator.PreIncrementAssign, 1)) .finish().toJavaString(); assertEquals("Failed to generate for loop with initializer and counting expression", FOR_INITIALIZER_COUNTING_EXP_EMPTY, s); }
@Test public void testInvokeWithParameterizedClassAndVariableReturnType() { String s = StatementBuilder.create(Context.create().autoImport()) .declareVariable("set", Set.class, StatementBuilder.create().invokeStatic(Foo.class, "baz", Set.class)) .toJavaString(); assertEquals("Failed to generate method invocation with variable return type inferred from Class<T>", "Set set = Foo.baz(Set.class);", s); }
@Test public void testForLoopUnchainedWithDeclaringInitializerAndCountingExpression() { String s = StatementBuilder.create() .for_(Stmt.declareVariable(int.class).named("i").initializeWith(0), Bool.expr(Variable.get("i"), BooleanOperator.LessThan, 100), StatementBuilder.create().loadVariable("i").assignValue(AssignmentOperator.PreIncrementAssign, 1)) .append(StatementBuilder.create().loadStatic(System.class, "out").invoke("println", Variable.get("i"))) .finish().toJavaString(); assertEquals("Failed to generate for loop with declaring initializer and counting expression", FOR_DECLARE_INITIALIZER_COUNTING_EXP, s); }
public static BlockBuilder<ElseBlockBuilder> idNotEquals(final Object lhs, final Object rhs) { return StatementBuilder.create().if_(Bool.notEquals(lhs, rhs)); }
public static ArrayInitializationBuilder newArray(final MetaClass componentType, final Object... dimensions) { return StatementBuilder.create().newArray(componentType, dimensions); }
@Test public void testForeachLoopWithLiterals() { String s = StatementBuilder.create() .loadLiteral(new String[] { "s1", "s2" }) .foreach("s") .append(StatementBuilder.create().loadVariable("s").invoke("getBytes")) .finish().toJavaString(); assertEquals("Failed to generate foreach loop using a literal String array", FOREACH_LITERAL_STRING_ARRAY, s); }
@Test @SuppressWarnings(value = { "all" }) public void testCreateAndInitializeTwoDimensionalArrayWithStatements() { final String s = StatementBuilder.create().newArray(String.class) .initialize(new Statement[][] { { StatementBuilder.create().invokeStatic(Integer.class, "toString", 1), StatementBuilder.create().invokeStatic(Integer.class, "toString", 2) }, { StatementBuilder.create().invokeStatic(Integer.class, "toString", 3), StatementBuilder.create().invokeStatic(Integer.class, "toString", 4) } }) .toJavaString(); assertEquals("Failed to generate two dimensional array using statements", "new String[][] { { Integer.toString(1), Integer.toString(2) }, " + "{ Integer.toString(3), Integer.toString(4) } }", s); }
@Test public void testForeachLoopWithStringInArray() { Statement createObject = StatementBuilder.create().newObject(String.class); String foreachWithStringArray = StatementBuilder.create(Context.create().addVariable("list", String[].class)) .loadVariable("list") .foreach("element") .append(createObject) .finish() .toJavaString(); assertEquals("Failed to generate foreach loop using a String[]", FOREACH_STRING_IN_ARRAY_ONE_STATEMENT, foreachWithStringArray); }
@Test public void testWhileLoopsNested() { Context c = Context.create().addVariable("str", String.class).addVariable("str2", String.class); String s = StatementBuilder.create(c) .loadVariable("str") .while_(BooleanOperator.NotEquals, null) .append( StatementBuilder.create(c) .while_(Bool.expr(Variable.get("str2"), BooleanOperator.NotEquals, null)) .finish()) .finish().toJavaString(); assertEquals("Failed to generate nested while loops", WHILE_NESTED_LOOPS, s); }
@Test public void testNestedCall() { final String s = StatementBuilder.create() .nestedCall( StatementBuilder.create().declareVariable("n", Integer.class).loadVariable("n").invoke("toString")) .invoke("getBytes") .toJavaString(); assertEquals("failed to generate nested call", "n.toString().getBytes()", s); }
public static ContextualStatementBuilder load(final Object o) { return StatementBuilder.create().load(o); }
public static ContextualStatementBuilder nestedCall(final Statement statement) { return StatementBuilder.create().nestedCall(statement); }
public static BlockBuilder<StatementEnd> for_(final Statement initializer, final BooleanExpression condition, final Statement countingExpression) { return StatementBuilder.create().for_(initializer, condition, countingExpression); }
@Test public void testDoWhileLoopUnchainedWithNestedExpressions() { String s = StatementBuilder.create() .declareVariable("str", String.class) .do_() .append(StatementBuilder.create().loadStatic(System.class, "out").invoke("println", Variable.get("str"))) .finish() .while_(Bool.expr( Bool.expr(Variable.get("str"), BooleanOperator.NotEquals, null), BooleanOperator.And, Bool.expr(Stmt.loadVariable("str").invoke("length"), BooleanOperator.GreaterThan, 0))) .toJavaString(); assertEquals("Failed to generate do while loop with nested expression", DOWHILE_NESTED_EXPRESSION, s); }
.extend() .publicOverridesMethod("annotationType") .append(StatementBuilder.create().load(Inject.class).returnValue()) .finish() .finish(); .extend() .publicOverridesMethod("annotationType") .append(StatementBuilder.create().load(PostConstruct.class).returnValue()) .finish() .finish(); final String s = StatementBuilder.create().newArray(Annotation.class) .initialize(annotation1, annotation2) .toJavaString();
public static ContextualStatementBuilder loadStatic(final Class<?> clazz, final String fieldName) { return StatementBuilder.create().loadStatic(clazz, fieldName); }
public static ContextualStatementBuilder loadLiteral(final Object o) { return StatementBuilder.create().loadLiteral(o); }