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 95f6cea ISIS-2340: more temporal format fixes
95f6cea is described below
commit 95f6ceaeea4065a724b45aa55b4ca232c8ca8f07
Author: Andi Huber <[email protected]>
AuthorDate: Sat Aug 15 14:46:23 2020 +0200
ISIS-2340: more temporal format fixes
---
.../TemporalValueSemanticsProviderAbstract.java | 12 +++++-
.../localdate/LocalDateValueSemanticsProvider.java | 21 +++--------
.../LocalDateTimeValueSemanticsProvider.java | 40 +++++++++-----------
.../localtime/LocalTimeValueSemanticsProvider.java | 44 ++++++++++------------
4 files changed, 51 insertions(+), 66 deletions(-)
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 dc0f40e..5288ffb 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
@@ -47,6 +47,7 @@ import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
/**
* Common base for {@link java.time.temporal.Temporal} types.
@@ -55,7 +56,7 @@ import lombok.val;
*
* @param <T> implementing {@link java.time.temporal.Temporal} type
*/
-//@Log4j2
+@Log4j2
public abstract class TemporalValueSemanticsProviderAbstract<T extends
Temporal>
extends ValueSemanticsProviderAndFacetAbstract<T>
implements TemporalValueFacet<T> {
@@ -134,7 +135,14 @@ implements TemporalValueFacet<T> {
.orElseThrow(()->_Exceptions.noSuchElement("unknown format
name %s", formatName));
}
-
+ protected Optional<DateTimeFormatter> formatterFromPattern(String pattern)
{
+ try {
+ Optional.of(DateTimeFormatter.ofPattern(pattern,
Locale.getDefault()));
+ } catch (Exception e) {
+ log.warn(e);
+ }
+ return Optional.empty();
+ }
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 c59d590..47f72a1 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
@@ -21,7 +21,7 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.localdate;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.Locale;
+import java.time.format.FormatStyle;
import java.util.Optional;
import java.util.stream.Stream;
@@ -31,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 LocalDateValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalDate> {
@@ -55,29 +54,19 @@ extends TemporalValueSemanticsProviderAbstract<LocalDate> {
val configuredNameOrPattern =
getConfiguration().getValueTypes().getJavaTime().getLocalDate().getFormat();
- // walk through 4 methods of generating a formatter, first one to
return non empty wins
+ // 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::ofLocalizedDate),
lookupNamedFormatter(configuredNameOrPattern),
- formatterFromPattern(configuredNameOrPattern),
-
lookupFormatStyle("medium").map(DateTimeFormatter::ofLocalizedDate)
+ formatterFromPattern(configuredNameOrPattern)
)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst()
- .get();
+ .orElseGet(()->DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM));
// fallback
setTitleFormatter(formatter);
}
- private Optional<DateTimeFormatter> formatterFromPattern(String pattern) {
- try {
- Optional.ofNullable(DateTimeFormatter.ofPattern(pattern,
Locale.getDefault()));
- } catch (Exception e) {
- log.warn(e);
- }
- return Optional.empty();
- }
-
}
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 98c175f..f56b076 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
@@ -21,7 +21,10 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.localdatetime;
import java.time.LocalDateTime;
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,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 LocalDateTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalDateTime> {
@@ -50,9 +51,6 @@ extends TemporalValueSemanticsProviderAbstract<LocalDateTime>
{
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);
@@ -64,23 +62,19 @@ extends
TemporalValueSemanticsProviderAbstract<LocalDateTime> {
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);
+
+ // 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
+
+ setTitleFormatter(formatter);
}
}
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 185e327..99b8ffc 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
@@ -21,7 +21,10 @@ package
org.apache.isis.core.metamodel.facets.value.temporal.localtime;
import java.time.LocalTime;
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,9 +32,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 LocalTimeValueSemanticsProvider
extends TemporalValueSemanticsProviderAbstract<LocalTime> {
@@ -49,35 +51,27 @@ extends TemporalValueSemanticsProviderAbstract<LocalTime> {
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(
- DateTimeFormatter.ofPattern(hourMinuteSecondMillis,
Locale.getDefault()));
- DateTimeFormatter result = null;
-
+
setEncodingFormatter(DateTimeFormatter.ofPattern(hourMinuteSecondMillis,
Locale.getDefault()));
+
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);
+ // 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
+
+ setTitleFormatter(formatter);
+
}
-
}