From b76b6e6212784d622ca79bd258fa3e529b353346 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 28 Sep 2018 14:19:50 +0200 Subject: add first code for eID4U --- .../AbstractDateTimeAttributeValueMarshaller.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 id/server/modules/eID4UExtensions/src/main/java/at/gv/egiz/eid4u/impl/attributes/AbstractDateTimeAttributeValueMarshaller.java (limited to 'id/server/modules/eID4UExtensions/src/main/java/at/gv/egiz/eid4u/impl/attributes/AbstractDateTimeAttributeValueMarshaller.java') diff --git a/id/server/modules/eID4UExtensions/src/main/java/at/gv/egiz/eid4u/impl/attributes/AbstractDateTimeAttributeValueMarshaller.java b/id/server/modules/eID4UExtensions/src/main/java/at/gv/egiz/eid4u/impl/attributes/AbstractDateTimeAttributeValueMarshaller.java new file mode 100644 index 000000000..7916c200d --- /dev/null +++ b/id/server/modules/eID4UExtensions/src/main/java/at/gv/egiz/eid4u/impl/attributes/AbstractDateTimeAttributeValueMarshaller.java @@ -0,0 +1,44 @@ +package at.gv.egiz.eid4u.impl.attributes; + +import java.util.Locale; + +import javax.annotation.Nonnull; + +import org.joda.time.DateTime; +import org.joda.time.chrono.ISOChronology; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; + +import eu.eidas.auth.commons.attribute.AttributeValue; +import eu.eidas.auth.commons.attribute.AttributeValueMarshaller; +import eu.eidas.auth.commons.attribute.AttributeValueMarshallingException; +import eu.eidas.auth.commons.attribute.impl.DateTimeAttributeValue; + +public abstract class AbstractDateTimeAttributeValueMarshaller implements AttributeValueMarshaller{ + + private static final DateTimeFormatter FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd") + .withChronology(ISOChronology.getInstance()) + .withLocale(Locale.ENGLISH) + .withZoneUTC(); + + public static String printDateTime(@Nonnull DateTime dateTime) { + return FORMAT.print(dateTime); + } + + @Nonnull + @Override + public String marshal(@Nonnull AttributeValue value) { + return printDateTime(value.getValue()); + } + + @Nonnull + @Override + public AttributeValue unmarshal(@Nonnull String value, boolean isNonLatinScriptAlternateVersion) + throws AttributeValueMarshallingException { + try { + return new DateTimeAttributeValue(FORMAT.parseDateTime(value)); + } catch (IllegalArgumentException iae) { + throw new AttributeValueMarshallingException(iae); + } + } +} -- cgit v1.2.3