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);
}