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:50 UTC
[isis] 14/36: ISIS-2264: isis.value.format["datetime"] -> ALSO TO:
isis.value-types.java-time.local-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 4a00d1440481bf8fe6a75ffc8cf3f2681fbecab1
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 23:39:16 2020 +0100
ISIS-2264: isis.value.format["datetime"] -> ALSO TO: isis.value-types.java-time.local-date-time.format
---
.../modules/mignotes/pages/migrating-to-2.0.0.adoc | 4 ++++
.../apache/isis/core/config/IsisConfiguration.java | 12 +++++-----
.../ValueSemanticsProviderAndFacetAbstract.java | 2 +-
.../DateAndTimeValueSemanticsProviderAbstract.java | 2 +-
.../ValueSemanticsProviderAbstractTemporal.java | 2 +-
.../date/DateValueSemanticsProviderAbstract.java | 3 +--
.../JodaLocalDateValueSemanticsProvider.java | 2 +-
...JodaDateTimeValueSemanticsProviderAbstract.java | 2 +-
.../TemporalValueSemanticsProviderAbstract.java | 5 ++--
.../LocalDateTimeValueSemanticsProvider.java | 27 +++++++++++++++++++---
.../time/TimeValueSemanticsProviderAbstract.java | 2 +-
.../TimeStampValueSemanticsProviderAbstract.java | 4 ++--
12 files changed, 45 insertions(+), 22 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 9f1da5b..61fdf2f 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
@@ -656,6 +656,10 @@ isis.value-types. +
|isis.value-types. +
{nbsp}{nbsp}joda.local-date-time.format
+isis.value-types. +
+{nbsp}{nbsp}java-time.local-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 6269d8e..b496acd 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
@@ -1239,7 +1239,11 @@ public class IsisConfiguration {
private final JavaTime javaTime = new JavaTime();
@Data
public static class JavaTime {
-
+ private final Joda.LocalDateTime localDateTime = new Joda.LocalDateTime();
+ @Data
+ public static class LocalDateTime {
+ private String format = "medium";
+ }
}
private final JavaUtil javaUtil = new JavaUtil();
@@ -1305,11 +1309,7 @@ public class IsisConfiguration {
TIMESTAMP,
TIME,
}
-
- public String getFormatOrElse(FormatIdentifier formatIdentifier, String defaultFormat) {
- return getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat);
- }
-
+
private final Money money = new Money();
@Data
public static class Money {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index d3b0de5..bd9c7a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -283,7 +283,7 @@ implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProv
protected NumberFormat determineNumberFormat(FormatIdentifier formatIdentifier) {
final String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(formatIdentifier, null);
+ .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), null);
return formatRequired != null
? new DecimalFormat(formatRequired)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
index 3f14052..b42dc5f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
@@ -49,7 +49,7 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
super(FormatIdentifier.DATETIME, holder, adaptedClass, TYPICAL_LENGTH, immutability, equalByContent, (T) DEFAULT_VALUE);
final String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(FormatIdentifier.DATETIME, null);
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATETIME.name().toLowerCase(), null);
if (formatRequired == null) {
format = formats().get(defaultFormat());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
index dfbdcdc..8c47763 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
@@ -115,7 +115,7 @@ implements DateValueFacet {
this.propertyType = formatIdentifier.name().toLowerCase();
configuredFormat = getConfiguration()
- .getValue().getFormatOrElse(formatIdentifier, defaultFormat()).toLowerCase().trim();
+ .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat()).toLowerCase().trim();
buildFormat(configuredFormat);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
index 4772fec..de706b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
@@ -44,8 +44,7 @@ public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanti
public DateValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
super(FormatIdentifier.DATE, holder, adaptedClass, 12, immutability, equalByContent, defaultValue);
- final String formatRequired = getConfiguration().getValue()
- .getFormatOrElse(FormatIdentifier.DATE, null);
+ final String formatRequired = getConfiguration().getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), null);
if (formatRequired == null) {
format = formats().get(defaultFormat());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
index 4a1bebb..71b648f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
@@ -130,7 +130,7 @@ public class JodaLocalDateValueSemanticsProvider extends ValueSemanticsProviderA
super(type(), holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
String configuredNameOrPattern = getConfiguration()
- .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), "medium");
updateTitleStringFormatter(configuredNameOrPattern);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
index adac98c..bb016bd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
@@ -45,7 +45,7 @@ public abstract class JodaDateTimeValueSemanticsProviderAbstract<T> extends Valu
super(FormatIdentifier.DATE, holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(FormatIdentifier.DATE, null);
+ .getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), null);
if (formatRequired == null) {
format = formats().get(defaultFormat());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
index 1876686..621a431 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
@@ -118,10 +118,9 @@ implements TemporalValueFacet<T> {
}
protected DateTimeFormatter formatterFromConfig(FormatIdentifier formatIdentifier, String namedFallback) {
-
+
val configuredNameOrPattern = getConfiguration()
- .getValue()
- .getFormatOrElse(formatIdentifier, namedFallback);
+ .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), namedFallback);
val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
if(formatter!=null) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java
index df3789b..07da58d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdatetime/LocalDateTimeValueSemanticsProvider.java
@@ -30,9 +30,11 @@ 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;
-public class LocalDateTimeValueSemanticsProvider
+@Log4j2
+public class LocalDateTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalDateTime> {
public static final int MAX_LENGTH = 36;
@@ -59,8 +61,27 @@ extends TemporalValueSemanticsProviderAbstract<LocalDateTime> {
setEncodingFormatter(
DateTimeFormatter.ofPattern(dateHourMinuteSecondMillis, Locale.getDefault()));
- setTitleFormatter(formatterFromConfig(FormatIdentifier.DATETIME, "medium"));
-
+
+ val configuredNameOrPattern =
+ getConfiguration().getValueTypes().getJavaTime().getLocalDateTime().getFormat();
+
+ val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+
+ DateTimeFormatter titleFormatter = null;
+ if(formatter!=null) {
+ titleFormatter = formatter;
+ } else {
+ try {
+ titleFormatter = DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ if (titleFormatter == null) {
+ titleFormatter = lookupNamedFormatterElseFail("medium");
+ }
+ }
+
+ setTitleFormatter(titleFormatter);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
index 3fda3df..1338340 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
@@ -46,7 +46,7 @@ extends ValueSemanticsProviderAbstractTemporal<T> {
super(FormatIdentifier.TIME, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
final String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(FormatIdentifier.TIME, null);
+ .getValue().getFormat().getOrDefault(FormatIdentifier.TIME.name().toLowerCase(), null);
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
index ee57d58..783f741 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
@@ -43,9 +43,9 @@ abstract class TimeStampValueSemanticsProviderAbstract<T> extends ValueSemantics
@SuppressWarnings("unchecked")
public TimeStampValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass) {
super(FormatIdentifier.TIMESTAMP, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
-
+
final String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(FormatIdentifier.TIMESTAMP, null);
+ .getValue().getFormat().getOrDefault(FormatIdentifier.TIMESTAMP.name().toLowerCase(), null);
if (formatRequired == null) {
format = formats().get(defaultFormat());