diff --git a/kobby-generator-kotlin/src/main/kotlin/io/github/ermadmi78/kobby/generator/kotlin/layout.kt b/kobby-generator-kotlin/src/main/kotlin/io/github/ermadmi78/kobby/generator/kotlin/layout.kt index 67c617df..dbda420b 100644 --- a/kobby-generator-kotlin/src/main/kotlin/io/github/ermadmi78/kobby/generator/kotlin/layout.kt +++ b/kobby-generator-kotlin/src/main/kotlin/io/github/ermadmi78/kobby/generator/kotlin/layout.kt @@ -52,7 +52,7 @@ data class KotlinLayout( internal val KobbyNode.dtoName: String get() = when (kind) { ENUM -> name.decorate(dto.enumDecoration) - INPUT -> name + INPUT -> name.decorate(dto.inputDecoration) else -> name.decorate(dto.decoration) } @@ -465,6 +465,7 @@ class KotlinDtoLayout( packageName: String, val decoration: Decoration, val enumDecoration: Decoration, + val inputDecoration: Decoration, val applyPrimaryKeys: Boolean, val jackson: KotlinDtoJacksonLayout, val builder: KotlinDtoBuilderLayout, diff --git a/kobby-generator-kotlin/src/test/kotlin/io/github/ermadmi78/kobby/generator/kotlin/GeneratorTest.kt b/kobby-generator-kotlin/src/test/kotlin/io/github/ermadmi78/kobby/generator/kotlin/GeneratorTest.kt index 35e5524d..f17db22f 100644 --- a/kobby-generator-kotlin/src/test/kotlin/io/github/ermadmi78/kobby/generator/kotlin/GeneratorTest.kt +++ b/kobby-generator-kotlin/src/test/kotlin/io/github/ermadmi78/kobby/generator/kotlin/GeneratorTest.kt @@ -38,6 +38,7 @@ class GeneratorTest : AnnotationSpec() { "kobby.dto", Decoration(null, "Dto"), Decoration(null, null), + Decoration(null, null), true, KotlinDtoJacksonLayout(true), KotlinDtoBuilderLayout( diff --git a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyKotlinExtention.kt b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyKotlinExtention.kt index 460c5cb3..4844ef6e 100644 --- a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyKotlinExtention.kt +++ b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyKotlinExtention.kt @@ -155,6 +155,8 @@ open class KobbyKotlinDtoExtension { var postfix: String? = null var enumPrefix: String? = null var enumPostfix: String? = null + var inputPrefix: String? = null + var inputPostfix: String? = null var applyPrimaryKeys: Boolean? = null internal val jacksonExtension = lazy { KobbyKotlinDtoJacksonExtension() } @@ -183,6 +185,8 @@ open class KobbyKotlinDtoExtension { "postfix=$postfix, " + "enumPrefix=$enumPrefix, " + "enumPostfix=$enumPostfix, " + + "inputPrefix=$inputPrefix, " + + "inputPostfix=$inputPostfix, " + "applyPrimaryKeys=$applyPrimaryKeys, " + "jacksonExtension=$jacksonExtension, " + "builderExtension=$builderExtension, " + diff --git a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyPlugin.kt b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyPlugin.kt index 0fa676e0..fd7ccfa2 100644 --- a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyPlugin.kt +++ b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/KobbyPlugin.kt @@ -115,6 +115,12 @@ class KobbyPlugin : Plugin { enumPostfix?.also { kotlinTask.dtoEnumPostfix.convention(it) } + inputPrefix?.also { + kotlinTask.dtoInputPrefix.convention(it) + } + inputPostfix?.also { + kotlinTask.dtoInputPostfix.convention(it) + } applyPrimaryKeys?.also { kotlinTask.dtoApplyPrimaryKeys.convention(it) } diff --git a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/task/KobbyKotlin.kt b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/task/KobbyKotlin.kt index 8de589f4..d91fe41c 100644 --- a/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/task/KobbyKotlin.kt +++ b/kobby-gradle-plugin/src/main/kotlin/io/github/ermadmi78/kobby/task/KobbyKotlin.kt @@ -191,6 +191,22 @@ open class KobbyKotlin : DefaultTask() { ) val dtoEnumPostfix: Property = project.objects.property(String::class.java) + @Input + @Optional + @Option( + option = "dtoInputPrefix", + description = "prefix for generated DTO input objects (default null)" + ) + val dtoInputPrefix: Property = project.objects.property(String::class.java) + + @Input + @Optional + @Option( + option = "dtoInputPostfix", + description = "postfix for generated DTO input objects (default null)" + ) + val dtoInputPostfix: Property = project.objects.property(String::class.java) + @Input @Optional @Option( @@ -791,6 +807,7 @@ open class KobbyKotlin : DefaultTask() { dtoPackage.toPackageName(), Decoration(dtoPrefix.orNull, dtoPostfix.orNull), Decoration(dtoEnumPrefix.orNull, dtoEnumPostfix.orNull), + Decoration(dtoInputPrefix.orNull, dtoInputPostfix.orNull), dtoApplyPrimaryKeys.get(), KotlinDtoJacksonLayout(dtoJacksonEnabled.get()), KotlinDtoBuilderLayout(