Clarify lambda code block methods
This commit is contained in:
parent
f64fc4baff
commit
5378572b00
|
@ -92,7 +92,7 @@ class ScopedProxyBeanRegistrationContributionProvider implements BeanRegistratio
|
||||||
statements.addStatement("factory.setTargetBeanName($S)", targetBeanName);
|
statements.addStatement("factory.setTargetBeanName($S)", targetBeanName);
|
||||||
statements.addStatement("factory.setBeanFactory(beanFactory)");
|
statements.addStatement("factory.setBeanFactory(beanFactory)");
|
||||||
statements.addStatement("return factory.getObject()");
|
statements.addStatement("return factory.getObject()");
|
||||||
codeContribution.statements().add(statements.toLambdaBody("() ->"));
|
codeContribution.statements().add(statements.toLambda("() ->"));
|
||||||
return codeContribution;
|
return codeContribution;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -421,7 +421,7 @@ public class BeanRegistrationBeanFactoryContribution implements BeanFactoryContr
|
||||||
if (statements.isEmpty()) {
|
if (statements.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
code.add(statements.toLambdaBody(".customize((" + bdVariable + ") ->"));
|
code.add(statements.toLambda(".customize((" + bdVariable + ") ->"));
|
||||||
code.add(")");
|
code.add(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -234,7 +234,7 @@ public class InjectionGenerator {
|
||||||
code.add(".resolve(beanFactory, false).ifResolved(");
|
code.add(".resolve(beanFactory, false).ifResolved(");
|
||||||
}
|
}
|
||||||
code.add(this.fieldGenerator.generateSetValue("bean", injectionPoint,
|
code.add(this.fieldGenerator.generateSetValue("bean", injectionPoint,
|
||||||
CodeBlock.of("attributes.get(0)")).toLambdaBody("(attributes) ->"));
|
CodeBlock.of("attributes.get(0)")).toLambda("(attributes) ->"));
|
||||||
code.add(")").unindent().unindent();
|
code.add(")").unindent().unindent();
|
||||||
return code.build();
|
return code.build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@ public final class MultiStatement {
|
||||||
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
||||||
* instance. If only one statement is available, it is not completed using the
|
* instance. If only one statement is available, it is not completed using the
|
||||||
* {@code ;} termination so that it can be used in the context of a lambda.
|
* {@code ;} termination so that it can be used in the context of a lambda.
|
||||||
* @return the statement(s)
|
* @return the body of the lambda
|
||||||
*/
|
*/
|
||||||
public CodeBlock toLambdaBody() {
|
public CodeBlock toLambdaBody() {
|
||||||
Builder code = CodeBlock.builder();
|
Builder code = CodeBlock.builder();
|
||||||
|
@ -155,12 +155,12 @@ public final class MultiStatement {
|
||||||
/**
|
/**
|
||||||
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
||||||
* instance in the context of a lambda.
|
* instance in the context of a lambda.
|
||||||
* @param lambda the context of the lambda, must end with {@code ->}
|
* @param lambdaParameter the parameter(s) of the lambda, must end with {@code ->}
|
||||||
* @return the lambda body
|
* @return a lambda whose body is generated from the statements of this instance
|
||||||
*/
|
*/
|
||||||
public CodeBlock toLambdaBody(CodeBlock lambda) {
|
public CodeBlock toLambda(CodeBlock lambdaParameter) {
|
||||||
Builder code = CodeBlock.builder();
|
Builder code = CodeBlock.builder();
|
||||||
code.add(lambda);
|
code.add(lambdaParameter);
|
||||||
if (isMulti()) {
|
if (isMulti()) {
|
||||||
code.beginControlFlow("");
|
code.beginControlFlow("");
|
||||||
}
|
}
|
||||||
|
@ -177,11 +177,11 @@ public final class MultiStatement {
|
||||||
/**
|
/**
|
||||||
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
* Return a {@link CodeBlock} that applies all the {@code statements} of this
|
||||||
* instance in the context of a lambda.
|
* instance in the context of a lambda.
|
||||||
* @param lambda the context of the lambda, must end with {@code ->}
|
* @param lambdaParameter the parameter(s) of the lambda, must end with {@code ->}
|
||||||
* @return the lambda body
|
* @return a lambda whose body is generated from the statements of this instance
|
||||||
*/
|
*/
|
||||||
public CodeBlock toLambdaBody(String lambda) {
|
public CodeBlock toLambda(String lambdaParameter) {
|
||||||
return toLambdaBody(CodeBlock.of(lambda));
|
return toLambda(CodeBlock.of(lambdaParameter));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isMulti() {
|
private boolean isMulti() {
|
||||||
|
|
|
@ -119,7 +119,7 @@ class MultiStatementTests {
|
||||||
void singleStatementWithLambda() {
|
void singleStatementWithLambda() {
|
||||||
MultiStatement statements = new MultiStatement();
|
MultiStatement statements = new MultiStatement();
|
||||||
statements.addStatement("field.method($S)", "hello");
|
statements.addStatement("field.method($S)", "hello");
|
||||||
CodeBlock codeBlock = statements.toLambdaBody(CodeBlock.of("() ->"));
|
CodeBlock codeBlock = statements.toLambda(CodeBlock.of("() ->"));
|
||||||
assertThat(codeBlock.toString()).isEqualTo("() -> field.method(\"hello\")");
|
assertThat(codeBlock.toString()).isEqualTo("() -> field.method(\"hello\")");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ class MultiStatementTests {
|
||||||
MultiStatement statements = new MultiStatement();
|
MultiStatement statements = new MultiStatement();
|
||||||
statements.addStatement("field.method($S)", "hello");
|
statements.addStatement("field.method($S)", "hello");
|
||||||
statements.addStatement("field.anotherMethod($S)", "hello");
|
statements.addStatement("field.anotherMethod($S)", "hello");
|
||||||
CodeBlock codeBlock = statements.toLambdaBody(CodeBlock.of("() ->"));
|
CodeBlock codeBlock = statements.toLambda(CodeBlock.of("() ->"));
|
||||||
assertThat(codeBlock.toString().lines()).containsExactly(
|
assertThat(codeBlock.toString().lines()).containsExactly(
|
||||||
"() -> {",
|
"() -> {",
|
||||||
" field.method(\"hello\");",
|
" field.method(\"hello\");",
|
||||||
|
@ -141,7 +141,7 @@ class MultiStatementTests {
|
||||||
MultiStatement statements = new MultiStatement();
|
MultiStatement statements = new MultiStatement();
|
||||||
statements.addAll(List.of(0, 1, 2),
|
statements.addAll(List.of(0, 1, 2),
|
||||||
index -> CodeBlock.of("field[$L] = $S", index, "hello"));
|
index -> CodeBlock.of("field[$L] = $S", index, "hello"));
|
||||||
CodeBlock codeBlock = statements.toLambdaBody("() ->");
|
CodeBlock codeBlock = statements.toLambda("() ->");
|
||||||
assertThat(codeBlock.toString().lines()).containsExactly(
|
assertThat(codeBlock.toString().lines()).containsExactly(
|
||||||
"() -> {",
|
"() -> {",
|
||||||
" field[0] = \"hello\";",
|
" field[0] = \"hello\";",
|
||||||
|
|
Loading…
Reference in New Issue