Skip to content
This repository was archived by the owner on Apr 9, 2025. It is now read-only.

Commit 38f8b7d

Browse files
committed
adding test (and solving bugs) for the serialization of extensions.
1 parent c8beee7 commit 38f8b7d

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/main/java/org/lambda3/text/simplification/discourse/model/serializer/ExtensionsDeserializer.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.lambda3.text.simplification.discourse.model.Extensible;
3232

3333
import java.io.IOException;
34-
import java.lang.reflect.Array;
3534
import java.util.*;
3635

3736
public class ExtensionsDeserializer extends StdDeserializer<Map> {
@@ -54,21 +53,31 @@ public Map deserialize(JsonParser parser, DeserializationContext deserialization
5453
try {
5554
Class<?> clazz = Class.forName(en.get("class").asText());
5655
String key = en.has("key") ? en.get("key").asText() : null;
57-
JsonParser cjp = en.get("content").traverse();
58-
Class<?> contentClazz = clazz;
56+
JsonNode nodeContent = en.get("content");
57+
5958
Object mapKey;
59+
Object content;
60+
61+
if (nodeContent.isArray()) {
62+
content = new LinkedList<>();
63+
for (JsonNode aNodeContent : nodeContent) {
64+
JsonParser panc = aNodeContent.traverse();
65+
panc.nextToken();
66+
Object co = deserializationContext.readValue(panc, clazz);
67+
((List) content).add(co);
68+
}
69+
} else {
70+
JsonParser cjp = nodeContent.traverse();
71+
cjp.nextToken();
72+
content = deserializationContext.readValue(cjp, clazz);
73+
}
6074

6175
if (key == null) {
6276
mapKey = clazz;
6377
} else {
6478
mapKey = new Extensible.Key(clazz, key);
65-
if (key.equals(Extensible.LIST_KEY)) {
66-
contentClazz = ArrayList.class;
67-
}
6879
}
6980

70-
cjp.nextToken();
71-
Object content = deserializationContext.readValue(cjp, contentClazz);
7281
map.put(mapKey, content);
7382

7483
} catch (ClassNotFoundException e) {

src/test/java/org/lambda3/text/simplification/discourse/ExtensibleTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ public void testListExtension() {
8585
public void testDeSerialization() throws IOException {
8686
Extensible e = new SimpleExtensible();
8787
Arrays.asList("Switzerland", "Brazil", "Germany").forEach(e::addListExtension);
88-
e.addExtension(new LinkedContext("bla bla", RelationType.UNKNOWN));
88+
e.addListExtension(new LinkedContext("bla bla", RelationType.UNKNOWN));
89+
e.addListExtension(new LinkedContext("bla bla 2", RelationType.UNKNOWN));
8990
e.addExtension("key", 7);
9091

9192
File temp = File.createTempFile("ext-discourse-simplification", ".json");

0 commit comments

Comments
 (0)