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:12:07 UTC
[isis] 31/36: ISIS-2264: further conversions from
isis.value-types.format["xxx"] to isis.value-types.aaa.bbb.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 7f349f948750fefec7daaa1b40f944d72eb7e256
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 17 01:54:11 2020 +0100
ISIS-2264: further conversions from isis.value-types.format["xxx"] to isis.value-types.aaa.bbb.format
---
.../modules/mignotes/pages/migrating-to-2.0.0.adoc | 17 +++++++
.../apache/isis/core/config/IsisConfiguration.java | 52 +++++++++++++++++-----
.../ValueSemanticsProviderAndFacetAbstract.java | 18 --------
.../bytes/ByteValueSemanticsProviderAbstract.java | 1 -
.../JodaLocalDateValueSemanticsProvider.java | 4 +-
.../JodaLocalDateTimeValueSemanticsProvider.java | 1 -
.../DoubleValueSemanticsProviderAbstract.java | 1 -
.../FloatValueSemanticsProviderAbstract.java | 1 -
.../integer/IntValueSemanticsProviderAbstract.java | 1 -
.../longs/LongValueSemanticsProviderAbstract.java | 1 -
.../ShortValueSemanticsProviderAbstract.java | 3 +-
.../TemporalValueSemanticsProviderAbstract.java | 20 ---------
.../localdate/LocalDateValueSemanticsProvider.java | 27 ++++++++++-
.../LocalDateTimeValueSemanticsProvider.java | 1 -
.../localtime/LocalTimeValueSemanticsProvider.java | 22 ++++++++-
.../OffsetDateTimeValueSemanticsProvider.java | 1 -
.../OffsetTimeValueSemanticsProvider.java | 28 +++++++++++-
.../ZonedDateTimeValueSemanticsProvider.java | 29 ++++++++++--
.../JavaSqlTimeStampValueSemanticsProvider.java | 14 +++---
.../PercentageValueSemanticsProvider.java | 1 -
20 files changed, 161 insertions(+), 82 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 2edbad4..2d2ba0b 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
@@ -672,10 +672,27 @@ isis.value-types. +
isis.value-types. +
{nbsp}{nbsp}joda.date-time.format
+isis.value-types. +
+{nbsp}{nbsp}joda.local-date.format
+
|isis.value.format["time"]
|isis.value-types. +
{nbsp}{nbsp}java-sql.time.format
+isis.value-types. +
+{nbsp}{nbsp}java-time.offset-time.format
+
+isis.value-types. +
+{nbsp}{nbsp}java-time.local-time.format
+
+isis.value-types. +
+{nbsp}{nbsp}zoned-date-time.local-time.format
+
+|isis.value.format["timestamp"]
+|isis.value-types. +
+{nbsp}{nbsp}java-sql.timestamp.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 8342ad4..c06b369 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
@@ -1251,6 +1251,31 @@ public class IsisConfiguration {
public static class OffsetDateTime {
private String format = "medium";
}
+
+ private final OffsetTime offsetTime = new OffsetTime();
+ @Data
+ public static class OffsetTime {
+ private String format = "medium";
+ }
+
+ private final LocalDate localDate = new LocalDate();
+ @Data
+ public static class LocalDate {
+ // lower case
+ private String format = "medium";
+ }
+
+ private final LocalTime localTime = new LocalTime();
+ @Data
+ public static class LocalTime {
+ private String format = "medium";
+ }
+
+ private final ZonedDateTime zonedDateTime = new ZonedDateTime();
+ @Data
+ public static class ZonedDateTime {
+ private String format = "medium";
+ }
}
private final JavaUtil javaUtil = new JavaUtil();
@@ -1282,6 +1307,13 @@ public class IsisConfiguration {
private String format = "short";
}
+ private final Timestamp timestamp = new Timestamp();
+ @Data
+ public static class Timestamp {
+ // lower case
+ private String format = "short";
+ }
+
}
private final Joda joda = new Joda();
@@ -1293,6 +1325,14 @@ public class IsisConfiguration {
// lower case
private String format = "medium";
}
+
+ private final LocalDate localDate = new LocalDate();
+ @Data
+ public static class LocalDate {
+ // lower case
+ private String format = "medium";
+ }
+
private final DateTime dateTime = new DateTime();
@Data
public static class DateTime {
@@ -1325,18 +1365,6 @@ public class IsisConfiguration {
private Map<String, String> format = new HashMap<>();
public enum FormatIdentifier {
- /**
- * Key to indicate how LocalDate should be parsed/rendered.
- * <p>
- * eg: {@code isis.value.format.date=iso}
- * <p>
- * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
- * <code>org.apache.isis.core.metamodel.facets.value.datejdk8local.Jdk8LocalDateValueSemanticsProvider.NAMED_TITLE_FORMATTERS</code>).
- * Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
- */
- DATE,
- TIMESTAMP,
- TIME,
}
private final Money money = new 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 bd9c7a1..d590ddd 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
@@ -19,10 +19,7 @@
package org.apache.isis.core.metamodel.facets.object.value.vsp;
-import java.text.DecimalFormat;
import java.text.Format;
-import java.text.NumberFormat;
-import java.util.Locale;
import java.util.Map;
import org.apache.isis.applib.adapters.DefaultsProvider;
@@ -31,8 +28,6 @@ import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.applib.clock.Clock;
import org.apache.isis.core.commons.exceptions.UnknownTypeException;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
-import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -281,19 +276,6 @@ implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProv
// Helper: Locale handling
// ///////////////////////////////////////////////////////////////////////////
- protected NumberFormat determineNumberFormat(FormatIdentifier formatIdentifier) {
- final String formatRequired = getConfiguration()
- .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), null);
-
- return formatRequired != null
- ? new DecimalFormat(formatRequired)
- : NumberFormat.getNumberInstance(findLocale());
- }
-
- private Locale findLocale() {
- return getConfiguration().getCore().getRuntime().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault());
- }
-
// //////////////////////////////////////////////////////////
// Helper: createAdapter
// //////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
index 75471db..b832017 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
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 71b648f..967caf1 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
@@ -32,7 +32,6 @@ import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
@@ -129,8 +128,7 @@ public class JodaLocalDateValueSemanticsProvider extends ValueSemanticsProviderA
public JodaLocalDateValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- String configuredNameOrPattern = getConfiguration()
- .getValue().getFormat().getOrDefault(FormatIdentifier.DATE.name().toLowerCase(), "medium");
+ String configuredNameOrPattern = getConfiguration().getValueTypes().getJoda().getLocalDate().getFormat();
updateTitleStringFormatter(configuredNameOrPattern);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
index 77bd9b8..c783f71 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
@@ -33,7 +33,6 @@ import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.commons.internal.collections._Maps;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
index be18da4..af98b03 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
index 6087bd3..042f3a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
index af31781..8819760 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
index 7fe5644..3437779 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
index c129892..d95e639 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.commons.LocaleUtil;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -51,7 +50,7 @@ public class ShortValueSemanticsProviderAbstract extends ValueSemanticsProviderA
format = xdetermineNumberFormat();
}
protected NumberFormat xdetermineNumberFormat() {
- final String formatRequired = getConfiguration().getValue().getFormat().get("short");
+ final String formatRequired = getConfiguration().getValueTypes().getJavaLang().getShort().getFormat();
return formatRequired != null
? new DecimalFormat(formatRequired)
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 621a431..e63ceef 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
@@ -34,7 +34,6 @@ import org.apache.isis.core.commons.collections.Can;
import org.apache.isis.core.commons.internal.base._Casts;
import org.apache.isis.core.commons.internal.collections._Maps;
import org.apache.isis.core.commons.internal.exceptions._Exceptions;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
@@ -117,26 +116,7 @@ implements TemporalValueFacet<T> {
.orElseThrow(()->_Exceptions.noSuchElement("unknown format name %s", formatName));
}
- protected DateTimeFormatter formatterFromConfig(FormatIdentifier formatIdentifier, String namedFallback) {
- val configuredNameOrPattern = getConfiguration()
- .getValue().getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), namedFallback);
-
- val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
- if(formatter!=null) {
- return formatter;
- }
-
- try {
- return DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
- } catch (Exception e) {
- log.warn(e);
- }
-
- return lookupNamedFormatterElseFail(namedFallback);
-
- }
-
protected void updateParsers() {
parsers = Can.ofCollection(namedFormatters.values())
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java
index 56b069c..2d0bde0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localdate/LocalDateValueSemanticsProvider.java
@@ -20,13 +20,18 @@
package org.apache.isis.core.metamodel.facets.value.temporal.localdate;
import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
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 LocalDateValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalDate> {
@@ -48,7 +53,25 @@ extends TemporalValueSemanticsProviderAbstract<LocalDate> {
super.updateParsers();
setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
- setTitleFormatter(formatterFromConfig(FormatIdentifier.DATE, "medium"));
+
+ val configuredNameOrPattern = getConfiguration().getValueTypes().getJavaTime().getLocalDate().getFormat();
+
+ val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+
+ setTitleFormatter(formatter != null ? formatter : formatterFrom(configuredNameOrPattern));
+ }
+
+ private DateTimeFormatter formatterFrom(String configuredNameOrPattern) {
+ DateTimeFormatter result = null;
+ try {
+ result = DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ if (result == null) {
+ result = lookupNamedFormatterElseFail("medium");
+ }
+ return result;
}
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 07da58d..98c175f 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
@@ -23,7 +23,6 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java
index 860d210..185e327 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/localtime/LocalTimeValueSemanticsProvider.java
@@ -23,14 +23,15 @@ import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
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 LocalTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalTime> {
@@ -57,8 +58,25 @@ extends TemporalValueSemanticsProviderAbstract<LocalTime> {
setEncodingFormatter(
DateTimeFormatter.ofPattern(hourMinuteSecondMillis, Locale.getDefault()));
- setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+ DateTimeFormatter result = null;
+ val configuredNameOrPattern = getConfiguration().getValueTypes().getJavaTime().getLocalTime().getFormat();
+
+ val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(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);
}
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 538a7b1..c15170e 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
@@ -23,7 +23,6 @@ import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalValueFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java
index 980825f..ea273ce 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/offsettime/OffsetTimeValueSemanticsProvider.java
@@ -20,15 +20,18 @@
package org.apache.isis.core.metamodel.facets.value.temporal.offsettime;
import java.time.OffsetTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
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 OffsetTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<OffsetTime> {
@@ -53,7 +56,28 @@ extends TemporalValueSemanticsProviderAbstract<OffsetTime> {
super.updateParsers();
setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
- setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+ final DateTimeFormatter formatter = formatterFromConfig();
+
+ setTitleFormatter(formatter);
+ }
+
+ private DateTimeFormatter formatterFromConfig() {
+
+ val configuredNameOrPattern = getConfiguration().getValueTypes().getJavaTime().getOffsetTime().getFormat();
+
+ val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+ if(formatter!=null) {
+ return formatter;
+ }
+
+ try {
+ return DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+ } catch (Exception e) {
+ log.warn(e);
+ }
+
+ return lookupNamedFormatterElseFail("medium");
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java
index ce53c46..62a84c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/zoneddatetime/ZonedDateTimeValueSemanticsProvider.java
@@ -20,17 +20,20 @@
package org.apache.isis.core.metamodel.facets.value.temporal.zoneddatetime;
import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
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 ZonedDateTimeValueSemanticsProvider
+@Log4j2
+public class ZonedDateTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<ZonedDateTime> {
public static final int MAX_LENGTH = 36;
@@ -55,8 +58,28 @@ extends TemporalValueSemanticsProviderAbstract<ZonedDateTime> {
super.updateParsers();
setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
- setTitleFormatter(formatterFromConfig(FormatIdentifier.TIME, "medium"));
+ setTitleFormatter(formatterFromConfig());
}
+ private DateTimeFormatter formatterFromConfig() {
+
+ val configuredNameOrPattern = getConfiguration().getValueTypes().getJavaTime().getZonedDateTime().getFormat();
+
+ val formatter = lookupNamedFormatter(configuredNameOrPattern).orElse(null);
+ if(formatter!=null) {
+ return formatter;
+ }
+
+ try {
+ return DateTimeFormatter.ofPattern(configuredNameOrPattern, Locale.getDefault());
+ } catch (Exception e) {
+ log.warn(e);
+ }
+
+ return lookupNamedFormatterElseFail("medium");
+
+ }
+
+
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
index 2b62cad..55cefb3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
@@ -63,16 +63,12 @@ extends ValueSemanticsProviderAbstractTemporal<Timestamp> {
public JavaSqlTimeStampValueSemanticsProvider(final FacetHolder holder) {
super("timestamp", type(), holder, java.sql.Timestamp.class, 25, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, null);
- configuredFormat = getConfiguration().getValue().getFormat().getOrDefault("timestamp", "short").toLowerCase().trim();
+ configuredFormat = getConfiguration().getValueTypes().getJavaSql().getTimestamp().getFormat();
- buildFormat(configuredFormat);
-
- final String formatRequired = getConfiguration().getValue().getFormat().get("timestamp");
-
- if (formatRequired == null) {
- format = formats().get("short");
- } else {
- setMask(formatRequired);
+ final Map<String, DateFormat> formats1 = formats();
+ format = formats1.get(configuredFormat);
+ if (format == null) {
+ setMask(configuredFormat);
}
}
diff --git a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
index e9b50ad..c1842d8 100644
--- a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
+++ b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
@@ -25,7 +25,6 @@ import java.text.ParseException;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.legacy.applib.value.Percentage;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;