Skip to content

Commit

Permalink
DTO input object decoration support
Browse files Browse the repository at this point in the history
  • Loading branch information
ermadmi78 committed Jul 6, 2021
1 parent 4569302 commit 5a62a71
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class GeneratorTest : AnnotationSpec() {
"kobby.dto",
Decoration(null, "Dto"),
Decoration(null, null),
Decoration(null, null),
true,
KotlinDtoJacksonLayout(true),
KotlinDtoBuilderLayout(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() }
Expand Down Expand Up @@ -183,6 +185,8 @@ open class KobbyKotlinDtoExtension {
"postfix=$postfix, " +
"enumPrefix=$enumPrefix, " +
"enumPostfix=$enumPostfix, " +
"inputPrefix=$inputPrefix, " +
"inputPostfix=$inputPostfix, " +
"applyPrimaryKeys=$applyPrimaryKeys, " +
"jacksonExtension=$jacksonExtension, " +
"builderExtension=$builderExtension, " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,12 @@ class KobbyPlugin : Plugin<Project> {
enumPostfix?.also {
kotlinTask.dtoEnumPostfix.convention(it)
}
inputPrefix?.also {
kotlinTask.dtoInputPrefix.convention(it)
}
inputPostfix?.also {
kotlinTask.dtoInputPostfix.convention(it)
}
applyPrimaryKeys?.also {
kotlinTask.dtoApplyPrimaryKeys.convention(it)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,22 @@ open class KobbyKotlin : DefaultTask() {
)
val dtoEnumPostfix: Property<String> = project.objects.property(String::class.java)

@Input
@Optional
@Option(
option = "dtoInputPrefix",
description = "prefix for generated DTO input objects (default null)"
)
val dtoInputPrefix: Property<String> = project.objects.property(String::class.java)

@Input
@Optional
@Option(
option = "dtoInputPostfix",
description = "postfix for generated DTO input objects (default null)"
)
val dtoInputPostfix: Property<String> = project.objects.property(String::class.java)

@Input
@Optional
@Option(
Expand Down Expand Up @@ -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(
Expand Down

0 comments on commit 5a62a71

Please sign in to comment.