Skip to content

Commit e85f268

Browse files
authored
Merge pull request #174 from ProjectMapK/fix-ser-warn
Implement readResolve
2 parents c83aff4 + 78690a8 commit e85f268

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

src/main/kotlin/io/github/projectmapk/jackson/module/kogera/deser/deserializers/KotlinDeserializers.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,16 @@ import java.lang.reflect.Method
2323
import java.lang.reflect.Modifier
2424

2525
internal object SequenceDeserializer : StdDeserializer<Sequence<*>>(Sequence::class.java) {
26+
private fun readResolve(): Any = SequenceDeserializer
27+
2628
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): Sequence<*> {
2729
return ctxt.readValue(p, List::class.java).asSequence()
2830
}
2931
}
3032

3133
internal object RegexDeserializer : StdDeserializer<Regex>(Regex::class.java) {
34+
private fun readResolve(): Any = RegexDeserializer
35+
3236
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): Regex {
3337
val node = ctxt.readTree(p)
3438

@@ -57,21 +61,29 @@ internal object RegexDeserializer : StdDeserializer<Regex>(Regex::class.java) {
5761
}
5862

5963
internal object UByteDeserializer : StdDeserializer<UByte>(UByte::class.java) {
64+
private fun readResolve(): Any = UByteDeserializer
65+
6066
override fun deserialize(p: JsonParser, ctxt: DeserializationContext) =
6167
UByteChecker.readWithRangeCheck(p, p.intValue)
6268
}
6369

6470
internal object UShortDeserializer : StdDeserializer<UShort>(UShort::class.java) {
71+
private fun readResolve(): Any = UShortDeserializer
72+
6573
override fun deserialize(p: JsonParser, ctxt: DeserializationContext) =
6674
UShortChecker.readWithRangeCheck(p, p.intValue)
6775
}
6876

6977
internal object UIntDeserializer : StdDeserializer<UInt>(UInt::class.java) {
78+
private fun readResolve(): Any = UIntDeserializer
79+
7080
override fun deserialize(p: JsonParser, ctxt: DeserializationContext) =
7181
UIntChecker.readWithRangeCheck(p, p.longValue)
7282
}
7383

7484
internal object ULongDeserializer : StdDeserializer<ULong>(ULong::class.java) {
85+
private fun readResolve(): Any = ULongDeserializer
86+
7587
override fun deserialize(p: JsonParser, ctxt: DeserializationContext) =
7688
ULongChecker.readWithRangeCheck(p, p.bigIntegerValue)
7789
}

src/main/kotlin/io/github/projectmapk/jackson/module/kogera/deser/deserializers/KotlinKeyDeserializers.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,29 @@ import java.math.BigInteger
1313
// If StdKeyDeserializer is modified, need to modify this too.
1414

1515
internal object UByteKeyDeserializer : StdKeyDeserializer(TYPE_SHORT, UByte::class.java) {
16+
private fun readResolve(): Any = UByteKeyDeserializer
17+
1618
override fun deserializeKey(key: String?, ctxt: DeserializationContext): UByte? =
1719
key?.let { UByteChecker.readWithRangeCheck(null, _parseInt(it)) }
1820
}
1921

2022
internal object UShortKeyDeserializer : StdKeyDeserializer(TYPE_INT, UShort::class.java) {
23+
private fun readResolve(): Any = UShortKeyDeserializer
24+
2125
override fun deserializeKey(key: String?, ctxt: DeserializationContext): UShort? =
2226
key?.let { UShortChecker.readWithRangeCheck(null, _parseInt(it)) }
2327
}
2428

2529
internal object UIntKeyDeserializer : StdKeyDeserializer(TYPE_LONG, UInt::class.java) {
30+
private fun readResolve(): Any = UIntKeyDeserializer
31+
2632
override fun deserializeKey(key: String?, ctxt: DeserializationContext): UInt? =
2733
key?.let { UIntChecker.readWithRangeCheck(null, _parseLong(it)) }
2834
}
2935

3036
internal object ULongKeyDeserializer : StdKeyDeserializer(-1, ULong::class.java) {
37+
private fun readResolve(): Any = ULongKeyDeserializer
38+
3139
override fun deserializeKey(key: String?, ctxt: DeserializationContext): ULong? =
3240
key?.let { ULongChecker.readWithRangeCheck(null, BigInteger(it)) }
3341
}

src/main/kotlin/io/github/projectmapk/jackson/module/kogera/ser/serializers/KotlinSerializers.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,29 @@ import java.lang.reflect.Modifier
1717
import java.math.BigInteger
1818

1919
internal object UByteSerializer : StdSerializer<UByte>(UByte::class.java) {
20+
private fun readResolve(): Any = UByteSerializer
21+
2022
override fun serialize(value: UByte, gen: JsonGenerator, provider: SerializerProvider) =
2123
gen.writeNumber(value.toShort())
2224
}
2325

2426
internal object UShortSerializer : StdSerializer<UShort>(UShort::class.java) {
27+
private fun readResolve(): Any = UShortSerializer
28+
2529
override fun serialize(value: UShort, gen: JsonGenerator, provider: SerializerProvider) =
2630
gen.writeNumber(value.toInt())
2731
}
2832

2933
internal object UIntSerializer : StdSerializer<UInt>(UInt::class.java) {
34+
private fun readResolve(): Any = UIntSerializer
35+
3036
override fun serialize(value: UInt, gen: JsonGenerator, provider: SerializerProvider) =
3137
gen.writeNumber(value.toLong())
3238
}
3339

3440
internal object ULongSerializer : StdSerializer<ULong>(ULong::class.java) {
41+
private fun readResolve(): Any = ULongSerializer
42+
3543
override fun serialize(value: ULong, gen: JsonGenerator, provider: SerializerProvider) {
3644
val longValue = value.toLong()
3745
when {

0 commit comments

Comments
 (0)