From 371821c3191999dfc90f77569b184172e598f431 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 30 Nov 2020 14:34:29 -0500 Subject: 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 --- .../policy/common/gson/LocalDateTimeTypeAdapter.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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); } } -- cgit 1.2.3-korg