This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch WW-5016-uses-proper-format
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/WW-5016-uses-proper-format by 
this push:
     new 59932a5  WW-5016 Reduces calls to TextProvider
59932a5 is described below

commit 59932a51799890582859938a355546b75b5f6834
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Mon Feb 21 19:31:52 2022 +0100

    WW-5016 Reduces calls to TextProvider
---
 .../main/java/org/apache/struts2/components/Date.java | 19 ++++++++++---------
 .../apache/struts2/components/date/DateFormatter.java | 11 +++++++++--
 .../components/date/DateTimeFormatterAdapter.java     | 10 +++-------
 .../components/date/SimpleDateFormatAdapter.java      |  8 ++------
 4 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/core/src/main/java/org/apache/struts2/components/Date.java 
b/core/src/main/java/org/apache/struts2/components/Date.java
index 0560057..ad174fd 100644
--- a/core/src/main/java/org/apache/struts2/components/Date.java
+++ b/core/src/main/java/org/apache/struts2/components/Date.java
@@ -23,7 +23,6 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.components.date.DateFormatter;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
@@ -355,15 +354,17 @@ public class Date extends ContextBean {
     }
 
     private String formatDate(TextProvider textProvider, ZonedDateTime date) {
-        // if the format is not specified, fall back using the defined 
property DATETAG_PROPERTY
-        String globalFormat = textProvider.getText(Date.DATETAG_PROPERTY);
-        if (DATETAG_PROPERTY.equals(globalFormat)) {
-            // if tp.getText can not find the property then the
-            // returned string is the same as input = DATETAG_PROPERTY
-            globalFormat = null;
+        String useFormat = format;
+        if (useFormat == null) {
+            // if the format is not specified, fall back using the defined 
property DATETAG_PROPERTY
+            useFormat = textProvider.getText(DATETAG_PROPERTY);
+            if (DATETAG_PROPERTY.equals(useFormat)) {
+                // if tp.getText can not find the property then the
+                // returned string is the same as input = DATETAG_PROPERTY
+                useFormat = null;
+            }
         }
-
-        return dateFormatter.format(date, format, globalFormat);
+        return dateFormatter.format(date, useFormat);
     }
 
     private ZoneId getTimeZone() {
diff --git 
a/core/src/main/java/org/apache/struts2/components/date/DateFormatter.java 
b/core/src/main/java/org/apache/struts2/components/date/DateFormatter.java
index 7ad276a..282daaa 100644
--- a/core/src/main/java/org/apache/struts2/components/date/DateFormatter.java
+++ b/core/src/main/java/org/apache/struts2/components/date/DateFormatter.java
@@ -23,11 +23,18 @@ import java.time.temporal.TemporalAccessor;
 /**
  * Allows defines a wrapper around different formatting APIs, like old 
SimpleDateFormat
  * and new DateTimeFormatter introduced in Java 8 Date/Time API
- *
+ * <p>
  * New instance will be injected using {@link 
org.apache.struts2.StrutsConstants#STRUTS_DATE_FORMATTER}
  */
 public interface DateFormatter {
 
-    String format(TemporalAccessor temporal, String format, String 
defaultFormat);
+    /**
+     * Formats provided temporal with the given format
+     *
+     * @param temporal Java 8 {@link TemporalAccessor}
+     * @param format   implementation specific format
+     * @return a string representation of the formatted `temporal`
+     */
+    String format(TemporalAccessor temporal, String format);
 
 }
diff --git 
a/core/src/main/java/org/apache/struts2/components/date/DateTimeFormatterAdapter.java
 
b/core/src/main/java/org/apache/struts2/components/date/DateTimeFormatterAdapter.java
index 64bb4b1..05767ab 100644
--- 
a/core/src/main/java/org/apache/struts2/components/date/DateTimeFormatterAdapter.java
+++ 
b/core/src/main/java/org/apache/struts2/components/date/DateTimeFormatterAdapter.java
@@ -28,16 +28,12 @@ import java.util.Locale;
 public class DateTimeFormatterAdapter implements DateFormatter {
 
     @Override
-    public String format(TemporalAccessor temporal, String format, String 
defaultFormat) {
+    public String format(TemporalAccessor temporal, String format) {
         DateTimeFormatter dtf;
         Locale locale = ActionContext.getContext().getLocale();
         if (format == null) {
-            if (defaultFormat != null) {
-                dtf = DateTimeFormatter.ofPattern(defaultFormat, locale);
-            } else {
-                dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
-                    .withLocale(locale);
-            }
+            dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
+                .withLocale(locale);
         } else {
             dtf = DateTimeFormatter.ofPattern(format, locale);
         }
diff --git 
a/core/src/main/java/org/apache/struts2/components/date/SimpleDateFormatAdapter.java
 
b/core/src/main/java/org/apache/struts2/components/date/SimpleDateFormatAdapter.java
index e9f29f0..38f3c52 100644
--- 
a/core/src/main/java/org/apache/struts2/components/date/SimpleDateFormatAdapter.java
+++ 
b/core/src/main/java/org/apache/struts2/components/date/SimpleDateFormatAdapter.java
@@ -30,15 +30,11 @@ import java.util.Locale;
 public class SimpleDateFormatAdapter implements DateFormatter {
 
     @Override
-    public String format(TemporalAccessor temporal, String format, String 
defaultFormat) {
+    public String format(TemporalAccessor temporal, String format) {
         DateFormat df;
         Locale locale = ActionContext.getContext().getLocale();
         if (format == null) {
-            if (defaultFormat != null) {
-                df = new SimpleDateFormat(defaultFormat, locale);
-            } else {
-                df = SimpleDateFormat.getDateInstance(DateFormat.MEDIUM, 
locale);
-            }
+            df = SimpleDateFormat.getDateInstance(DateFormat.MEDIUM, locale);
         } else {
             df = new SimpleDateFormat(format, locale);
         }

Reply via email to