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

Reply via email to