Skip to content

Commit 63ee6d7

Browse files
committed
Specify serializers for all subtypes
1 parent 5bff7a7 commit 63ee6d7

5 files changed

Lines changed: 89 additions & 13 deletions

File tree

util/src/main/kotlin/com/caplin/integration/datasourcex/util/serialization/fory/MapEventSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ internal class MapEventSerializer(fory: Fory, type: Class<MapEvent<*, *>>) :
3434
}
3535

3636
override fun read(buffer: MemoryBuffer): MapEvent<*, *> {
37-
return when (Type.values()[buffer.readByte().toInt()]) {
37+
return when (Type.entries[buffer.readByte().toInt()]) {
3838
Type.POPULATED -> MapEvent.Populated
3939
Type.UPSERT -> {
4040
val key = fory.readRef(buffer) as Any

util/src/main/kotlin/com/caplin/integration/datasourcex/util/serialization/fory/SetEventSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ internal class SetEventSerializer(fory: Fory, type: Class<SetEvent<*>>) :
3131
}
3232

3333
override fun read(buffer: MemoryBuffer): SetEvent<*> {
34-
return when (Type.values()[buffer.readByte().toInt()]) {
34+
return when (Type.entries[buffer.readByte().toInt()]) {
3535
Type.POPULATED -> SetEvent.Populated
3636
Type.INSERT -> {
3737
val value = fory.readRef(buffer) as Any

util/src/main/kotlin/com/caplin/integration/datasourcex/util/serialization/fory/SimpleMapEventSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ internal class SimpleMapEventSerializer(fory: Fory, type: Class<SimpleMapEvent<*
3232
}
3333

3434
override fun read(buffer: MemoryBuffer): SimpleMapEvent<*, *> {
35-
return when (Type.values()[buffer.readByte().toInt()]) {
35+
return when (Type.entries[buffer.readByte().toInt()]) {
3636
Type.POPULATED -> SimpleMapEvent.Populated
3737
Type.UPSERT -> {
3838
val key = fory.readRef(buffer) as Any

util/src/main/kotlin/com/caplin/integration/datasourcex/util/serialization/fory/ValueOrCompletionSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ internal class ValueOrCompletionSerializer(fory: Fory, type: Class<ValueOrComple
2828
}
2929

3030
override fun read(buffer: MemoryBuffer): ValueOrCompletion<*> {
31-
return when (Type.values()[buffer.readByte().toInt()]) {
31+
return when (Type.entries[buffer.readByte().toInt()]) {
3232
Type.VALUE -> {
3333
val value = fory.readRef(buffer) as Any
3434
ValueOrCompletion.Value(value)

util/src/main/kotlin/com/caplin/integration/datasourcex/util/serialization/jackson/DataSourceModule.kt

Lines changed: 85 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,98 @@ fun ObjectMapper.registerDataSourceModule(): ObjectMapper = registerModule(DataS
1616
* without requiring annotations on the classes themselves.
1717
*/
1818
object DataSourceModule : SimpleModule() {
19-
private fun readResolve(): Any = DataSourceModule
19+
@Suppress("unused") private fun readResolve(): Any = DataSourceModule
2020

2121
init {
2222
addSerializer(FlowMapStreamEvent::class.java, FlowMapStreamEventSerializer())
2323
addDeserializer(FlowMapStreamEvent::class.java, FlowMapStreamEventDeserializer())
2424

25-
addSerializer(MapEvent::class.java, MapEventSerializer())
26-
addDeserializer(MapEvent::class.java, MapEventDeserializer())
25+
val mapEventSerializer = MapEventSerializer()
26+
val mapEventDeserializer = MapEventDeserializer()
2727

28-
addSerializer(SimpleMapEvent::class.java, SimpleMapEventSerializer())
29-
addDeserializer(SimpleMapEvent::class.java, SimpleMapEventDeserializer())
28+
addSerializer(MapEvent::class.java, mapEventSerializer)
29+
addDeserializer(MapEvent::class.java, mapEventDeserializer)
3030

31-
addSerializer(SetEvent::class.java, SetEventSerializer())
32-
addDeserializer(SetEvent::class.java, SetEventDeserializer())
31+
@Suppress("UNCHECKED_CAST")
32+
addSerializer(
33+
MapEvent.EntryEvent::class.java,
34+
mapEventSerializer
35+
as com.fasterxml.jackson.databind.JsonSerializer<MapEvent.EntryEvent<*, *>>,
36+
)
37+
@Suppress("UNCHECKED_CAST")
38+
addDeserializer(
39+
MapEvent.EntryEvent::class.java,
40+
mapEventDeserializer
41+
as com.fasterxml.jackson.databind.JsonDeserializer<MapEvent.EntryEvent<*, *>>,
42+
)
3343

34-
addSerializer(ValueOrCompletion::class.java, ValueOrCompletionSerializer())
35-
addDeserializer(ValueOrCompletion::class.java, ValueOrCompletionDeserializer())
44+
val simpleMapEventSerializer = SimpleMapEventSerializer()
45+
val simpleMapEventDeserializer = SimpleMapEventDeserializer()
46+
47+
addSerializer(SimpleMapEvent::class.java, simpleMapEventSerializer)
48+
addDeserializer(SimpleMapEvent::class.java, simpleMapEventDeserializer)
49+
50+
@Suppress("UNCHECKED_CAST")
51+
addSerializer(
52+
SimpleMapEvent.EntryEvent::class.java,
53+
simpleMapEventSerializer
54+
as com.fasterxml.jackson.databind.JsonSerializer<SimpleMapEvent.EntryEvent<*, *>>,
55+
)
56+
@Suppress("UNCHECKED_CAST")
57+
addDeserializer(
58+
SimpleMapEvent.EntryEvent::class.java,
59+
simpleMapEventDeserializer
60+
as com.fasterxml.jackson.databind.JsonDeserializer<SimpleMapEvent.EntryEvent<*, *>>,
61+
)
62+
63+
val setEventSerializer = SetEventSerializer()
64+
val setEventDeserializer = SetEventDeserializer()
65+
66+
addSerializer(SetEvent::class.java, setEventSerializer)
67+
addDeserializer(SetEvent::class.java, setEventDeserializer)
68+
69+
@Suppress("UNCHECKED_CAST")
70+
addSerializer(
71+
SetEvent.EntryEvent::class.java,
72+
setEventSerializer as com.fasterxml.jackson.databind.JsonSerializer<SetEvent.EntryEvent<*>>,
73+
)
74+
@Suppress("UNCHECKED_CAST")
75+
addDeserializer(
76+
SetEvent.EntryEvent::class.java,
77+
setEventDeserializer
78+
as com.fasterxml.jackson.databind.JsonDeserializer<SetEvent.EntryEvent<*>>,
79+
)
80+
81+
val valueOrCompletionSerializer = ValueOrCompletionSerializer()
82+
val valueOrCompletionDeserializer = ValueOrCompletionDeserializer()
83+
84+
addSerializer(ValueOrCompletion::class.java, valueOrCompletionSerializer)
85+
addDeserializer(ValueOrCompletion::class.java, valueOrCompletionDeserializer)
86+
87+
@Suppress("UNCHECKED_CAST")
88+
addSerializer(
89+
ValueOrCompletion.Value::class.java,
90+
valueOrCompletionSerializer
91+
as com.fasterxml.jackson.databind.JsonSerializer<ValueOrCompletion.Value<*>>,
92+
)
93+
@Suppress("UNCHECKED_CAST")
94+
addDeserializer(
95+
ValueOrCompletion.Value::class.java,
96+
valueOrCompletionDeserializer
97+
as com.fasterxml.jackson.databind.JsonDeserializer<ValueOrCompletion.Value<*>>,
98+
)
99+
100+
@Suppress("UNCHECKED_CAST")
101+
addSerializer(
102+
ValueOrCompletion.Completion::class.java,
103+
valueOrCompletionSerializer
104+
as com.fasterxml.jackson.databind.JsonSerializer<ValueOrCompletion.Completion>,
105+
)
106+
@Suppress("UNCHECKED_CAST")
107+
addDeserializer(
108+
ValueOrCompletion.Completion::class.java,
109+
valueOrCompletionDeserializer
110+
as com.fasterxml.jackson.databind.JsonDeserializer<ValueOrCompletion.Completion>,
111+
)
36112
}
37113
}

0 commit comments

Comments
 (0)