@Override public StatementEnd throw_(final Class<? extends Throwable> throwableType, final Object... parameters) { appendCallElement(new ThrowException(throwableType, parameters)); return this; }
@Override public StatementEnd throw_(final String exceptionVarName) { appendCallElement(new ThrowException(exceptionVarName)); return this; }
@Override public StatementEnd throw_(final String exceptionVarName) { appendCallElement(new ThrowException(exceptionVarName)); return this; }
@Override public StatementEnd label(final String label) { appendCallElement(new DefineLabel(label)); return this; }
public StatementBuilder(final Context context) { super(context); if (context != null) { context.getDeclaredVariables().stream() .filter(v -> !THIS_OR_SUPPER_PATTERN.matcher(v.getName()).matches()) .forEach(v -> appendCallElement(new DeclareVariable(v))); } appendCallElement(new ResetCallElement()); }
@Override public ContextualStatementBuilder invokeStatic(final MetaClass clazz, final String methodName, final Object... parameters) { appendCallElement(new LoadClassReference(clazz)); appendCallElement(new MethodCall(methodName, parameters, true)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
public StatementBuilder(final Context context) { super(context); if (context != null) { context.getDeclaredVariables().stream() .filter(v -> !THIS_OR_SUPPER_PATTERN.matcher(v.getName()).matches()) .forEach(v -> appendCallElement(new DeclareVariable(v))); } appendCallElement(new ResetCallElement()); }
@Override public ContextualStatementBuilder invokeStatic(final MetaClass clazz, final String methodName, final Object... parameters) { appendCallElement(new LoadClassReference(clazz)); appendCallElement(new MethodCall(methodName, parameters, true)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public VariableReferenceContextualStatementBuilder loadVariable(final String name, final Object... indexes) { final Matcher m = THIS_PATTERN.matcher(name); if (m.matches()) { return loadClassMember(name.replaceFirst("(this\\.)", ""), indexes); } appendCallElement(new LoadVariable(name, indexes)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public ContextualStatementBuilder nestedCall(final Statement statement) { appendCallElement(new LoadNested(statement)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public ContextualStatementBuilder loadLiteral(final Object o) { appendCallElement(new LoadLiteral(o)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public VariableReferenceContextualStatementBuilder loadClassMember(final String name, final Object... indexes) { appendCallElement(new LoadVariable(name, true, indexes)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public VariableReferenceContextualStatementBuilder loadClassMember(final String name, final Object... indexes) { appendCallElement(new LoadVariable(name, true, indexes)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public ContextualStatementBuilder loadLiteral(final Object o) { appendCallElement(new LoadLiteral(o)); return new ContextualStatementBuilderImpl(context, callElementBuilder); }
@Override public StatementEnd break_() { appendCallElement(new BranchCallElement(new BreakStatement())); return this; }
@Override public StatementEnd break_() { appendCallElement(new BranchCallElement(new BreakStatement())); return this; }
@Override public StatementEnd continue_() { appendCallElement(new BranchCallElement(new ContinueStatement())); return this; }
@Override public StatementEnd continue_(final String label) { appendCallElement(new BranchCallElement(new ContinueStatement(label))); return this; }
@Override public StatementEnd continue_() { appendCallElement(new BranchCallElement(new ContinueStatement())); return this; }
@Override public StatementEnd continue_(final String label) { appendCallElement(new BranchCallElement(new ContinueStatement(label))); return this; }