Skip to content

Commit

Permalink
Added BigDecimalAdapter and BigIntegerAdapter adapter for Kotlin Clie…
Browse files Browse the repository at this point in the history
…nt Moshi
  • Loading branch information
kuFEAR committed Nov 22, 2020
1 parent bfcb127 commit 05bd4e1
Show file tree
Hide file tree
Showing 45 changed files with 424 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -464,6 +464,8 @@ private void addSupportingSerializerAdapters(final String infrastructureFolder)
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/BigDecimalAdapter.kt.mustache", infrastructureFolder, "BigDecimalAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/BigIntegerAdapter.kt.mustache", infrastructureFolder, "BigIntegerAdapter.kt"));
break;

case gson:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,35 @@
package {{packageName}}.infrastructure

{{#kotlinx_serialization}}
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializer
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.SerialDescriptor
{{/kotlinx_serialization}}
{{#moshi}}
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
{{/moshi}}
import java.math.BigDecimal

@Serializer(forClass = BigDecimal::class)
{{#kotlinx_serialization}}@Serializer(forClass = BigDecimal::class)
object BigDecimalAdapter : KSerializer<BigDecimal> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BigDecimal", PrimitiveKind.STRING)
override fun deserialize(decoder: Decoder): BigDecimal = BigDecimal(decoder.decodeString())
override fun serialize(encoder: Encoder, value: BigDecimal) = encoder.encodeString(value.toPlainString())
}
}{{/kotlinx_serialization}}{{#moshi}}{{#nonPublicApi}}internal {{/nonPublicApi}}class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}{{/moshi}}
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package {{packageName}}.infrastructure

{{#kotlinx_serialization}}
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializer
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.SerialDescriptor
{{/kotlinx_serialization}}
{{#moshi}}
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
{{/moshi}}
import java.math.BigInteger

@Serializer(forClass = BigInteger::class)
{{#kotlinx_serialization}}@Serializer(forClass = BigInteger::class)
object BigIntegerAdapter : KSerializer<BigInteger> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BigInteger", PrimitiveKind.STRING)
Expand All @@ -20,4 +26,14 @@ object BigIntegerAdapter : KSerializer<BigInteger> {
override fun serialize(encoder: Encoder, value: BigInteger) {
encoder.encodeString(value.toString())
}
}
}{{/kotlinx_serialization}}{{#moshi}}{{#nonPublicApi}}internal {{/nonPublicApi}}class BigIntegerAdapter {
@ToJson
fun toJson(value: BigInteger): String {
return value.toString()
}

@FromJson
fun fromJson(value: String): BigInteger {
return BigInteger(value)
}
}{{/moshi}}
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ import java.util.concurrent.atomic.AtomicLong
.add(LocalDateAdapter())
.add(UUIDAdapter())
.add(ByteArrayAdapter())
.add(BigDecimalAdapter())
.add(BigIntegerAdapter())
{{^moshiCodeGen}}
.add(KotlinJsonAdapterFactory())
{{/moshiCodeGen}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ public void testBuiltinLibraryTemplates() throws IOException {

List<File> files = generator.opts(clientOptInput).generate();

Assert.assertEquals(files.size(), 25);
Assert.assertEquals(files.size(), 27);

// Generator should report a library templated file as a generated file
TestUtils.ensureContainsFile(files, output, "src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt");
Expand Down Expand Up @@ -501,7 +501,7 @@ public void testBuiltinNonLibraryTemplates() throws IOException {

List<File> files = generator.opts(clientOptInput).generate();

Assert.assertEquals(files.size(), 25);
Assert.assertEquals(files.size(), 27);

// Generator should report README.md as a generated file
TestUtils.ensureContainsFile(files, output, "README.md");
Expand Down Expand Up @@ -566,7 +566,7 @@ public void testCustomLibraryTemplates() throws IOException {

List<File> files = generator.opts(clientOptInput).generate();

Assert.assertEquals(files.size(), 25);
Assert.assertEquals(files.size(), 27);

// Generator should report a library templated file as a generated file
TestUtils.ensureContainsFile(files, output, "src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt");
Expand Down Expand Up @@ -620,7 +620,7 @@ public void testCustomNonLibraryTemplates() throws IOException {

List<File> files = generator.opts(clientOptInput).generate();

Assert.assertEquals(files.size(), 25);
Assert.assertEquals(files.size(), 27);

// Generator should report README.md as a generated file
TestUtils.ensureContainsFile(files, output, "README.md");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApplicationDelegates.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigDecimal

class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigInteger

class BigIntegerAdapter {
@ToJson
fun toJson(value: BigInteger): String {
return value.toString()
}

@FromJson
fun fromJson(value: String): BigInteger {
return BigInteger(value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ object Serializer {
.add(LocalDateAdapter())
.add(UUIDAdapter())
.add(ByteArrayAdapter())
.add(BigDecimalAdapter())
.add(BigIntegerAdapter())
.add(KotlinJsonAdapterFactory())

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApplicationDelegates.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigDecimal

class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigInteger

class BigIntegerAdapter {
@ToJson
fun toJson(value: BigInteger): String {
return value.toString()
}

@FromJson
fun fromJson(value: String): BigInteger {
return BigInteger(value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ object Serializer {
.add(LocalDateAdapter())
.add(UUIDAdapter())
.add(ByteArrayAdapter())
.add(BigDecimalAdapter())
.add(BigIntegerAdapter())

@JvmStatic
val moshi: Moshi by lazy {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApplicationDelegates.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigDecimal

internal class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigInteger

internal class BigIntegerAdapter {
@ToJson
fun toJson(value: BigInteger): String {
return value.toString()
}

@FromJson
fun fromJson(value: String): BigInteger {
return BigInteger(value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ internal object Serializer {
.add(LocalDateAdapter())
.add(UUIDAdapter())
.add(ByteArrayAdapter())
.add(BigDecimalAdapter())
.add(BigIntegerAdapter())
.add(KotlinJsonAdapterFactory())

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApplicationDelegates.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigDecimal

class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigInteger

class BigIntegerAdapter {
@ToJson
fun toJson(value: BigInteger): String {
return value.toString()
}

@FromJson
fun fromJson(value: String): BigInteger {
return BigInteger(value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ object Serializer {
.add(LocalDateAdapter())
.add(UUIDAdapter())
.add(ByteArrayAdapter())
.add(BigDecimalAdapter())
.add(BigIntegerAdapter())
.add(KotlinJsonAdapterFactory())

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApplicationDelegates.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapitools.client.infrastructure

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.math.BigDecimal

class BigDecimalAdapter {
@ToJson
fun toJson(value: BigDecimal): String {
return value.toPlainString()
}

@FromJson
fun fromJson(value: String): BigDecimal {
return BigDecimal(value)
}
}
Loading

0 comments on commit 05bd4e1

Please sign in to comment.