@@ -40,6 +40,10 @@ import kotlinx.serialization.encoding.Encoder
4040{ {/enumUnknownDefaultCase} }
4141{ {#hasEnums} }
4242{ {/hasEnums} }
43+ { {#discriminator} }
44+ import kotlinx.serialization.ExperimentalSerializationApi
45+ import kotlinx.serialization.json.JsonClassDiscriminator
46+ { {/discriminator} }
4347{ {/kotlinx_serialization} }
4448{ {#parcelizeModels} }
4549import android.os.Parcelable
@@ -78,13 +82,21 @@ import {{packageName}}.infrastructure.ITransformForStorage
7882{ {#vendorExtensions.x-class-extra-annotation} }
7983{ {{vendorExtensions.x-class-extra-annotation} }}
8084{ {/vendorExtensions.x-class-extra-annotation} }
81- { {#nonPublicApi} }internal { {/nonPublicApi} }{ {^nonPublicApi} }{ {#explicitApi} }public { {/explicitApi} }{ {/nonPublicApi} }{ {#discriminator} }interface{ {/discriminator} }{ {^discriminator} }{ {#hasVars} }data { {/hasVars} }class{ {/discriminator} } { {classname} }{ {^discriminator} } (
85+ { {#kotlinx_serialization} }{ {#discriminator} }
86+ @OptIn(ExperimentalSerializationApi::class)
87+ @JsonClassDiscriminator(discriminator = "{ {{discriminator.propertyName} }}")
88+ { {/discriminator} }
89+ { {#additionalProperties.discriminatorValue} }
90+ @SerialName(value = { {#lambda.doublequote} }{ {{additionalProperties.discriminatorValue} }}{ {/lambda.doublequote} })
91+ { {/additionalProperties.discriminatorValue} }
92+ { {/kotlinx_serialization} }
93+ { {#nonPublicApi} }internal { {/nonPublicApi} }{ {^nonPublicApi} }{ {#explicitApi} }public { {/explicitApi} }{ {/nonPublicApi} }{ {#discriminator} }{ {#kotlinx_serialization} }sealed class{ {/kotlinx_serialization} }{ {^kotlinx_serialization} }interface{ {/kotlinx_serialization} }{ {/discriminator} }{ {^discriminator} }{ {#hasVars} }data { {/hasVars} }class{ {/discriminator} } { {classname} }{ {^discriminator} } (
8294
8395{ {#allVars} }
8496{ {#required} }{ {> data_class_req_var} }{ {/required} }{ {^required} }{ {> data_class_opt_var} }{ {/required} }{ {^-last} },{ {/-last} }
8597
8698{ {/allVars} }
87- ){{/discriminator}}{{#parent}}{{^serializableModel}}{{^parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{#serializableModel}}{{^parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Serializable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{^serializableModel}}{{#parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{#serializableModel}}{{#parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Serializable, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{#serializableModel}}{{^parcelizeModels}} : Serializable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{^serializableModel}}{{#parcelizeModels}} : Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{#serializableModel}}{{#parcelizeModels}} : Serializable, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#generateRoomModels}}{{#parent}}, {{/parent}}{{^discriminator}}{{^parent}}:{{/parent}} ITransformForStorage<{{classname}}RoomModel>{{/discriminator}}{{/generateRoomModels}}{{#vendorExtensions.x-has-data-class-body}} {
99+ ){{/discriminator}}{{#parent}}{{^serializableModel}}{{^parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#kotlinx_serialization}}(){{/kotlinx_serialization}}{{#isArray}}(){{/isArray}}{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{#serializableModel}}{{^parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Serializable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{^serializableModel}}{{#parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#parent}}{{#serializableModel}}{{#parcelizeModels}} : {{{parent}}}{{#isMap}}(){{/isMap}}{{#isArray}}(){{/isArray}}, Serializable, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{#serializableModel}}{{^parcelizeModels}} : Serializable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{^serializableModel}}{{#parcelizeModels}} : Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{^parent}}{{#serializableModel}}{{#parcelizeModels}} : Serializable, Parcelable{{/parcelizeModels}}{{/serializableModel}}{{/parent}}{{#generateRoomModels}}{{#parent}}, {{/parent}}{{^discriminator}}{{^parent}}:{{/parent}} ITransformForStorage<{{classname}}RoomModel>{{/discriminator}}{{/generateRoomModels}}{{#vendorExtensions.x-has-data-class-body}} {
88100{ {/vendorExtensions.x-has-data-class-body} }
89101{ {#generateRoomModels} }
90102 companion object { }
0 commit comments