This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 1fa71c7 ISIS-2340: partly fixing zoned java.time formats
1fa71c7 is described below
commit 1fa71c739160038c65f268f9c0a5235518da10c2
Author: Andi Huber <[email protected]>
AuthorDate: Sat Aug 15 14:56:26 2020 +0200
ISIS-2340: partly fixing zoned java.time formats
---
.../OffsetDateTimeValueSemanticsProvider.java | 38 ++++++++---------
.../OffsetTimeValueSemanticsProvider.java | 48 +++++++++-------------
.../ZonedDateTimeValueSemanticsProvider.java | 45 +++++++++-----------
3 files changed, 54 insertions(+), 77 deletions(-)
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 c15170e..12c3cd1 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
@@ -21,7 +21,10 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.offsetdatetime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
+import java.time.format.FormatStyle;
import java.util.Locale;
+import java.util.Optional;
+import java.util.stream.Stream;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
@@ -29,10 +32,9 @@ 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
+//@Log4j2
public class OffsetDateTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
@@ -49,9 +51,6 @@ extends
TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
val basicDateTimeNoMillis = "yyyyMMdd'T'HHmmssZ";
val basicDateTime = "yyyyMMdd'T'HHmmss.SSSZ";
- super.addNamedFormat("long", "LL");
- super.addNamedFormat("medium", "MM");
- super.addNamedFormat("short", "SS");
super.addNamedFormat("iso", basicDateTimeNoMillis);
super.addNamedFormat("iso_encoding", basicDateTime);
@@ -61,24 +60,19 @@ extends
TemporalValueSemanticsProviderAbstract<OffsetDateTime> {
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);
+ // walk through 3 methods of generating a formatter, first one to
return non empty wins
+ val formatter = Stream.<Optional<DateTimeFormatter>>of(
+
lookupFormatStyle(configuredNameOrPattern).map(DateTimeFormatter::ofLocalizedDateTime),
+ lookupNamedFormatter(configuredNameOrPattern),
+ formatterFromPattern(configuredNameOrPattern)
+ )
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .findFirst()
+
.orElseGet(()->DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)); //
fallback
+ //TODO those FormatStyle based formatters potentially need additional
zone information
+ setTitleFormatter(formatter);
}
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 ea273ce..81b070d 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
@@ -21,7 +21,9 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.offsettime;
import java.time.OffsetTime;
import java.time.format.DateTimeFormatter;
-import java.util.Locale;
+import java.time.format.FormatStyle;
+import java.util.Optional;
+import java.util.stream.Stream;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
@@ -29,9 +31,8 @@ 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
+//@Log4j2
public class OffsetTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<OffsetTime> {
@@ -48,39 +49,28 @@ extends TemporalValueSemanticsProviderAbstract<OffsetTime> {
val basicTimeNoMillis = "HHmmssZ";
val basicTime = "HHmmss.SSSZ";
- super.addNamedFormat("long", "-L");
- super.addNamedFormat("medium", "-M");
- super.addNamedFormat("short", "-S");
super.addNamedFormat("iso", basicTimeNoMillis);
super.addNamedFormat("iso_encoding", basicTime);
super.updateParsers();
setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
- 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");
-
+
+ // walk through 3 methods of generating a formatter, first one to
return non empty wins
+ val formatter = Stream.<Optional<DateTimeFormatter>>of(
+
lookupFormatStyle(configuredNameOrPattern).map(DateTimeFormatter::ofLocalizedTime),
+ lookupNamedFormatter(configuredNameOrPattern),
+ formatterFromPattern(configuredNameOrPattern)
+ )
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .findFirst()
+ .orElseGet(()->DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM));
// fallback
+
+ //TODO those FormatStyle based formatters potentially need additional
zone information
+ setTitleFormatter(formatter);
}
-
-
}
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 62a84c0f..73517aa 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
@@ -21,7 +21,9 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.zoneddatetime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.Locale;
+import java.time.format.FormatStyle;
+import java.util.Optional;
+import java.util.stream.Stream;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.value.temporal.TemporalAdjust;
@@ -29,10 +31,8 @@ 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
+//@Log4j2
public class ZonedDateTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<ZonedDateTime> {
@@ -49,36 +49,29 @@ extends
TemporalValueSemanticsProviderAbstract<ZonedDateTime> {
val basicDateTimeNoMillis = "yyyyMMdd'T'HHmmssZ";
val basicDateTime = "yyyyMMdd'T'HHmmss.SSSZ";
- super.addNamedFormat("long", "LL");
- super.addNamedFormat("medium", "MM");
- super.addNamedFormat("short", "SS");
super.addNamedFormat("iso", basicDateTimeNoMillis);
super.addNamedFormat("iso_encoding", basicDateTime);
super.updateParsers();
setEncodingFormatter(lookupNamedFormatterElseFail("iso_encoding"));
- 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");
-
+
+ // walk through 3 methods of generating a formatter, first one to
return non empty wins
+ val formatter = Stream.<Optional<DateTimeFormatter>>of(
+
lookupFormatStyle(configuredNameOrPattern).map(DateTimeFormatter::ofLocalizedDateTime),
+ lookupNamedFormatter(configuredNameOrPattern),
+ formatterFromPattern(configuredNameOrPattern)
+ )
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .findFirst()
+
.orElseGet(()->DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)); //
fallback
+
+ //TODO those FormatStyle based formatters potentially need additional
zone information
+ setTitleFormatter(formatter);
+
}