mirror of
https://github.com/apple/pkl.git
synced 2026-01-16 16:36:59 +01:00
Add Kotlin support for "addGeneratedAnnotation" flag (#1115)
This adds logic so that the Kotlin code generator also supports the "addGeneratedAnnotation" flag. Also: * Add Antora documentation * Adjust names (generated-annotation -> add-generated-annotation) * Adjust doc comments
This commit is contained in:
@@ -29,8 +29,8 @@ data class CliJavaCodeGeneratorOptions(
|
||||
/** The characters to use for indenting generated source code. */
|
||||
val indent: String = " ",
|
||||
|
||||
/** Whether to add a <code>@Generated</code> annotation to the types to be generated. */
|
||||
val generatedAnnotation: Boolean = false,
|
||||
/** Whether to add a `@Generated` annotation to the types to be generated. */
|
||||
val addGeneratedAnnotation: Boolean = false,
|
||||
|
||||
/**
|
||||
* Whether to generate public getter methods and private/protected fields instead of public
|
||||
@@ -85,7 +85,7 @@ data class CliJavaCodeGeneratorOptions(
|
||||
internal fun toJavaCodeGeneratorOptions() =
|
||||
JavaCodeGeneratorOptions(
|
||||
indent,
|
||||
generatedAnnotation,
|
||||
addGeneratedAnnotation,
|
||||
generateGetters,
|
||||
generateJavadoc,
|
||||
generateSpringBootConfig,
|
||||
|
||||
@@ -47,8 +47,8 @@ data class JavaCodeGeneratorOptions(
|
||||
/** The characters to use for indenting generated Java code. */
|
||||
val indent: String = " ",
|
||||
|
||||
/** Whether to add a <code>@Generated</code> annotation to the types to be generated. */
|
||||
val generatedAnnotation: Boolean = false,
|
||||
/** Adds the `org.pkl.config.java.Generated` annotation to the classes to be generated. */
|
||||
val addGeneratedAnnotation: Boolean = false,
|
||||
|
||||
/**
|
||||
* Whether to generate public getter methods and protected final fields instead of public final
|
||||
@@ -563,7 +563,7 @@ class JavaCodeGenerator(
|
||||
fun generateClass(): TypeSpec.Builder {
|
||||
val builder =
|
||||
TypeSpec.classBuilder(javaPoetClassName.simpleName()).addModifiers(Modifier.PUBLIC)
|
||||
if (codegenOptions.generatedAnnotation) {
|
||||
if (codegenOptions.addGeneratedAnnotation) {
|
||||
val name = ClassName.get("org.pkl.config.java", "Generated")
|
||||
val generated = AnnotationSpec.builder(name).build()
|
||||
builder.addAnnotation(generated)
|
||||
|
||||
@@ -55,9 +55,9 @@ class PklJavaCodegenCommand : ModulesCommand(name = "pkl-codegen-java", helpLink
|
||||
)
|
||||
.default(defaults.indent)
|
||||
|
||||
private val generatedAnnotation: Boolean by
|
||||
private val addGeneratedAnnotation: Boolean by
|
||||
option(
|
||||
names = arrayOf("--generated-annotation"),
|
||||
names = arrayOf("--add-generated-annotation"),
|
||||
help = "Whether to add a @Generated annotation to the types to be generated.",
|
||||
)
|
||||
.flag()
|
||||
@@ -139,7 +139,7 @@ class PklJavaCodegenCommand : ModulesCommand(name = "pkl-codegen-java", helpLink
|
||||
base = baseOptions.baseOptions(modules, projectOptions),
|
||||
outputDir = outputDir,
|
||||
indent = indent,
|
||||
generatedAnnotation = generatedAnnotation,
|
||||
addGeneratedAnnotation = addGeneratedAnnotation,
|
||||
generateGetters = generateGetters,
|
||||
generateJavadoc = generateJavadoc,
|
||||
generateSpringBootConfig = generateSpringBoot,
|
||||
|
||||
@@ -871,7 +871,7 @@ class JavaCodeGeneratorTest {
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
JavaCodeGeneratorOptions(generatedAnnotation = true),
|
||||
JavaCodeGeneratorOptions(addGeneratedAnnotation = true),
|
||||
)
|
||||
|
||||
assertThat(javaCode).compilesSuccessfully().isEqualToResourceFile("GeneratedAnnotation.jva")
|
||||
|
||||
Reference in New Issue
Block a user