mirror of
https://github.com/apple/pkl.git
synced 2026-04-25 01:38:34 +02:00
Rename JavaCodegenOptions to JavaCodeGeneratorOptions (#801)
The new name is consistent with existing names JavaCodeGenerator and CliJavaCodeGeneratorOptions. Backward compatibility is ensured by turning JavaCodegenOptions into a (deprecated) type alias. Also: deprecate `CliJavaCodeGeneratorOptions.toJavaCodegenOptions()`
This commit is contained in:
@@ -33,7 +33,7 @@ class CliJavaCodeGenerator(private val options: CliJavaCodeGeneratorOptions) :
|
|||||||
builder.build().use { evaluator ->
|
builder.build().use { evaluator ->
|
||||||
for (moduleUri in options.base.normalizedSourceModules) {
|
for (moduleUri in options.base.normalizedSourceModules) {
|
||||||
val schema = evaluator.evaluateSchema(ModuleSource.uri(moduleUri))
|
val schema = evaluator.evaluateSchema(ModuleSource.uri(moduleUri))
|
||||||
val codeGenerator = JavaCodeGenerator(schema, options.toJavaCodegenOptions())
|
val codeGenerator = JavaCodeGenerator(schema, options.toJavaCodeGeneratorOptions())
|
||||||
try {
|
try {
|
||||||
for ((fileName, fileContents) in codeGenerator.output) {
|
for ((fileName, fileContents) in codeGenerator.output) {
|
||||||
val outputFile = options.outputDir.resolve(fileName)
|
val outputFile = options.outputDir.resolve(fileName)
|
||||||
|
|||||||
@@ -65,8 +65,12 @@ data class CliJavaCodeGeneratorOptions(
|
|||||||
*/
|
*/
|
||||||
val renames: Map<String, String> = emptyMap()
|
val renames: Map<String, String> = emptyMap()
|
||||||
) {
|
) {
|
||||||
fun toJavaCodegenOptions() =
|
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||||
JavaCodegenOptions(
|
@Deprecated("deprecated without replacement")
|
||||||
|
fun toJavaCodegenOptions() = toJavaCodeGeneratorOptions()
|
||||||
|
|
||||||
|
internal fun toJavaCodeGeneratorOptions() =
|
||||||
|
JavaCodeGeneratorOptions(
|
||||||
indent,
|
indent,
|
||||||
generateGetters,
|
generateGetters,
|
||||||
generateJavadoc,
|
generateJavadoc,
|
||||||
|
|||||||
@@ -41,7 +41,10 @@ import org.pkl.core.util.IoUtils
|
|||||||
|
|
||||||
class JavaCodeGeneratorException(message: String) : RuntimeException(message)
|
class JavaCodeGeneratorException(message: String) : RuntimeException(message)
|
||||||
|
|
||||||
data class JavaCodegenOptions(
|
@kotlin.Deprecated("renamed to JavaCodeGeneratorOptions", ReplaceWith("JavaCodeGeneratorOptions"))
|
||||||
|
typealias JavaCodegenOptions = JavaCodeGeneratorOptions
|
||||||
|
|
||||||
|
data class JavaCodeGeneratorOptions(
|
||||||
/** The characters to use for indenting generated Java code. */
|
/** The characters to use for indenting generated Java code. */
|
||||||
val indent: String = " ",
|
val indent: String = " ",
|
||||||
|
|
||||||
@@ -84,7 +87,7 @@ data class JavaCodegenOptions(
|
|||||||
/** Entrypoint for the Java code generator API. */
|
/** Entrypoint for the Java code generator API. */
|
||||||
class JavaCodeGenerator(
|
class JavaCodeGenerator(
|
||||||
private val schema: ModuleSchema,
|
private val schema: ModuleSchema,
|
||||||
private val codegenOptions: JavaCodegenOptions
|
private val codegenOptions: JavaCodeGeneratorOptions
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ class JavaCodeGeneratorTest {
|
|||||||
val generator =
|
val generator =
|
||||||
JavaCodeGenerator(
|
JavaCodeGenerator(
|
||||||
module,
|
module,
|
||||||
JavaCodegenOptions(
|
JavaCodeGeneratorOptions(
|
||||||
generateGetters = generateGetters,
|
generateGetters = generateGetters,
|
||||||
generateJavadoc = generateJavadoc,
|
generateJavadoc = generateJavadoc,
|
||||||
generateSpringBootConfig = generateSpringBootConfig,
|
generateSpringBootConfig = generateSpringBootConfig,
|
||||||
@@ -1987,7 +1987,7 @@ class JavaCodeGeneratorTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `override names in a standalone module`() {
|
fun `override names in a standalone module`() {
|
||||||
val files =
|
val files =
|
||||||
JavaCodegenOptions(
|
JavaCodeGeneratorOptions(
|
||||||
renames = mapOf("a.b.c." to "x.y.z.", "d.e.f.AnotherModule" to "u.v.w.RenamedModule")
|
renames = mapOf("a.b.c." to "x.y.z.", "d.e.f.AnotherModule" to "u.v.w.RenamedModule")
|
||||||
)
|
)
|
||||||
.generateFiles(
|
.generateFiles(
|
||||||
@@ -2023,7 +2023,7 @@ class JavaCodeGeneratorTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `override names based on the longest prefix`() {
|
fun `override names based on the longest prefix`() {
|
||||||
val files =
|
val files =
|
||||||
JavaCodegenOptions(
|
JavaCodeGeneratorOptions(
|
||||||
renames = mapOf("com.foo.bar." to "x.", "com.foo." to "y.", "com." to "z.", "" to "w.")
|
renames = mapOf("com.foo.bar." to "x.", "com.foo." to "y.", "com." to "z.", "" to "w.")
|
||||||
)
|
)
|
||||||
.generateFiles(
|
.generateFiles(
|
||||||
@@ -2068,7 +2068,7 @@ class JavaCodeGeneratorTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `override names in multiple modules using each other`() {
|
fun `override names in multiple modules using each other`() {
|
||||||
val files =
|
val files =
|
||||||
JavaCodegenOptions(
|
JavaCodeGeneratorOptions(
|
||||||
renames =
|
renames =
|
||||||
mapOf(
|
mapOf(
|
||||||
"org.foo." to "com.foo.x.",
|
"org.foo." to "com.foo.x.",
|
||||||
@@ -2150,7 +2150,7 @@ class JavaCodeGeneratorTest {
|
|||||||
@Test
|
@Test
|
||||||
fun `do not capitalize names of renamed classes`() {
|
fun `do not capitalize names of renamed classes`() {
|
||||||
val files =
|
val files =
|
||||||
JavaCodegenOptions(
|
JavaCodeGeneratorOptions(
|
||||||
renames = mapOf("a.b.c.MyModule" to "x.y.z.renamed_module", "d.e.f." to "u.v.w.")
|
renames = mapOf("a.b.c.MyModule" to "x.y.z.renamed_module", "d.e.f." to "u.v.w.")
|
||||||
)
|
)
|
||||||
.generateFiles(
|
.generateFiles(
|
||||||
@@ -2238,7 +2238,9 @@ class JavaCodeGeneratorTest {
|
|||||||
assertThat(files).isEmpty()
|
assertThat(files).isEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JavaCodegenOptions.generateFiles(vararg pklModules: PklModule): Map<String, String> {
|
private fun JavaCodeGeneratorOptions.generateFiles(
|
||||||
|
vararg pklModules: PklModule
|
||||||
|
): Map<String, String> {
|
||||||
val pklFiles = pklModules.map { it.writeToDisk(tempDir.resolve("pkl/${it.name}.pkl")) }
|
val pklFiles = pklModules.map { it.writeToDisk(tempDir.resolve("pkl/${it.name}.pkl")) }
|
||||||
val evaluator = Evaluator.preconfigured()
|
val evaluator = Evaluator.preconfigured()
|
||||||
return pklFiles.fold(mapOf()) { acc, pklFile ->
|
return pklFiles.fold(mapOf()) { acc, pklFile ->
|
||||||
@@ -2248,13 +2250,13 @@ class JavaCodeGeneratorTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JavaCodegenOptions.generateFiles(
|
private fun JavaCodeGeneratorOptions.generateFiles(
|
||||||
vararg pklModules: kotlin.Pair<String, String>
|
vararg pklModules: kotlin.Pair<String, String>
|
||||||
): Map<String, String> =
|
): Map<String, String> =
|
||||||
generateFiles(*pklModules.map { (name, text) -> PklModule(name, text) }.toTypedArray())
|
generateFiles(*pklModules.map { (name, text) -> PklModule(name, text) }.toTypedArray())
|
||||||
|
|
||||||
private fun generateFiles(vararg pklModules: PklModule): Map<String, JavaSourceCode> =
|
private fun generateFiles(vararg pklModules: PklModule): Map<String, JavaSourceCode> =
|
||||||
JavaCodegenOptions().generateFiles(*pklModules).mapValues { JavaSourceCode(it.value) }
|
JavaCodeGeneratorOptions().generateFiles(*pklModules).mapValues { JavaSourceCode(it.value) }
|
||||||
|
|
||||||
private fun instantiateOtherAndPropertyTypes(): kotlin.Pair<Any, Any> {
|
private fun instantiateOtherAndPropertyTypes(): kotlin.Pair<Any, Any> {
|
||||||
val otherCtor = propertyTypesClasses.getValue("my.Mod\$Other").constructors.first()
|
val otherCtor = propertyTypesClasses.getValue("my.Mod\$Other").constructors.first()
|
||||||
|
|||||||
Reference in New Issue
Block a user