public ContextBuilder addVariable(String name, Class<?> type) { context.addVariable(Variable.create(name, type)); return this; }
public ContextBuilder addVariable(String name, Class<?> type) { context.addVariable(Variable.create(name, type)); return this; }
public ContextBuilder addVariable(String name, TypeLiteral<?> type) { context.addVariable(Variable.create(name, type)); return this; }
public BuildMetaClass(final Context context, final String name) { super(null); this.className = name; if (context != null) { this.context = Context.create(context); this.context.addVariable(Variable.create("this", this)); context.attachClass(this); } }
public BuildMetaClass(final Context context, final String name) { super(null); this.className = name; if (context != null) { this.context = Context.create(context); this.context.addVariable(Variable.create("this", this)); context.attachClass(this); } }
@Before public void setUp() { processor = new ResourceCheckProcessor(ResourceCheck.class); context.addVariable("project1", String.class); context.addVariable("this", FunctionTest.class); }
ObjectBuilder(final MetaClass type, final Context context, final CallElementBuilder callElementBuilder) { super(context, callElementBuilder); if (context != null) { context.attachClass(type); Arrays.stream(type.getDeclaredFields()). forEach(f -> context.addVariable(Variable.create(f.getName(), f.getType()))); } this.type = type; }
ObjectBuilder(final MetaClass type, final Context context, final CallElementBuilder callElementBuilder) { super(context, callElementBuilder); if (context != null) { context.attachClass(type); Arrays.stream(type.getDeclaredFields()). forEach(f -> context.addVariable(Variable.create(f.getName(), f.getType()))); } this.type = type; }
@Before public void setUp() { processor = new ResourceCheckProcessor(ResourceCheck.class); context.addVariable("project1", String.class); context.addVariable("this", FunctionTest.class); }
@Override public void handleCall(final CallWriter writer, final Context context, final Statement statement) { writer.reset(); context.addVariable(variable); writer.append(variable.generate(context)); if (next == null) { writer.append(";"); } nextOrReturn(writer, context, null); }
@Before public void setUp() { processor = new PermissionCheckProcessor(PermissionCheck.class); context.addVariable("this", FunctionTest.class); }
@Override public void handleCall(final CallWriter writer, final Context context, final Statement statement) { writer.reset(); context.addVariable(variable); writer.append(variable.generate(context)); if (next == null) { writer.append(";"); } nextOrReturn(writer, context, null); }
@Before public void setUp() { processor = new PermissionCheckProcessor(PermissionCheck.class); context.addVariable("this", FunctionTest.class); }
@Test public void testCastWithVariableGetAPI() { final Context ctx = Context.create(); ctx.addVariable(Variable.create("str", String.class)); final Statement stmt = Cast.to(Object.class, Variable.get("str")); assertEquals("created a redundant cast", "str", stmt.generate(ctx)); }
@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 testIfBlockUnchainedWithExpressionUsingNegation() { Context ctx = Context.create().addVariable("a", boolean.class) .addVariable("b", boolean.class); String s = Stmt.create(ctx) .if_(Bool.expr(Stmt.loadVariable("a"), BooleanOperator.And, Bool.expr(Stmt.loadVariable("b")).negate())) .append(Stmt.loadStatic(System.class, "out").invoke("println", Refs.get("a"))) .finish() .toJavaString(); assertEquals("Failed to generate if block using nested boolean expressions", IF_BLOCK_UNCHAINED_WITH_EXPRESSION_USING_NEGATION, s); }
@Test public void testInvokeWithParameterTypeConversionOfVariable() { Context c = Context.create().addVariable("n", Integer.class, 123); String s = StatementBuilder.create(c) .declareVariable("str", String.class) .loadVariable("str") .invoke("endsWith", c.getVariable("n").getValue()) .toJavaString(); assertEquals("Failed to generate invocation with parameter type conversion of variable", "str.endsWith(\"123\")", s); }
@Test public void testWhileLoopUnchainedWithExpression() { Context ctx = Context.create().addVariable("str", String.class); String s = StatementBuilder.create(ctx) .while_(Bool.expr(Stmt.loadVariable("str").invoke("length"), BooleanOperator.GreaterThanOrEqual, 2)) .finish().toJavaString(); assertEquals("Failed to generate while loop with rhs and no body", WHILE_RHS_EMPTY, s); }
@Test public void testReturnVoid() { final Context ctx = Context.create(); ctx.addVariable(Variable.create("foo", Object.class)); final Statement stmt = Stmt.if_(Bool.isNull(Refs.get("foo"))) .append(Stmt.returnVoid()).finish(); assertEquals("failed to generate return statement", "if (foo == null) {\n" + " return;\n" + "}", stmt.generate(ctx)); }
@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); }