Skip to content

[Kotlin][Client] Added Kotlinx Serialization for JVM/Retrofit2/OkHttp3&4 #6916

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 76 commits into from
Mar 19, 2021
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
800823c
Added supporting kotlin.serialization for jvm
kuFEAR Jun 18, 2020
3447696
Added Serializable annotations for java types(date,time,url,uri etc.)
kuFEAR Jun 19, 2020
e8451c2
Added SafeEnumSerializer
kuFEAR Jul 12, 2020
fcbd192
Added StringBuilderAdapter for kotlin.serialization
kuFEAR Jul 12, 2020
4d93915
Added StringBuilderAdapter for kotlin.serialization
kuFEAR Jul 12, 2020
00d70d8
Switch sample to retrofit2-kotlin-serialization
kuFEAR Jul 12, 2020
13207aa
Add sample for retrofit2-kotlin.serialization
kuFEAR Jul 12, 2020
5f2df07
update sample
kuFEAR Jul 12, 2020
8df8e56
update sample
kuFEAR Jul 12, 2020
dfcdee3
update sample #3
kuFEAR Jul 13, 2020
4d1d37a
Fix enum quotes for kotlin.serialization
kuFEAR Jul 13, 2020
bf4037c
update samples
kuFEAR Aug 9, 2020
9200ea6
update pom.xml
kuFEAR Aug 9, 2020
991c651
add pom.xml to child module
kuFEAR Aug 9, 2020
00bef7d
fix kotlin-multiplatform freeCompilerArgs
kuFEAR Aug 10, 2020
02b13b3
refactoring, add useSafeEnum option, remove safeEnum for kotlin.multi…
kuFEAR Aug 11, 2020
37bff33
update kotlin samples
kuFEAR Aug 11, 2020
c74933d
fix import kotlinx.serialization.Required
kuFEAR Aug 11, 2020
0421e32
Update kotlinx.serialization 1.0.0-rc-2, kotlin 1.4.10, retrofit-kotl…
kuFEAR Oct 5, 2020
b35ac1d
Update gradle wrapper 6.7-rc-3
kuFEAR Oct 5, 2020
5e697ea
fix SafeEnum import
kuFEAR Oct 5, 2020
d9592ac
fix Json initialization,
kuFEAR Oct 6, 2020
09c39ff
update samples
kuFEAR Oct 6, 2020
c770868
update kotlinx.serialization to 1.0.0
kuFEAR Oct 15, 2020
2e6fdeb
Update gradle to 6.7 in kotlin samples
kuFEAR Oct 15, 2020
4d97807
fixed adding @Contextual for collections with non-primitive type elem…
kuFEAR Oct 18, 2020
8d312e8
remove unused SafeEnum imports, refactored
kuFEAR Oct 18, 2020
1293eac
update kotlin readme
kuFEAR Oct 18, 2020
2040800
update kotlin project template Readme.md
kuFEAR Oct 18, 2020
008b05c
update samples for kotlin
kuFEAR Oct 18, 2020
3364fc3
simplify template for class properties
kuFEAR Oct 18, 2020
91ca8bc
remove @Contextual from kotlin-multiplatform
kuFEAR Oct 18, 2020
0aef702
update kotlin multiplatform dependencies
kuFEAR Oct 18, 2020
8adf48a
refactoring templates
kuFEAR Oct 18, 2020
e6294ab
revert all changes for multiplatform
kuFEAR Oct 18, 2020
61399ea
fix tests
kuFEAR Oct 18, 2020
6d53203
revert multiplatform #2
kuFEAR Oct 18, 2020
3ed4bb8
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Oct 19, 2020
7843971
update samples after merge, fix missed isListContainer->isArray
kuFEAR Oct 19, 2020
48e75ec
fixed redundant space before @Contextual
kuFEAR Oct 19, 2020
bf32d7a
Fixed enum template, Class were missed in generated samples
kuFEAR Oct 19, 2020
3327e7d
fix enum template toString value->serialName
kuFEAR Oct 19, 2020
05a37c9
fixed isEnum case for collections
kuFEAR Oct 20, 2020
0989ad2
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Oct 20, 2020
74c2a5b
update samples
kuFEAR Oct 20, 2020
7133569
removed useSafeEnum option, kotlinx serialization has out of box appr…
kuFEAR Nov 7, 2020
64b447b
generate samples
kuFEAR Nov 7, 2020
b5aa3bc
update kotlinx.serialization 1.0.1
kuFEAR Nov 7, 2020
f3aecb3
update samples
kuFEAR Nov 7, 2020
87c9458
Added pom.mustache template for kotlin-client samples with fixed exec…
kuFEAR Nov 7, 2020
79b7d80
update samples with new pom.xml
kuFEAR Nov 7, 2020
fc53cad
reverted enum value property name
kuFEAR Nov 7, 2020
06c566f
fixed kotlin-multiplatform pom.xml
kuFEAR Nov 7, 2020
be4baf7
update kotlin-threetenbp sample
kuFEAR Nov 7, 2020
8493fae
update kotlin-string sample
kuFEAR Nov 7, 2020
6877291
update kotlin-string sample
kuFEAR Nov 7, 2020
9c31b93
fix adding kotlinx.serialization classpath to build.gradle
kuFEAR Nov 9, 2020
2fad058
generate samples
kuFEAR Nov 9, 2020
195c81f
add supporting kotlinx_serialization kotlinx.serialization.Serializab…
kuFEAR Nov 17, 2020
28c5cb5
update retrofit2-kotlinx-serialization-converter:0.8.0
kuFEAR Nov 17, 2020
7c6cf71
update kotlinx_serialization sample with retrofit2-kotlinx-serializat…
kuFEAR Nov 17, 2020
5b3fa4a
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Nov 17, 2020
8dd5ce7
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Nov 18, 2020
bfcb127
apply suggest from @blendthink
kuFEAR Nov 21, 2020
571245e
added proguard-rules.pro file for kotlinx.serialization on Android pr…
kuFEAR Feb 18, 2021
95db387
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Feb 27, 2021
9c50afd
fix pom.mustache
kuFEAR Feb 27, 2021
b91c8ce
update gradle wrapper to 6.8.3
kuFEAR Feb 27, 2021
ad2930b
update kotlin samples
kuFEAR Feb 27, 2021
8b6b3f9
fix kotlin readme template, update kotlin samples
kuFEAR Feb 27, 2021
7657b3c
update kotlin samples
kuFEAR Feb 27, 2021
1ad5a7a
update kotlin sample
kuFEAR Feb 28, 2021
7c3f170
revert deletion kotlin client tests
kuFEAR Mar 17, 2021
a6f1d8d
add support kotlinx serialization for okhttp3/4
kuFEAR Mar 17, 2021
7e43580
Merge remote-tracking branch 'base_origin/master' into kotlin_seriali…
kuFEAR Mar 18, 2021
627f4cd
update kotlin client samples
kuFEAR Mar 18, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions bin/configs/kotlin-jvm-retrofit2-kotlinx_serialization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
generatorName: kotlin
outputDir: samples/client/petstore/kotlin-retrofit2-kotlinx_serialization
library: jvm-retrofit2
inputSpec: modules/openapi-generator/src/test/resources/2_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/kotlin-client
additionalProperties:
serializationLibrary: kotlinx_serialization
artifactId: kotlin-petstore-retrofit2-kotlinx_serialization
enumPropertyNaming: UPPERCASE
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
generatorName: kotlin
outputDir: samples/openapi3/client/petstore/kotlin-jvm-retrofit2-rx2-kotlinx_serialization
library: jvm-retrofit2
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
templateDir: modules/openapi-generator/src/main/resources/kotlin-client
additionalProperties:
serializationLibrary: kotlinx_serialization
useRxJava2: "true"
artifactId: kotlin-petstore-rx2-kotlinx_serialization-client
serializableModel: "true"
dateLibrary: java8
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co

public static final String SERIALIZATION_LIBRARY_DESC = "What serialization library to use: 'moshi' (default), or 'gson' or 'jackson'";

public enum SERIALIZATION_LIBRARY_TYPE {moshi, gson, jackson}
public enum SERIALIZATION_LIBRARY_TYPE {moshi, gson, jackson, kotlinx_serialization}

public static final String MODEL_MUTABLE = "modelMutable";
public static final String MODEL_MUTABLE_DESC = "Create mutable models";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ public void setUseRxJava2(boolean useRxJava2) {
}
this.useRxJava2 = useRxJava2;
}

public void setUseRxJava3(boolean useRxJava3) {
if (useRxJava3) {
this.useRxJava = false;
Expand Down Expand Up @@ -379,7 +379,7 @@ public void processOpts() {
if(ProcessUtils.hasHttpBearerMethods(openAPI)) {
supportingFiles.add(new SupportingFile("auth/HttpBearerAuth.kt.mustache", authFolder, "HttpBearerAuth.kt"));
}

if(ProcessUtils.hasHttpBasicMethods(openAPI)) {
supportingFiles.add(new SupportingFile("auth/HttpBasicAuth.kt.mustache", authFolder, "HttpBasicAuth.kt"));
}
Expand Down Expand Up @@ -450,6 +450,7 @@ private void processJVMRetrofit2Library(String infrastructureFolder) {
supportingFiles.add(new SupportingFile("infrastructure/ApiClient.kt.mustache", infrastructureFolder, "ApiClient.kt"));
supportingFiles.add(new SupportingFile("infrastructure/ResponseExt.kt.mustache", infrastructureFolder, "ResponseExt.kt"));
supportingFiles.add(new SupportingFile("infrastructure/CollectionFormats.kt.mustache", infrastructureFolder, "CollectionFormats.kt"));
supportingFiles.add(new SupportingFile("pom.mustache", "pom.xml"));
addSupportingSerializerAdapters(infrastructureFolder);
}

Expand All @@ -476,6 +477,21 @@ private void addSupportingSerializerAdapters(final String infrastructureFolder)
//supportingFiles.add(new SupportingFile("jvm-common/infrastructure/DateAdapter.kt.mustache", infrastructureFolder, "DateAdapter.kt"));
break;

case kotlinx_serialization:
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/AtomicBooleanAdapter.kt.mustache", infrastructureFolder, "AtomicBooleanAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/AtomicIntegerAdapter.kt.mustache", infrastructureFolder, "AtomicIntegerAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/AtomicLongAdapter.kt.mustache", infrastructureFolder, "AtomicLongAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/URIAdapter.kt.mustache", infrastructureFolder, "URIAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/URLAdapter.kt.mustache", infrastructureFolder, "URLAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/BigIntegerAdapter.kt.mustache", infrastructureFolder, "BigIntegerAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/BigDecimalAdapter.kt.mustache", infrastructureFolder, "BigDecimalAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/DateAdapter.kt.mustache", infrastructureFolder, "DateAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/LocalDateAdapter.kt.mustache", infrastructureFolder, "LocalDateAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/LocalDateTimeAdapter.kt.mustache", infrastructureFolder, "LocalDateTimeAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/OffsetDateTimeAdapter.kt.mustache", infrastructureFolder, "OffsetDateTimeAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/UUIDAdapter.kt.mustache", infrastructureFolder, "UUIDAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/StringBuilderAdapter.kt.mustache", infrastructureFolder, "StringBuilderAdapter.kt"));
break;
}
}

Expand All @@ -500,6 +516,7 @@ private void processJVMOkHttpLibrary(final String infrastructureFolder) {
supportingFiles.add(new SupportingFile("infrastructure/Errors.kt.mustache", infrastructureFolder, "Errors.kt"));
supportingFiles.add(new SupportingFile("infrastructure/ResponseExtensions.kt.mustache", infrastructureFolder, "ResponseExtensions.kt"));
supportingFiles.add(new SupportingFile("infrastructure/ApiInfrastructureResponse.kt.mustache", infrastructureFolder, "ApiInfrastructureResponse.kt"));
supportingFiles.add(new SupportingFile("pom.mustache", "pom.xml"));
}

private void processMultiplatformLibrary(final String infrastructureFolder) {
Expand Down Expand Up @@ -551,12 +568,7 @@ private void processMultiplatformLibrary(final String infrastructureFolder) {
supportingFiles.add(new SupportingFile("iosTest/Coroutine.kt.mustache", "src/iosTest/kotlin/util", "Coroutine.kt"));
supportingFiles.add(new SupportingFile("jsTest/Coroutine.kt.mustache", "src/jsTest/kotlin/util", "Coroutine.kt"));
supportingFiles.add(new SupportingFile("jvmTest/Coroutine.kt.mustache", "src/jvmTest/kotlin/util", "Coroutine.kt"));

// gradle wrapper supporting files
supportingFiles.add(new SupportingFile("gradlew.mustache", "", "gradlew"));
supportingFiles.add(new SupportingFile("gradlew.bat.mustache", "", "gradlew.bat"));
supportingFiles.add(new SupportingFile("gradle-wrapper.properties.mustache", "gradle.wrapper".replace(".", File.separator), "gradle-wrapper.properties"));
supportingFiles.add(new SupportingFile("gradle-wrapper.jar", "gradle.wrapper".replace(".", File.separator), "gradle-wrapper.jar"));
supportingFiles.add(new SupportingFile("pom.mustache", "pom.xml"));
}


Expand All @@ -571,6 +583,12 @@ private void commonSupportingFiles() {
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
supportingFiles.add(new SupportingFile("build.gradle.mustache", "", "build.gradle"));
supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle"));

// gradle wrapper supporting files
supportingFiles.add(new SupportingFile("gradlew.mustache", "", "gradlew"));
supportingFiles.add(new SupportingFile("gradlew.bat.mustache", "", "gradlew.bat"));
supportingFiles.add(new SupportingFile("gradle-wrapper.properties.mustache", "gradle.wrapper".replace(".", File.separator), "gradle-wrapper.properties"));
supportingFiles.add(new SupportingFile("gradle-wrapper.jar", "gradle.wrapper".replace(".", File.separator), "gradle-wrapper.jar"));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
## Requires

{{#jvm}}
* Kotlin 1.3.61
* Gradle 4.9
* Kotlin 1.4.10
* Gradle 6.7
{{/jvm}}
{{#multiplatform}}
* Kotlin 1.3.50
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ group '{{groupId}}'
version '{{artifactVersion}}'

wrapper {
gradleVersion = '4.9'
gradleVersion = '6.7'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}

buildscript {
ext.kotlin_version = '1.3.61'
ext.kotlin_version = '1.4.10'
{{#jvm-retrofit2}}
ext.retrofitVersion = '2.6.2'
{{/jvm-retrofit2}}
Expand All @@ -26,13 +26,19 @@ buildscript {
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
{{#kotlinx_serialization}}
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
{{/kotlinx_serialization}}
}
}

apply plugin: 'kotlin'
{{#moshiCodeGen}}
apply plugin: 'kotlin-kapt'
{{/moshiCodeGen}}
{{#kotlinx_serialization}}
apply plugin: 'kotlinx-serialization'
{{/kotlinx_serialization}}

repositories {
maven { url "https://repo1.maven.org/maven2" }
Expand Down Expand Up @@ -63,6 +69,9 @@ dependencies {
compile "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.2"
compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.2"
{{/jackson}}
{{#kotlinx_serialization}}
compile "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
{{/kotlinx_serialization}}
{{#jvm-okhttp3}}
{{^moshi}}
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
Expand Down Expand Up @@ -106,12 +115,16 @@ dependencies {
compile "com.squareup.retrofit2:adapter-rxjava3:2.9.0"
{{/useRxJava3}}
compile "com.squareup.retrofit2:retrofit:$retrofitVersion"
compile "com.squareup.okhttp3:logging-interceptor:4.4.0"
{{#gson}}
compile "com.squareup.retrofit2:converter-gson:$retrofitVersion"
{{/gson}}
{{#moshi}}
compile "com.squareup.retrofit2:converter-moshi:$retrofitVersion"
{{/moshi}}
{{#kotlinx_serialization}}
compile "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.7.0"
{{/kotlinx_serialization}}
compile "com.squareup.retrofit2:converter-scalars:$retrofitVersion"
{{/jvm-retrofit2}}
testCompile "io.kotlintest:kotlintest-runner-junit5:3.1.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
{{/discriminator}}
{{/jackson}}
{{#kotlinx_serialization}}
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerialName
import kotlinx.serialization.Contextual
{{#hasEnums}}
{{/hasEnums}}
{{/kotlinx_serialization}}
{{#parcelizeModels}}
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
Expand All @@ -38,7 +45,7 @@ import java.io.Serializable
{{#parcelizeModels}}
@Parcelize
{{/parcelizeModels}}
{{#multiplatform}}@Serializable{{/multiplatform}}{{#moshi}}{{#moshiCodeGen}}@JsonClass(generateAdapter = true){{/moshiCodeGen}}{{/moshi}}{{#jackson}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{/jackson}}
{{#multiplatform}}@Serializable{{/multiplatform}}{{#kotlinx_serialization}}@Serializable{{/kotlinx_serialization}}{{#moshi}}{{#moshiCodeGen}}@JsonClass(generateAdapter = true){{/moshiCodeGen}}{{/moshi}}{{#jackson}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{/jackson}}
{{#isDeprecated}}
@Deprecated(message = "This schema is deprecated.")
{{/isDeprecated}}
Expand All @@ -60,11 +67,10 @@ import java.io.Serializable
{{#vars}}
{{#isEnum}}
/**
* {{{description}}}
* Values: {{#allowableValues}}{{#enumVars}}{{&name}}{{^-last}},{{/-last}}{{/enumVars}}{{/allowableValues}}
*/
{{#multiplatform}}@Serializable(with = {{nameInCamelCase}}.Serializer::class){{/multiplatform}}
{{#nonPublicApi}}internal {{/nonPublicApi}}enum class {{{nameInCamelCase}}}(val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}kotlin.String{{/isContainer}}){
* {{{description}}}
* Values: {{#allowableValues}}{{#enumVars}}{{&name}}{{^-last}},{{/-last}}{{/enumVars}}{{/allowableValues}}
*/
{{#nonPublicApi}}internal {{/nonPublicApi}}enum class {{{nameInCamelCase}}}(val value: {{^isContainer}}{{dataType}}{{/isContainer}}{{#isContainer}}kotlin.String{{/isContainer}}) {
{{#allowableValues}}
{{#enumVars}}
{{^multiplatform}}
Expand All @@ -77,16 +83,15 @@ import java.io.Serializable
{{#jackson}}
@JsonProperty(value = {{^isString}}"{{/isString}}{{{value}}}{{^isString}}"{{/isString}}) {{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
{{/jackson}}
{{#kotlinx_serialization}}
@SerialName(value = {{^isString}}"{{/isString}}{{{value}}}{{^isString}}"{{/isString}}) {{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
{{/kotlinx_serialization}}
{{/multiplatform}}
{{#multiplatform}}
{{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
{{/multiplatform}}
{{/enumVars}}
{{/allowableValues}}
{{#multiplatform}}

{{#nonPublicApi}}internal {{/nonPublicApi}}object Serializer : CommonEnumSerializer<{{nameInCamelCase}}>("{{nameInCamelCase}}", values(), values().map { it.value.toString() }.toTypedArray())
{{/multiplatform}}
}
{{/isEnum}}
{{/vars}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
{{#jackson}}
@field:JsonProperty("{{{vendorExtensions.x-base-name-literal}}}")
{{/jackson}}
{{#kotlinx_serialization}}
{{^isEnum}}{{^isArray}}{{^isPrimitiveType}}{{^isModel}}@Contextual {{/isModel}}{{/isPrimitiveType}}{{/isArray}}{{/isEnum}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}")
{{/kotlinx_serialization}}
{{/multiplatform}}
{{#deprecated}}
@Deprecated(message = "This property is deprecated.")
{{/deprecated}}
{{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{#isList}}kotlin.collections.List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{classname}}.{{{nameInCamelCase}}}>{{/isArray}}{{^isArray}}{{classname}}.{{{nameInCamelCase}}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}
{{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInCamelCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInCamelCase}}}{{/isArray}}{{/isEnum}}? = {{#defaultvalue}}{{defaultvalue}}{{/defaultvalue}}{{^defaultvalue}}null{{/defaultvalue}}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
{{#jackson}}
@field:JsonProperty("{{{vendorExtensions.x-base-name-literal}}}")
{{/jackson}}
{{#kotlinx_serialization}}
{{^isEnum}}{{^isArray}}{{^isPrimitiveType}}{{^isModel}}@Contextual {{/isModel}}{{/isPrimitiveType}}{{/isArray}}{{/isEnum}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}")
{{/kotlinx_serialization}}
{{/multiplatform}}
{{#deprecated}}
@Deprecated(message = "This property is deprecated.")
{{/deprecated}}
{{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isEnum}}{{#isArray}}{{#isList}}kotlin.collections.List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{classname}}.{{{nameInCamelCase}}}>{{/isArray}}{{^isArray}}{{classname}}.{{{nameInCamelCase}}}{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}
{{#multiplatform}}@SerialName(value = "{{{vendorExtensions.x-base-name-literal}}}") @Required {{/multiplatform}}{{#isInherited}}override {{/isInherited}}{{>modelMutable}} {{{name}}}: {{#isArray}}{{#isList}}kotlin.collections.List{{/isList}}{{^isList}}kotlin.Array{{/isList}}<{{^items.isEnum}}{{^items.isPrimitiveType}}{{^items.isModel}}{{#kotlinx_serialization}}@Contextual {{/kotlinx_serialization}}{{/items.isModel}}{{/items.isPrimitiveType}}{{{items.dataType}}}{{/items.isEnum}}{{#items.isEnum}}{{classname}}.{{{nameInCamelCase}}}{{/items.isEnum}}>{{/isArray}}{{^isEnum}}{{^isArray}}{{{dataType}}}{{/isArray}}{{/isEnum}}{{#isEnum}}{{^isArray}}{{classname}}.{{{nameInCamelCase}}}{{/isArray}}{{/isEnum}}{{#isNullable}}?{{/isNullable}}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ import com.squareup.moshi.Json
{{#jackson}}
import com.fasterxml.jackson.annotation.JsonProperty
{{/jackson}}
{{#kotlinx_serialization}}
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
{{/kotlinx_serialization}}
{{/multiplatform}}
{{#multiplatform}}
import kotlinx.serialization.*
Expand All @@ -18,8 +22,8 @@ import kotlinx.serialization.internal.CommonEnumSerializer
* {{{description}}}
* Values: {{#allowableValues}}{{#enumVars}}{{&name}}{{^-last}},{{/-last}}{{/enumVars}}{{/allowableValues}}
*/
{{#multiplatform}}@Serializable(with = {{classname}}.Serializer::class){{/multiplatform}}
{{#nonPublicApi}}internal {{/nonPublicApi}}enum class {{classname}}(val value: {{{dataType}}}){
{{#multiplatform}}@Serializable(with = {{classname}}.Serializer::class){{/multiplatform}}{{#kotlinx_serialization}}@Serializable(with = {{classname}}.Serializer::class){{/kotlinx_serialization}}
{{#nonPublicApi}}internal {{/nonPublicApi}}enum class {{classname}}(val value: {{{dataType}}}) {

{{#allowableValues}}{{#enumVars}}
{{^multiplatform}}
Expand All @@ -32,6 +36,9 @@ import kotlinx.serialization.internal.CommonEnumSerializer
{{#jackson}}
@JsonProperty(value = {{^isString}}"{{/isString}}{{{value}}}{{^isString}}"{{/isString}})
{{/jackson}}
{{#kotlinx_serialization}}
@SerialName(value = {{^isString}}"{{/isString}}{{{value}}}{{^isString}}"{{/isString}})
{{/kotlinx_serialization}}
{{/multiplatform}}
{{#isArray}}
{{#isList}}
Expand All @@ -44,7 +51,6 @@ import kotlinx.serialization.internal.CommonEnumSerializer
{{^isArray}}
{{&name}}({{{value}}}){{^-last}},{{/-last}}{{#-last}};{{/-last}}
{{/isArray}}

{{/enumVars}}{{/allowableValues}}

/**
Expand All @@ -54,8 +60,4 @@ import kotlinx.serialization.internal.CommonEnumSerializer
override fun toString(): String {
return value{{^isString}}.toString(){{/isString}}
}

{{#multiplatform}}
{{#nonPublicApi}}internal {{/nonPublicApi}}object Serializer : CommonEnumSerializer<{{classname}}>("{{classname}}", values(), values().map { it.value.toString() }.toTypedArray())
{{/multiplatform}}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Tue May 17 23:08:05 CST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip
Loading