Skip to content

Package: ContextBuildingMultilingualStringSerializer

ContextBuildingMultilingualStringSerializer

nameinstructionbranchcomplexitylinemethod
ContextBuildingMultilingualStringSerializer()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
lambda$serialize$0(ObjectNode, String, String)
M: 0 C: 10
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
registerTermMapping(SerializationContext)
M: 0 C: 21
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
serialize(MultilingualString, SerializationContext)
M: 0 C: 21
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 5
100%
M: 0 C: 1
100%

Coverage

1: package cz.cvut.kbss.jsonld.serialization.serializer.context;
2:
3: import cz.cvut.kbss.jopa.model.MultilingualString;
4: import cz.cvut.kbss.jsonld.JsonLd;
5: import cz.cvut.kbss.jsonld.serialization.JsonNodeFactory;
6: import cz.cvut.kbss.jsonld.serialization.model.ObjectNode;
7: import cz.cvut.kbss.jsonld.serialization.serializer.ValueSerializer;
8: import cz.cvut.kbss.jsonld.serialization.traversal.SerializationContext;
9:
10: /**
11: * This is used to serialize {@link MultilingualString} values.
12: */
13: public class ContextBuildingMultilingualStringSerializer implements ValueSerializer<MultilingualString> {
14:
15: @Override
16: public ObjectNode serialize(MultilingualString value, SerializationContext<MultilingualString> ctx) {
17:• if (ctx.getTerm() != null) {
18: registerTermMapping(ctx);
19: }
20:• final ObjectNode node = ctx.getField() != null ? JsonNodeFactory.createObjectNode(ctx.getFieldName()) : JsonNodeFactory.createObjectNode();
21:• value.getValue().forEach((lang, text) -> node.addItem(JsonNodeFactory.createLiteralNode(lang != null ? lang : JsonLd.NONE, text)));
22: return node;
23: }
24:
25: static void registerTermMapping(SerializationContext<MultilingualString> ctx) {
26: final ObjectNode mapping = JsonNodeFactory.createObjectNode(ctx.getFieldName());
27: mapping.addItem(JsonNodeFactory.createLiteralNode(JsonLd.ID, ctx.getTerm()));
28: mapping.addItem(JsonNodeFactory.createLiteralNode(JsonLd.CONTAINER, JsonLd.LANGUAGE));
29: ctx.registerTermMapping(ctx.getFieldName(), mapping);
30: }
31: }