Add support for annotating parameters

Closes gh-1002
This commit is contained in:
Stephane Nicoll
2023-06-12 10:57:35 +02:00
parent eb618d5dd7
commit 6ca2dcc5cd
10 changed files with 299 additions and 65 deletions

View File

@@ -55,7 +55,7 @@ class GroovyProjectGenerationDefaultContributorsConfiguration {
return (typeDeclaration) -> typeDeclaration.addMethodDeclaration(GroovyMethodDeclaration.method("main")
.modifiers(Modifier.PUBLIC | Modifier.STATIC)
.returning("void")
.parameters(new Parameter("java.lang.String[]", "args"))
.parameters(Parameter.of("args", String[].class))
.body(CodeBlock.ofStatement("$T.run($L, args)", "org.springframework.boot.SpringApplication",
typeDeclaration.getName())));
}
@@ -91,7 +91,7 @@ class GroovyProjectGenerationDefaultContributorsConfiguration {
.modifiers(Modifier.PROTECTED)
.returning("org.springframework.boot.builder.SpringApplicationBuilder")
.parameters(
new Parameter("org.springframework.boot.builder.SpringApplicationBuilder", "application"))
Parameter.of("application", "org.springframework.boot.builder.SpringApplicationBuilder"))
.body(CodeBlock.ofStatement("application.sources($L)", description.getApplicationName()));
configure.annotations().add(ClassName.of(Override.class));
typeDeclaration.addMethodDeclaration(configure);

View File

@@ -49,7 +49,7 @@ class JavaProjectGenerationDefaultContributorsConfiguration {
typeDeclaration.addMethodDeclaration(JavaMethodDeclaration.method("main")
.modifiers(Modifier.PUBLIC | Modifier.STATIC)
.returning("void")
.parameters(new Parameter("java.lang.String[]", "args"))
.parameters(Parameter.of("args", String[].class))
.body(CodeBlock.ofStatement("$T.run($L.class, args)", "org.springframework.boot.SpringApplication",
typeDeclaration.getName())));
};
@@ -82,7 +82,7 @@ class JavaProjectGenerationDefaultContributorsConfiguration {
.modifiers(Modifier.PROTECTED)
.returning("org.springframework.boot.builder.SpringApplicationBuilder")
.parameters(
new Parameter("org.springframework.boot.builder.SpringApplicationBuilder", "application"))
Parameter.of("application", "org.springframework.boot.builder.SpringApplicationBuilder"))
.body(CodeBlock.ofStatement("return application.sources($L.class)",
description.getApplicationName()));
configure.annotations().add(ClassName.of(Override.class));

View File

@@ -95,7 +95,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
MainCompilationUnitCustomizer<KotlinTypeDeclaration, KotlinCompilationUnit> mainFunctionContributor(
ProjectDescription description) {
return (compilationUnit) -> compilationUnit.addTopLevelFunction(KotlinFunctionDeclaration.function("main")
.parameters(new Parameter("Array<String>", "args"))
.parameters(Parameter.of("args", "Array<String>"))
.body(CodeBlock.ofStatement("$T<$L>(*args)", "org.springframework.boot.runApplication",
description.getApplicationName())));
}
@@ -117,7 +117,7 @@ class KotlinProjectGenerationDefaultContributorsConfiguration {
.modifiers(KotlinModifier.OVERRIDE)
.returning("org.springframework.boot.builder.SpringApplicationBuilder")
.parameters(
new Parameter("org.springframework.boot.builder.SpringApplicationBuilder", "application"))
Parameter.of("application", "org.springframework.boot.builder.SpringApplicationBuilder"))
.body(CodeBlock.ofStatement("return application.sources($L::class.java)",
description.getApplicationName()));
typeDeclaration.addFunctionDeclaration(configure);