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 4532837aa765a47c331fe5c99892dee4aa31f9d1
Merge: e0e5cfd750 eec072bb3f
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Tue Dec 2 17:34:37 2025 +0100

    Merge branch 'geoapi-3.1'

 .../feature/internal/shared/FeatureProjection.java |   2 +-
 .../apache/sis/filter/DefaultFilterFactory.java    |   4 +-
 .../org/apache/sis/filter/FunctionRegister.java    |  10 +-
 .../geometry/wrapper/SpatialOperationContext.java  |   2 +-
 .../apache/sis/geometry/wrapper/jts/Wrapper.java   |   4 +-
 .../org/apache/sis/image/BandAggregateLayout.java  |   2 +-
 .../apache/sis/image/BandedSampleConverter.java    |  33 ++-
 .../main/org/apache/sis/image/Colorizer.java       |   8 +-
 .../main/org/apache/sis/image/ImageLayout.java     |  57 +++-
 .../main/org/apache/sis/image/ImageProcessor.java  |   4 +-
 .../main/org/apache/sis/image/MaskedImage.java     |   4 +-
 .../main/org/apache/sis/image/ResampledImage.java  |   6 +-
 .../main/org/apache/sis/image/Transferer.java      |  14 +-
 .../main/org/apache/sis/image/Visualization.java   |   6 +-
 .../image/internal/shared/ColorScaleBuilder.java   |  77 ++---
 .../sis/image/internal/shared/ColorsForRange.java  |   2 +-
 .../sis/image/BandedSampleConverterTest.java       |   1 +
 .../org/apache/sis/metadata/MetadataStandard.java  |   9 +-
 .../org/apache/sis/metadata/MetadataVisitor.java   |  28 +-
 .../apache/sis/metadata/ModifiableMetadata.java    |  20 +-
 .../org/apache/sis/metadata/TreeTableView.java     |  12 +-
 .../iso/maintenance/DefaultScopeDescription.java   |   2 +-
 .../iso/quality/DefaultEvaluationMethod.java       |   2 +-
 .../org/apache/sis/metadata/sql/Dispatcher.java    |   7 +-
 .../main/org/apache/sis/xml/bind/Context.java      |   7 +-
 .../org/apache/sis/map/coverage/RenderingData.java |  14 +-
 .../main/org/apache/sis/portrayal/Canvas.java      |   2 +-
 .../apache/sis/profile/japan/netcdf/GCOM_C.java    |   2 +-
 .../apache/sis/geometry/WraparoundAdjustment.java  |   6 +-
 .../main/org/apache/sis/parameter/IntegerList.java |   2 +-
 .../main/org/apache/sis/parameter/Verifier.java    |   6 +-
 .../main/org/apache/sis/referencing/CRS.java       | 121 +++++---
 .../main/org/apache/sis/referencing/CommonCRS.java |   7 +-
 .../referencing/EllipsoidalHeightSeparator.java    |   3 +-
 .../apache/sis/referencing/GeodeticCalculator.java |   4 +-
 .../apache/sis/referencing/crs/AbstractCRS.java    |   2 +-
 .../sis/referencing/crs/AbstractDerivedCRS.java    |  30 +-
 .../sis/referencing/crs/DefaultProjectedCRS.java   |   2 +-
 .../sis/referencing/datum/DatumOrEnsemble.java     |   3 +
 .../factory/ConcurrentAuthorityFactory.java        |  26 +-
 .../referencing/factory/GeodeticObjectFactory.java |   2 +-
 .../factory/IdentifiedObjectFinder.java            |  11 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |  45 ++-
 .../sis/referencing/factory/sql/EPSGInstaller.java |  14 +-
 .../factory/sql/InstallationScriptProvider.java    |  10 -
 .../referencing/internal/ParameterizedAffine.java  |  26 +-
 .../referencing/internal/PositionTransformer.java  |   2 +-
 .../internal/shared/GeodeticObjectBuilder.java     |   7 +-
 .../internal/shared/ReferencingUtilities.java      |  16 --
 .../internal/shared/TemporalAccessor.java          |   3 +-
 .../internal/shared/WraparoundAxesFinder.java      |   3 +-
 .../operation/AbstractCoordinateOperation.java     |  48 ++--
 .../operation/CoordinateOperationRegistry.java     |  31 +-
 .../referencing/operation/DefaultConversion.java   |   4 +-
 .../operation/DefaultPassThroughOperation.java     |  11 +-
 .../operation/transform/ConcatenatedTransform.java |   2 +-
 .../operation/transform/MathTransforms.java        |   6 +-
 .../operation/transform/TransformSeparator.java    |  43 ++-
 .../operation/DefaultConversionTest.java           |   4 +-
 .../apache/sis/storage/geotiff/GeoTiffStore.java   |   5 +-
 .../sis/storage/geotiff/reader/CRSBuilder.java     |   4 +-
 .../sis/storage/geotiff/reader/XMLMetadata.java    |   4 +-
 .../apache/sis/storage/netcdf/base/CRSBuilder.java |   2 +-
 .../apache/sis/storage/netcdf/base/CRSMerger.java  |   5 +-
 .../apache/sis/storage/netcdf/base/Convention.java |   2 +-
 .../apache/sis/storage/netcdf/base/Decoder.java    |   2 +-
 .../org/apache/sis/storage/netcdf/base/Grid.java   |  50 ++--
 .../sis/storage/netcdf/base/GridAdjustment.java    |   8 +-
 .../sis/storage/netcdf/base/GridMapping.java       | 315 ++++++++++++++-------
 .../sis/storage/netcdf/base/NamedElement.java      |   2 +-
 .../apache/sis/storage/netcdf/base/Variable.java   |   6 +-
 .../sis/storage/netcdf/internal/Resources.java     |   6 +
 .../storage/netcdf/internal/Resources.properties   |   1 +
 .../netcdf/internal/Resources_fr.properties        |   1 +
 .../apache/sis/storage/esri/AsciiGridStore.java    |   5 +-
 .../main/org/apache/sis/math/Vector.java           |   2 +-
 .../org/apache/sis/pending/jdk/ScopedValue.java    |  28 +-
 .../main/org/apache/sis/system/Semaphores.java     | 130 +++++----
 .../sis/storage/isobmff/MainBoxRegistry.java       |  18 ++
 .../apache/sis/storage/isobmff/gimi/ModelCRS.java  |  24 ++
 .../sis/storage/isobmff/gimi/ModelTiePoint.java    |  24 ++
 .../storage/isobmff/gimi/ModelTransformation.java  |  24 ++
 .../sis/storage/isobmff/gimi/ExtensionTest.java    |   5 +
 optional/src/org.apache.sis.gui/bundle/bin/sisfx   |   1 +
 .../main/org/apache/sis/gui/RecentFiles.java       |   2 +-
 .../org/apache/sis/gui/coverage/Background.png     | Bin 0 -> 95 bytes
 .../apache/sis/gui/coverage/CoverageCanvas.java    |  29 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |   2 -
 .../org/apache/sis/gui/coverage/GridError.java     |   3 +-
 .../org/apache/sis/gui/coverage/GridViewSkin.java  |   2 +-
 .../sis/gui/coverage/StyledRenderingData.java      |   2 +-
 .../org/apache/sis/gui/dataset/ExpandableList.java |   4 +-
 .../main/org/apache/sis/gui/dataset/LogViewer.java |   7 +-
 .../sis/gui/metadata/IdentificationInfo.java       |   2 +-
 .../apache/sis/gui/metadata/MetadataSummary.java   |   2 +-
 .../org/apache/sis/gui/referencing/CRSChooser.java |   4 +-
 .../org/apache/sis/gui/referencing/MenuSync.java   |   8 +-
 97 files changed, 963 insertions(+), 619 deletions(-)

diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/internal/shared/FeatureProjection.java
index fcf8de79c0,e1ab0ebe1f..dbd08c3c41
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/internal/shared/FeatureProjection.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/internal/shared/FeatureProjection.java
@@@ -346,10 -347,10 +346,10 @@@ public final class FeatureProjection ex
      /**
       * Returns the expression which is executed for fetching the property 
value at the given index.
       *
-      * @param  index  index of the stored property for which to get the 
expression for fething the value.
+      * @param  index  index of the stored property for which to get the 
expression for fetching the value.
       * @return the expression which is executed for fetching the property 
value at the given index.
       */
 -    public final Expression<? super Feature, ?> expression(final int index) {
 +    public final Expression<? super AbstractFeature, ?> expression(final int 
index) {
          return expressions[index];
      }
  
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
index ffdd9fb287,63dd4f3b99..7e741b65c7
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
@@@ -45,9 -45,9 +45,9 @@@ import org.opengis.util.FactoryExceptio
  import org.opengis.geometry.DirectPosition;
  import org.opengis.referencing.crs.CoordinateReferenceSystem;
  import org.opengis.referencing.operation.CoordinateOperation;
 -import org.opengis.referencing.operation.TransformException;
  import org.opengis.referencing.operation.MathTransform;
 +import org.opengis.referencing.operation.TransformException;
- import org.apache.sis.referencing.internal.shared.ReferencingUtilities;
+ import org.apache.sis.referencing.CRS;
  import org.apache.sis.geometry.DirectPosition2D;
  import org.apache.sis.geometry.GeneralDirectPosition;
  import org.apache.sis.geometry.GeneralEnvelope;
diff --cc 
endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
index f646594bd4,9e444e196b..d0d6431ed9
--- 
a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
+++ 
b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
@@@ -396,11 -434,11 +396,11 @@@ public class DefaultEvaluationMethod ex
       *
       * @return date or range of dates on which a data quality measure was 
applied.
       */
 -    @Override
      @XmlElement(name = "dateTime")
 +    @UML(identifier="dateTime", obligation=OPTIONAL, 
specification=UNSPECIFIED)
      @SuppressWarnings("ReturnOfCollectionOrArrayField")
      public Collection<Temporal> getDates() {
-         if (Semaphores.query(Semaphores.NULL_COLLECTION)) {
+         if (Semaphores.NULL_FOR_EMPTY_COLLECTION.get()) {
              return isNullOrEmpty(dates) ? null : dates;
          }
          if (dates == null) {
diff --cc 
endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/GridMapping.java
index f1f4b0c513,732e1b21a7..5f93d2e3f2
--- 
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
@@@ -56,6 -56,8 +56,7 @@@ import org.apache.sis.referencing.Commo
  import org.apache.sis.referencing.IdentifiedObjects;
  import org.apache.sis.referencing.crs.AbstractCRS;
  import org.apache.sis.referencing.cs.AxesConvention;
+ import org.apache.sis.referencing.cs.CoordinateSystems;
 -import org.apache.sis.referencing.datum.DatumOrEnsemble;
  import org.apache.sis.referencing.datum.BursaWolfParameters;
  import org.apache.sis.referencing.datum.DefaultGeodeticDatum;
  import org.apache.sis.referencing.operation.matrix.Matrix3;
@@@ -416,8 -469,10 +468,9 @@@ final class GridMapping 
           */
          final Object bursaWolf = definition.remove(Convention.TOWGS84);
          final GeodeticDatum datum;
-         if (isSpecified | bursaWolf != null) {
-             Map<String,Object> properties = properties(definition, 
Convention.GEODETIC_DATUM_NAME, false, ellipsoid);
 -        DatumEnsemble<GeodeticDatum> ensemble = null;
+         if (isSpecified || bursaWolf != null) {
+             Supplier<Object> nameFallback = () -> 
CRS.getGeodeticReferenceFrame(fromWKT).map(GeodeticDatum::getName).orElse(null);
+             Map<String,Object> properties = properties(definition, 
Convention.GEODETIC_DATUM_NAME, nameFallback, false);
              if (bursaWolf instanceof BursaWolfParameters) {
                  properties = new HashMap<>(properties);
                  properties.put(DefaultGeodeticDatum.BURSA_WOLF_KEY, 
bursaWolf);
diff --cc 
optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/MetadataSummary.java
index a8efd37fcd,de8c591e6c..9bc7611783
--- 
a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/MetadataSummary.java
+++ 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/MetadataSummary.java
@@@ -352,9 -352,9 +352,9 @@@ public class MetadataSummary extends Wi
      /**
       * Returns all code lists in a comma-separated list.
       */
 -    final String string(final Collection<? extends ControlledVocabulary> 
codes) {
 +    final String string(final Collection<? extends CodeList<?>> codes) {
-         final StringJoiner buffer = new StringJoiner(", ");
+         final var buffer = new StringJoiner(", ");
 -        for (final ControlledVocabulary c : codes) {
 +        for (final CodeList<?> c : codes) {
              final String text = string(Types.getCodeTitle(c));
              if (text != null) buffer.add(text);
          }

Reply via email to