Skip to content

Commit 897a353

Browse files
fviernausschuberth
authored andcommitted
refactor(fossid-webapp): Avoid using JSON_MAPPER in serializers
Make the coupling less tight, to prepare for extracting the serializers into dedicated files. Signed-off-by: Frank Viernau <[email protected]>
1 parent 0a9ed02 commit 897a353

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

clients/fossid-webapp/src/main/kotlin/FossIdRestService.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,18 +108,18 @@ interface FossIdRestService {
108108
return when (p.currentToken) {
109109
JsonToken.VALUE_FALSE -> PolymorphicList()
110110
JsonToken.START_ARRAY -> {
111-
val arrayType = JSON_MAPPER.typeFactory.constructArrayType(boundType)
112-
val array = JSON_MAPPER.readValue<Array<Any>>(p, arrayType)
111+
val arrayType = ctxt.typeFactory.constructArrayType(boundType)
112+
val array = ctxt.readValue<Array<Any>>(p, arrayType)
113113
PolymorphicList(array.toList())
114114
}
115115

116116
JsonToken.START_OBJECT -> {
117-
val mapType = JSON_MAPPER.typeFactory.constructMapType(
117+
val mapType = ctxt.typeFactory.constructMapType(
118118
LinkedHashMap::class.java,
119119
String::class.java,
120120
boundType.rawClass
121121
)
122-
val map = JSON_MAPPER.readValue<Map<Any, Any>>(p, mapType)
122+
val map = ctxt.readValue<Map<Any, Any>>(p, mapType)
123123

124124
// Only keep the map's values: If the FossID functions which return a PolymorphicList return a
125125
// map, it always is the list of elements grouped by id. Since the ids are also present in the
@@ -152,13 +152,13 @@ interface FossIdRestService {
152152

153153
return when (p.currentToken) {
154154
JsonToken.START_ARRAY -> {
155-
val arrayType = JSON_MAPPER.typeFactory.constructArrayType(boundType)
156-
val array = JSON_MAPPER.readValue<Array<Any>>(p, arrayType)
155+
val arrayType = ctxt.typeFactory.constructArrayType(boundType)
156+
val array = ctxt.readValue<Array<Any>>(p, arrayType)
157157
PolymorphicData(array.firstOrNull())
158158
}
159159

160160
JsonToken.START_OBJECT -> {
161-
val data = JSON_MAPPER.readValue<Any>(p, boundType)
161+
val data = ctxt.readValue<Any>(p, boundType)
162162
PolymorphicData(data)
163163
}
164164

@@ -192,28 +192,28 @@ interface FossIdRestService {
192192
override fun deserialize(p: JsonParser, ctxt: DeserializationContext): PolymorphicInt {
193193
return when (p.currentToken) {
194194
JsonToken.VALUE_STRING -> {
195-
val value = JSON_MAPPER.readValue(p, String::class.java)
195+
val value = ctxt.readValue(p, String::class.java)
196196
PolymorphicInt(value.toInt())
197197
}
198198

199199
JsonToken.VALUE_NUMBER_INT -> {
200-
val value = JSON_MAPPER.readValue(p, Int::class.java)
200+
val value = ctxt.readValue(p, Int::class.java)
201201
PolymorphicInt(value)
202202
}
203203

204204
JsonToken.START_ARRAY -> {
205-
val array = JSON_MAPPER.readValue(p, IntArray::class.java)
205+
val array = ctxt.readValue(p, IntArray::class.java)
206206
val value = if (array.isEmpty()) null else array.first()
207207
PolymorphicInt(value)
208208
}
209209

210210
JsonToken.START_OBJECT -> {
211-
val mapType = JSON_MAPPER.typeFactory.constructMapType(
211+
val mapType = ctxt.typeFactory.constructMapType(
212212
LinkedHashMap::class.java,
213213
String::class.java,
214214
String::class.java
215215
)
216-
val map = JSON_MAPPER.readValue<Map<Any, Any>>(p, mapType)
216+
val map = ctxt.readValue<Map<Any, Any>>(p, mapType)
217217
if (map.size != 1) {
218218
error("A map representing a polymorphic integer should have one value!")
219219
}

0 commit comments

Comments
 (0)