Skip to content

Commit

Permalink
[Kotlin] Fix (de)serialization of enum classes (kotlinx serialization) (
Browse files Browse the repository at this point in the history
#9143)

* fix kotlin enum serialization

* fix kotlin serialization compiler warning

* change samples
  • Loading branch information
kvn-stgl authored Apr 16, 2021
1 parent 786458e commit 6dce817
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -114,3 +114,11 @@ dependencies {
{{/jvm-retrofit2}}
testCompile "io.kotlintest:kotlintest-runner-junit5:3.4.2"
}
{{#kotlinx_serialization}}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi"
}
}
{{/kotlinx_serialization}}
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ import java.io.Serializable
* {{{description}}}
* Values: {{#allowableValues}}{{#enumVars}}{{&name}}{{^-last}},{{/-last}}{{/enumVars}}{{/allowableValues}}
*/
{{#kotlinx_serialization}}
@KSerializable
{{/kotlinx_serialization}}
{{#nonPublicApi}}internal {{/nonPublicApi}}enum class {{{nameInCamelCase}}}(val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}kotlin.String{{/isContainer}}) {
{{#allowableValues}}
{{#enumVars}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,9 @@ dependencies {
compile "com.squareup.retrofit2:converter-scalars:$retrofitVersion"
testCompile "io.kotlintest:kotlintest-runner-junit5:3.4.2"
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ data class Order (
* Order Status
* Values: PLACED,APPROVED,DELIVERED
*/
@KSerializable
enum class Status(val value: kotlin.String) {
@SerialName(value = "placed") PLACED("placed"),
@SerialName(value = "approved") APPROVED("approved"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ data class Pet (
* pet status in the store
* Values: AVAILABLE,PENDING,SOLD
*/
@KSerializable
enum class Status(val value: kotlin.String) {
@SerialName(value = "available") AVAILABLE("available"),
@SerialName(value = "pending") PENDING("pending"),
Expand Down

0 comments on commit 6dce817

Please sign in to comment.