You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2024/06/28 04:09:51 UTC

(sis) branch main updated (86b20ccbda -> 975aed6c18)

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

desruisseaux pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/sis.git


    from 86b20ccbda Merge branch 'geoapi-3.1'
     add 5077c372fd Fix shapefile DBF field parsing, tolerate character patterns as missing number values
     add 8032c960ae `ControlledVocabulary.identifier()` become optional. This change helped to see potential NullPointerException.
     add 6011e9f39f Consolidation in the way to get or create `OperationMethod`: - No longer specify the number of dimensions in constructor. - Search of predefined instance based only on `MathTransformFactory`,   using a convenience method added in `ReferencingFactoryContainer`.
     add b22144ecf8 Merge branch 'geoapi-4.0' into geoapi-3.1
     add bede3d4c05 Partial revert of the previous merge: the `CodeList.identifier()` method already existed in GeoAPI 3.0, we cannot change its return type (from `String` to `Optional<String>`) in GeoAPI 3.1.
     new 975aed6c18 Merge branch 'geoapi-3.1' - Consolidation in the way to get or create `OperationMethod` - Fix in shapefile DBF field parsing

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/sis/coverage/grid/PixelInCell.java  |  5 ++-
 .../org/apache/sis/temporal/DefaultInstant.java    |  4 +-
 .../main/org/apache/sis/util/iso/Types.java        | 21 ++++++---
 .../org/apache/sis/geometry/CoordinateFormat.java  |  6 ++-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 10 ++---
 .../org/apache/sis/io/wkt/MathTransformParser.java | 22 +++++-----
 .../DefaultCoordinateOperationFactory.java         | 16 +------
 .../transform/DefaultMathTransformFactory.java     |  7 +--
 .../sis/referencing/privy/AxisDirections.java      |  5 ++-
 .../referencing/privy/CoordinateOperations.java    | 26 ++++++++---
 .../referencing/privy/GeodeticObjectBuilder.java   |  4 +-
 .../privy/ReferencingFactoryContainer.java         | 51 ++++++++++++++++++++--
 .../sis/storage/geotiff/reader/CRSBuilder.java     | 17 ++++++--
 .../apache/sis/storage/netcdf/base/CRSBuilder.java |  6 +--
 .../apache/sis/storage/netcdf/base/Decoder.java    | 13 +++++-
 .../sis/storage/netcdf/base/GridMapping.java       |  9 ++--
 .../sis/storage/netcdf/classic/ChannelDecoder.java |  4 +-
 .../sis/storage/netcdf/ucar/DecoderWrapper.java    |  2 +-
 .../sis/util/resources/IndexedResourceBundle.java  |  2 +-
 .../apache/sis/storage/shapefile/dbf/DBFField.java | 38 ++++++++++++++--
 20 files changed, 187 insertions(+), 81 deletions(-)


(sis) 01/01: Merge branch 'geoapi-3.1' - Consolidation in the way to get or create `OperationMethod` - Fix in shapefile DBF field parsing

Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 975aed6c1817f8b45459041e5530793d1d630e11
Merge: 86b20ccbda bede3d4c05
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Jun 28 06:06:19 2024 +0200

    Merge branch 'geoapi-3.1'
    - Consolidation in the way to get or create `OperationMethod`
    - Fix in shapefile DBF field parsing

 .../org/apache/sis/coverage/grid/PixelInCell.java  |  5 ++-
 .../org/apache/sis/temporal/DefaultInstant.java    |  4 +-
 .../main/org/apache/sis/util/iso/Types.java        | 21 ++++++---
 .../org/apache/sis/geometry/CoordinateFormat.java  |  6 ++-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 10 ++---
 .../org/apache/sis/io/wkt/MathTransformParser.java | 22 +++++-----
 .../DefaultCoordinateOperationFactory.java         | 16 +------
 .../transform/DefaultMathTransformFactory.java     |  7 +--
 .../sis/referencing/privy/AxisDirections.java      |  5 ++-
 .../referencing/privy/CoordinateOperations.java    | 26 ++++++++---
 .../referencing/privy/GeodeticObjectBuilder.java   |  4 +-
 .../privy/ReferencingFactoryContainer.java         | 51 ++++++++++++++++++++--
 .../sis/storage/geotiff/reader/CRSBuilder.java     | 17 ++++++--
 .../apache/sis/storage/netcdf/base/CRSBuilder.java |  6 +--
 .../apache/sis/storage/netcdf/base/Decoder.java    | 13 +++++-
 .../sis/storage/netcdf/base/GridMapping.java       |  9 ++--
 .../sis/storage/netcdf/classic/ChannelDecoder.java |  4 +-
 .../sis/storage/netcdf/ucar/DecoderWrapper.java    |  2 +-
 .../sis/util/resources/IndexedResourceBundle.java  |  2 +-
 .../apache/sis/storage/shapefile/dbf/DBFField.java | 38 ++++++++++++++--
 20 files changed, 187 insertions(+), 81 deletions(-)

diff --cc endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/PixelInCell.java
index a50a4ad129,b9771e9d7f..74c450b162
--- a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/PixelInCell.java
+++ b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/PixelInCell.java
@@@ -16,8 -16,12 +16,9 @@@
   */
  package org.apache.sis.coverage.grid;
  
+ import java.util.Optional;
  import org.opengis.metadata.spatial.PixelOrientation;
  
 -// Specific to the geoapi-3.1 and geoapi-4.0 branches:
 -import org.opengis.util.ControlledVocabulary;
 -
  
  /**
   * Whether a "grid to real world" transform gives the coordinates of the cell corner or cell center.
diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
index abaa640846,d50bb50eca..ee10e43744
--- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@@ -1299,12 -1285,9 +1299,10 @@@ class GeodeticObjectParser extends Math
           * not use the identifier.
           */
          FactoryException suppressed = null;
-         final CoordinateOperationFactory opFactory = factories.getCoordinateOperationFactory();
-         final MathTransformFactory mtFactory = factories.getMathTransformFactory();
 -        if (id != null) try {
 +        if (id instanceof ReferenceIdentifier) try {
              // CodeSpace is a mandatory attribute in ID[…] elements, so we do not test for null values.
-             return ServicesForMetadata.getOperationMethod(opFactory, mtFactory,
-                     ((ReferenceIdentifier) id).getCodeSpace() + Constants.DEFAULT_SEPARATOR + id.getCode());
 -            return factories.findOperationMethod(id.getCodeSpace() + Constants.DEFAULT_SEPARATOR + id.getCode());
++            final var rid = (ReferenceIdentifier) id;
++            return factories.findOperationMethod(rid.getCodeSpace() + Constants.DEFAULT_SEPARATOR + rid.getCode());
          } catch (FactoryException e) {
              suppressed = e;
          }
diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
index 4a31808d7f,29a79b6515..c71ea9a5da
--- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
+++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
@@@ -280,20 -278,9 +278,8 @@@ public class DefaultCoordinateOperation
       *
       * @see DefaultMathTransformFactory#getOperationMethod(String)
       */
 -    @Override
      public OperationMethod getOperationMethod(String name) throws FactoryException {
-         ArgumentChecks.ensureNonEmpty("name", name = name.strip());
-         @SuppressWarnings("LocalVariableHidesMemberVariable")
-         final MathTransformFactory mtFactory = getMathTransformFactory();
-         if (mtFactory instanceof DefaultMathTransformFactory) {
-             return ((DefaultMathTransformFactory) mtFactory).getOperationMethod(name);
-         }
-         final OperationMethod method = CoordinateOperations.getOperationMethod(
-                 mtFactory.getAvailableMethods(SingleOperation.class), name);
-         if (method != null) {
-             return method;
-         }
-         throw new NoSuchIdentifierException(Resources.forProperties(defaultProperties)
-                 .getString(Resources.Keys.NoSuchOperationMethod_2, name, URLs.OPERATION_METHODS), name);
+         return new ReferencingFactoryContainer(null, null, null, null, null, mtFactory).findOperationMethod(name);
      }
  
      /**
diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/ReferencingFactoryContainer.java
index c0007a6018,0e949be56f..9c5773cbde
--- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/ReferencingFactoryContainer.java
+++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/ReferencingFactoryContainer.java
@@@ -211,9 -218,9 +218,9 @@@ public class ReferencingFactoryContaine
          if (type == DatumFactory.class)               return datumFactory     != (datumFactory     = (DatumFactory)               factory);
          if (type == CSFactory.class)                  return csFactory        != (csFactory        = (CSFactory)                  factory);
          if (type == CRSFactory.class)                 return crsFactory       != (crsFactory       = (CRSFactory)                 factory);
 -        if (type == CoordinateOperationFactory.class) return operationFactory != (operationFactory = (CoordinateOperationFactory) factory);
 +        if (type == CoordinateOperationFactory.class) return operationFactory != (operationFactory = (DefaultCoordinateOperationFactory) factory);
          if (type == MathTransformFactory.class)       return mtFactory        != (mtFactory        = (MathTransformFactory)       factory);
-         throw new IllegalArgumentException(Errors.format(Errors.Keys.IllegalArgumentValue_2, "type", type));
+         throw new IllegalArgumentException(Errors.forLocale(getLocale()).getString(Errors.Keys.IllegalArgumentValue_2, "type", type));
      }
  
      /**
diff --cc endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/GridMapping.java
index d3bd0f287a,07133b2cab..78856ab0cd
--- a/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/GridMapping.java
+++ b/endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/GridMapping.java
@@@ -41,6 -41,6 +41,7 @@@ import org.opengis.referencing.cs.Coord
  import org.opengis.referencing.crs.ProjectedCRS;
  import org.opengis.referencing.crs.GeographicCRS;
  import org.opengis.referencing.crs.CoordinateReferenceSystem;
++import org.opengis.referencing.operation.CoordinateOperationFactory;
  import org.opengis.referencing.operation.TransformException;
  import org.opengis.referencing.operation.OperationMethod;
  import org.opengis.referencing.operation.MathTransform;
@@@ -77,9 -77,9 +78,6 @@@ import org.apache.sis.io.wkt.WKTFormat
  import org.apache.sis.io.wkt.Warnings;
  import org.apache.sis.measure.Units;
  
- // Specific to the main branch:
- import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 -// Specific to the geoapi-3.1 and geoapi-4.0 branches:
 -import org.opengis.referencing.operation.CoordinateOperationFactory;
--
  
  /**
   * Temporary objects for creating a {@link GridGeometry} instance defined by attributes on a variable.