private BlockBuilder<StatementEnd> createLoopBody(BlockStatement body) { return new BlockBuilderImpl<StatementEnd>(body, new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return LoopBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<T> _(final Statement stmt) { return append(stmt); }
@Override public void insertBefore(final InnerClass innerClass) { insertBefore(new Statement() { @Override public String generate(final Context context) { return innerClass.generate(context); } @Override public MetaClass getType() { return innerClass.getType(); } }); }
private BlockBuilder<StatementEnd> createLoopBody(BlockStatement body) { return new BlockBuilderImpl<StatementEnd>(body, new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return LoopBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<T> _(final InnerClass innerClass) { return append(innerClass); }
@Override public void insertBefore(final InnerClass innerClass) { insertBefore(new Statement() { @Override public String generate(final Context context) { return innerClass.generate(context); } @Override public MetaClass getType() { return innerClass.getType(); } }); }
@Override public BlockBuilder<AnonymousClassStructureBuilder> initialize() { return new BlockBuilderImpl<AnonymousClassStructureBuilder>( new BuildCallback<AnonymousClassStructureBuilder>() { @Override public AnonymousClassStructureBuilderImpl callback(final Statement statement) { addCallable(context -> { final StringBuilder buf = new StringBuilder(256); buf.append("{\n"); if (statement != null) { buf.append(statement.generate(Context.create(context))).append("\n"); } buf.append("}\n"); return buf.toString(); }); return AnonymousClassStructureBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<T> _(final Statement stmt) { return append(stmt); }
@Override public BlockBuilder<AnonymousClassStructureBuilder> initialize() { return new BlockBuilderImpl<AnonymousClassStructureBuilder>( new BuildCallback<AnonymousClassStructureBuilder>() { @Override public AnonymousClassStructureBuilderImpl callback(final Statement statement) { addCallable(context -> { final StringBuilder buf = new StringBuilder(256); buf.append("{\n"); if (statement != null) { buf.append(statement.generate(Context.create(context))).append("\n"); } buf.append("}\n"); return buf.toString(); }); return AnonymousClassStructureBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<T> _(final InnerClass innerClass) { return append(innerClass); }
private BlockBuilder<AnonymousClassStructureBuilder> publicOverridesMethod(final MetaMethod method, final DefParameters parameters) { return new BlockBuilderImpl<AnonymousClassStructureBuilder>( new BuildCallback<AnonymousClassStructureBuilder>() { @Override public AnonymousClassStructureBuilder callback(final Statement statement) { addCallable(context -> { final Context subContext = Context.create(context); parameters.getParameters() .forEach(p -> subContext.addVariable(Variable.create(p.getName(), p.getType()))); final StringBuilder buf = new StringBuilder(256); final String returnType = getClassReference(method.getReturnType(), context); buf.append("public ").append(returnType) .append(" ") .append(method.getName()) .append(parameters.generate(context)).append(" {\n"); if (statement != null) { buf.append(statement.generate(subContext)).append("\n"); } buf.append("}\n"); return buf.toString(); }); return AnonymousClassStructureBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
private BlockBuilder<AnonymousClassStructureBuilder> publicOverridesMethod(final MetaMethod method, final DefParameters parameters) { return new BlockBuilderImpl<AnonymousClassStructureBuilder>( new BuildCallback<AnonymousClassStructureBuilder>() { @Override public AnonymousClassStructureBuilder callback(final Statement statement) { addCallable(context -> { final Context subContext = Context.create(context); parameters.getParameters() .forEach(p -> subContext.addVariable(Variable.create(p.getName(), p.getType()))); final StringBuilder buf = new StringBuilder(256); final String returnType = getClassReference(method.getReturnType(), context); buf.append("public ").append(returnType) .append(" ") .append(method.getName()) .append(parameters.generate(context)).append(" {\n"); if (statement != null) { buf.append(statement.generate(subContext)).append("\n"); } buf.append("}\n"); return buf.toString(); }); return AnonymousClassStructureBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<StatementEnd> else_() { return new BlockBuilderImpl<StatementEnd>(ifBlock.getElseBlock(), new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return IfBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
private BlockBuilder<ElseBlockBuilder> elseif_(final IfBlock elseIfBlock) { return new BlockBuilderImpl<ElseBlockBuilder>(elseIfBlock.getBlock(), new BuildCallback<ElseBlockBuilder>() { @Override public ElseBlockBuilder callback(Statement statement) { return new IfBlockBuilderImpl(context, callElementBuilder, elseIfBlock); } @Override public Context getParentContext() { return context; } }); } }
private BlockBuilder<CaseBlockBuilder> caseBlock(LiteralValue<?> value) { return new BlockBuilderImpl<CaseBlockBuilder>(switchBlock.getCaseBlock(value), new BuildCallback<CaseBlockBuilder>() { @Override public CaseBlockBuilder callback(Statement statement) { return SwitchBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<StatementEnd> else_() { return new BlockBuilderImpl<StatementEnd>(ifBlock.getElseBlock(), new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return IfBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
private BlockBuilder<ElseBlockBuilder> elseif_(final IfBlock elseIfBlock) { return new BlockBuilderImpl<ElseBlockBuilder>(elseIfBlock.getBlock(), new BuildCallback<ElseBlockBuilder>() { @Override public ElseBlockBuilder callback(Statement statement) { return new IfBlockBuilderImpl(context, callElementBuilder, elseIfBlock); } @Override public Context getParentContext() { return context; } }); } }
private BlockBuilder<CaseBlockBuilder> caseBlock(LiteralValue<?> value) { return new BlockBuilderImpl<CaseBlockBuilder>(switchBlock.getCaseBlock(value), new BuildCallback<CaseBlockBuilder>() { @Override public CaseBlockBuilder callback(Statement statement) { return SwitchBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); }
@Override public BlockBuilder<StatementEnd> finally_() { return new BlockBuilderImpl<StatementEnd>(tryBlock.getFinallyBlock(), new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return TryBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); } }
@Override public BlockBuilder<StatementEnd> default_() { return new BlockBuilderImpl<StatementEnd>(switchBlock.getDefaultBlock(), new BuildCallback<StatementEnd>() { @Override public StatementEnd callback(Statement statement) { return SwitchBlockBuilderImpl.this; } @Override public Context getParentContext() { return context; } }); } }