From: Jim Hahn Date: Mon, 30 Nov 2020 19:34:29 +0000 (-0500) Subject: Generalize LocalDateTimeTypeAdapter X-Git-Tag: 1.8.0~15 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=371821c3191999dfc90f77569b184172e598f431;p=policy%2Fcommon.git Generalize LocalDateTimeTypeAdapter The GSON DateTime type adapter uses a hard-coded formatter. Generalized it to allow a different formatter to be provided to the constructor. Issue-ID: POLICY-2903 Change-Id: Icdd51190f465bc4c73cd593d6d1b2003165a4b60 Signed-off-by: Jim Hahn --- diff --git a/gson/src/main/java/org/onap/policy/common/gson/LocalDateTimeTypeAdapter.java b/gson/src/main/java/org/onap/policy/common/gson/LocalDateTimeTypeAdapter.java index 2b297cbf..4d87ca46 100644 --- a/gson/src/main/java/org/onap/policy/common/gson/LocalDateTimeTypeAdapter.java +++ b/gson/src/main/java/org/onap/policy/common/gson/LocalDateTimeTypeAdapter.java @@ -32,10 +32,18 @@ import java.time.format.DateTimeParseException; /** * GSON Type Adapter for "LocalDateTime" fields, that uses the standard - * ISO_LOCAL_DATE_TIME formatter. + * ISO_LOCAL_DATE_TIME formatter, by default. */ public class LocalDateTimeTypeAdapter extends TypeAdapter { - private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME; + private DateTimeFormatter formatter; + + public LocalDateTimeTypeAdapter() { + this(DateTimeFormatter.ISO_LOCAL_DATE_TIME); + } + + public LocalDateTimeTypeAdapter(DateTimeFormatter formatter) { + this.formatter = formatter; + } @Override public LocalDateTime read(JsonReader in) throws IOException { @@ -44,7 +52,7 @@ public class LocalDateTimeTypeAdapter extends TypeAdapter { in.nextNull(); return null; } else { - return LocalDateTime.parse(in.nextString(), FORMATTER); + return LocalDateTime.parse(in.nextString(), formatter); } } catch (DateTimeParseException e) { @@ -57,7 +65,7 @@ public class LocalDateTimeTypeAdapter extends TypeAdapter { if (value == null) { out.nullValue(); } else { - String text = value.format(FORMATTER); + String text = value.format(formatter); out.value(text); } }