From 9255edaffb243eb337aa1e0b961f49d7b05234bb Mon Sep 17 00:00:00 2001 From: NghiNg Date: Thu, 4 Jan 2024 08:32:54 +0100 Subject: [PATCH] Add LocalDateXmlAdapter.java --- .../marshalling/LocalDateXmlAdapter.java | 23 +++++++++++++++++++ .../datatypes/types/invoice/package-info.java | 7 +++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/main/java/no/digipost/api/datatypes/marshalling/LocalDateXmlAdapter.java diff --git a/src/main/java/no/digipost/api/datatypes/marshalling/LocalDateXmlAdapter.java b/src/main/java/no/digipost/api/datatypes/marshalling/LocalDateXmlAdapter.java new file mode 100644 index 0000000..c89485a --- /dev/null +++ b/src/main/java/no/digipost/api/datatypes/marshalling/LocalDateXmlAdapter.java @@ -0,0 +1,23 @@ +package no.digipost.api.datatypes.marshalling; + +import jakarta.xml.bind.annotation.adapters.XmlAdapter; + +import java.time.LocalDate; +public class LocalDateXmlAdapter extends XmlAdapter { + @Override + public String marshal(LocalDate v) { + if (v == null) { + return null; + } + return v.toString(); + } + + @Override + public LocalDate unmarshal(final String s) { + if (s == null) { + return null; + } + return LocalDate.parse(s); + } + +} diff --git a/src/main/java/no/digipost/api/datatypes/types/invoice/package-info.java b/src/main/java/no/digipost/api/datatypes/types/invoice/package-info.java index ca81512..3b6c8ba 100644 --- a/src/main/java/no/digipost/api/datatypes/types/invoice/package-info.java +++ b/src/main/java/no/digipost/api/datatypes/types/invoice/package-info.java @@ -1,6 +1,9 @@ @XmlSchema(namespace = DIGIPOST_DATATYPES_NAMESPACE, elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) @XmlAccessorType(XmlAccessType.FIELD) -@XmlJavaTypeAdapter(ZonedDateTimeXmlAdapter.class) +@XmlJavaTypeAdapters({ + @XmlJavaTypeAdapter(ZonedDateTimeXmlAdapter.class), + @XmlJavaTypeAdapter(LocalDateXmlAdapter.class) +}) @DataTypePackage package no.digipost.api.datatypes.types.invoice; @@ -8,7 +11,9 @@ import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlSchema; import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapters; import no.digipost.api.datatypes.documentation.DataTypePackage; +import no.digipost.api.datatypes.marshalling.LocalDateXmlAdapter; import no.digipost.api.datatypes.marshalling.ZonedDateTimeXmlAdapter; import static no.digipost.api.datatypes.marshalling.DataTypesJAXBContext.DIGIPOST_DATATYPES_NAMESPACE;