You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/17 01:11:51 UTC

[isis] 15/36: ISIS-2264: isis.value.format["datetime"] -> ALSO TO: isis.value-types.java-time.offset-date-time.format

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1bf1fbed05ec1187e17cc76edfe3cc5e4925e251
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 23:43:02 2020 +0100

    ISIS-2264: isis.value.format["datetime"] -> ALSO TO: isis.value-types.java-time.offset-date-time.format
---
 .../modules/mignotes/pages/migrating-to-2.0.0.adoc |  3 +++
 .../apache/isis/core/config/IsisConfiguration.java |  7 ++++++
 .../OffsetDateTimeValueSemanticsProvider.java      | 27 ++++++++++++++++++----
 3 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
index 61fdf2f..a8ef867 100644
--- a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
+++ b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
@@ -659,6 +659,9 @@ isis.value-types. +
 isis.value-types. +
 {nbsp}{nbsp}java-time.local-date-time.format
 
+isis.value-types. +
+{nbsp}{nbsp}java-time.offset-date-time.format
+
 
 |
 |
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index b496acd..75ef370 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.core.config;
 
+import java.time.OffsetDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -1244,6 +1245,12 @@ public class IsisConfiguration {
             public static class LocalDateTime {
                 private String format = "medium";
             }
+
+            private final OffsetDateTime offsetDateTime = new OffsetDateTime();
+            @Data
+            public static class OffsetDateTime {
+                private String format = "medium";
+            }
         }
 
         private final JavaUtil javaUtil = new JavaUtil();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java
index 33bd8ed..538a7b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsetdatetime/OffsetDateTimeValueSemanticsProvider.java
@@ -30,8 +30,10 @@ import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
 import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueSemanticsProviderAbstract;
 
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
 
+@Log4j2
 public class OffsetDateTimeValueSemanticsProvider 
 extends TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
 
@@ -56,10 +58,27 @@ extends TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
         
         super.updateParsers();
 
-        setEncodingFormatter(
-                DateTimeFormatter.ofPattern(basicDateTime, Locale.getDefault()));
-        
-        setTitleFormatter(formatterFromConfig(FormatIdentifier.DATETIME, "medium"));
+        setEncodingFormatter(DateTimeFormatter.ofPattern(basicDateTime, Locale.getDefault()));
+
+        val configuredNameOrPattern = getConfiguration().getValueTypes().getJavaTime().getOffsetDateTime().getFormat();
+
+        val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+
+        DateTimeFormatter result = null;
+        if(formatter!=null) {
+            result = formatter;
+        } else {
+            try {
+                result = DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+            } catch (Exception e) {
+                log.warn(e);
+            }
+            if (result == null) {
+                result = lookupNamedFormatterElseFail("medium");
+            }
+        }
+
+        setTitleFormatter(result);
         
         
     }