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

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 6664478fd9674bcb575257c9c68ade2eb1521676
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Tue May 24 18:44:33 2022 +0200

    More compact representation of the temporal coordinate in a (x,y,t) tuple.
---
 .../org/apache/sis/geometry/CoordinateFormat.java  | 27 +++++++++++++++++++++-
 .../java/org/apache/sis/geometry/package-info.java |  2 +-
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
index 7fd75e5ea1..e00e4329e7 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
@@ -100,7 +100,7 @@ import static java.util.logging.Logger.getLogger;
  * transform the position} before to format it.</p>
  *
  * @author  Martin Desruisseaux (MPO, IRD, Geomatys)
- * @version 1.2
+ * @version 1.3
  *
  * @see AngleFormat
  * @see org.apache.sis.measure.UnitFormat
@@ -1333,6 +1333,31 @@ abort:  if (dimensions != 0 && groundAccuracy != null) 
try {
         return DirectPosition.class;
     }
 
+    /**
+     * Creates a new format to use for parsing and formatting values of the 
given type.
+     * This method is invoked by {@link #getFormat(Class)} the first time that 
a format
+     * is needed for the given type.
+     *
+     * <p>See {@linkplain CompoundFormat#createFormat(Class) super-class} for 
a description of recognized types.
+     * This method override uses the short date pattern instead of the 
(longer) default one.</p>
+     *
+     * @param  valueType  the base type of values to parse or format.
+     * @return the format to use for parsing of formatting values of the given 
type, or {@code null} if none.
+     */
+    @Override
+    protected Format createFormat(final Class<?> valueType) {
+        if (valueType == Date.class) {
+            final Locale locale = super.getLocale();
+            if (!Locale.ROOT.equals(locale)) {
+                final DateFormat format;
+                format = DateFormat.getDateTimeInstance(DateFormat.SHORT, 
DateFormat.SHORT, locale);
+                format.setTimeZone(getTimeZone());
+                return format;
+            }
+        }
+        return super.createFormat(valueType);
+    }
+
     /**
      * Formats the given coordinate.
      * The type of each coordinate value (number, angle or date) is determined 
by the CRS of the given
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
index 16eb301b67..f4500dbb9a 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/package-info.java
@@ -87,7 +87,7 @@
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Alexis Manin (Geomatys)
- * @version 1.2
+ * @version 1.3
  * @since   0.3
  * @module
  */

Reply via email to