Skip to content

Method: configure(Configuration)

1: package cz.cvut.kbss.jsonld.serialization.serializer.compact.datetime;
2:
3: import cz.cvut.kbss.jopa.vocabulary.XSD;
4: import cz.cvut.kbss.jsonld.ConfigParam;
5: import cz.cvut.kbss.jsonld.Configuration;
6: import cz.cvut.kbss.jsonld.serialization.model.JsonNode;
7: import cz.cvut.kbss.jsonld.serialization.serializer.SerializerUtils;
8: import cz.cvut.kbss.jsonld.serialization.serializer.datetime.DateTimeSerializer;
9: import cz.cvut.kbss.jsonld.serialization.traversal.SerializationContext;
10:
11: import java.time.OffsetDateTime;
12: import java.time.format.DateTimeFormatter;
13: import java.time.temporal.TemporalAccessor;
14:
15: /**
16: * Serializes datetime value as string in the ISO 8601 format (unless a different format is configured).
17: */
18: public class IsoDateTimeSerializer extends DateTimeSerializer {
19:
20: protected DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
21:
22: @Override
23: public JsonNode serialize(OffsetDateTime value, SerializationContext<TemporalAccessor> ctx) {
24: return SerializerUtils.createdTypedValueNode(ctx.getTerm(), formatter.format(value), XSD.DATETIME);
25: }
26:
27: @Override
28: public void configure(Configuration configuration) {
29:• if (configuration.has(ConfigParam.DATE_TIME_FORMAT)) {
30: this.formatter = DateTimeFormatter.ofPattern(configuration.get(ConfigParam.DATE_TIME_FORMAT));
31: }
32: }
33: }