Refine MultiStatement#toClodeBlock

Closes gh-28363
This commit is contained in:
Stephane Nicoll
2022-04-21 15:22:41 +02:00
parent ccb66247ce
commit 10d254983f
5 changed files with 65 additions and 25 deletions

View File

@@ -345,7 +345,7 @@ public class BeanRegistrationBeanFactoryContribution implements BeanFactoryContr
}
code.add("\n").indent().indent();
code.add(".instanceSupplier(");
code.add(instanceStatements.toCodeBlock());
code.add(instanceStatements.toLambdaBody());
code.add(")").unindent().unindent();
handleBeanDefinitionMetadata(code);
}
@@ -421,7 +421,7 @@ public class BeanRegistrationBeanFactoryContribution implements BeanFactoryContr
if (statements.isEmpty()) {
return;
}
code.add(statements.toCodeBlock(".customize((" + bdVariable + ") ->"));
code.add(statements.toLambdaBody(".customize((" + bdVariable + ") ->"));
code.add(")");
}

View File

@@ -43,7 +43,7 @@ class AutowiredAnnotationBeanInstantiationContributionTests {
@Test
void contributeWithPackageProtectedFieldInjection() {
CodeContribution contribution = contribute(PackageProtectedFieldInjectionSample.class);
assertThat(CodeSnippet.process(contribution.statements().toCodeBlock())).isEqualTo("""
assertThat(CodeSnippet.process(contribution.statements().toLambdaBody())).isEqualTo("""
instanceContext.field("environment")
.invoke(beanFactory, (attributes) -> bean.environment = attributes.get(0))""");
assertThat(contribution.runtimeHints().reflection().typeHints()).singleElement().satisfies(typeHint -> {
@@ -61,7 +61,7 @@ class AutowiredAnnotationBeanInstantiationContributionTests {
@Test
void contributeWithPrivateFieldInjection() {
CodeContribution contribution = contribute(PrivateFieldInjectionSample.class);
assertThat(CodeSnippet.process(contribution.statements().toCodeBlock())).isEqualTo("""
assertThat(CodeSnippet.process(contribution.statements().toLambdaBody())).isEqualTo("""
instanceContext.field("environment")
.invoke(beanFactory, (attributes) -> {
Field environmentField = ReflectionUtils.findField(AutowiredAnnotationBeanInstantiationContributionTests.PrivateFieldInjectionSample.class, "environment");
@@ -82,7 +82,7 @@ class AutowiredAnnotationBeanInstantiationContributionTests {
@Test
void contributeWithPublicMethodInjection() {
CodeContribution contribution = contribute(PublicMethodInjectionSample.class);
assertThat(CodeSnippet.process(contribution.statements().toCodeBlock())).isEqualTo("""
assertThat(CodeSnippet.process(contribution.statements().toLambdaBody())).isEqualTo("""
instanceContext.method("setTestBean", TestBean.class)
.invoke(beanFactory, (attributes) -> bean.setTestBean(attributes.get(0)))""");
assertThat(contribution.runtimeHints().reflection().typeHints()).singleElement().satisfies(typeHint -> {
@@ -98,7 +98,7 @@ class AutowiredAnnotationBeanInstantiationContributionTests {
@Test
void contributeWithInjectionPoints() {
CodeContribution contribution = contribute(ResourceInjectionBean.class);
assertThat(CodeSnippet.process(contribution.statements().toCodeBlock())).isEqualTo("""
assertThat(CodeSnippet.process(contribution.statements().toLambdaBody())).isEqualTo("""
instanceContext.field("testBean")
.resolve(beanFactory, false).ifResolved((attributes) -> {
Field testBeanField = ReflectionUtils.findField(AutowiredAnnotationBeanPostProcessorTests.ResourceInjectionBean.class, "testBean");

View File

@@ -209,7 +209,7 @@ class DefaultBeanInstantiationGeneratorTests {
}
private String code(CodeContribution contribution) {
return CodeSnippet.process(contribution.statements().toCodeBlock());
return CodeSnippet.process(contribution.statements().toLambdaBody());
}
@Nullable