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

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

commit 3b34cf323f7961d7ca76ecbaf9df478c84b32e24
Merge: 60f07fc246 0d5e5d119d
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Wed May 20 18:34:47 2026 +0200

    Merge geoapi-4.0 into geoapi-3.1.
    The main work are related to improvement in GeoHEIF support.

 .../main/org/apache/sis/console/CommandRunner.java |   4 +-
 .../apache/sis/console/FormattedOutputCommand.java |   2 +-
 .../org/apache/sis/console/TranslateCommand.java   |   2 +-
 .../coverage/grid/CoordinateOperationFinder.java   |  44 +-
 .../apache/sis/coverage/grid/GridCRSBuilder.java   | 128 +++++-
 .../apache/sis/coverage/grid/GridGeometryTest.java |  48 ++
 .../org/apache/sis/metadata/MetadataStandard.java  |   2 +-
 .../org/apache/sis/metadata/TitleProperty.java     |   2 +-
 .../main/org/apache/sis/metadata/TreeNode.java     |  90 +++-
 .../org/apache/sis/metadata/TreeNodeChildren.java  |  44 +-
 .../org/apache/sis/metadata/TreeTableView.java     |  67 +--
 .../apache/sis/metadata/ValueExistencePolicy.java  | 104 +++--
 .../main/org/apache/sis/metadata/package-info.java |   2 +-
 .../org/apache/sis/xml/PooledUnmarshaller.java     |   8 +-
 .../main/org/apache/sis/xml/TransformedEvent.java  |   2 +-
 .../main/org/apache/sis/xml/XML.java               |   4 +-
 .../main/org/apache/sis/xml/bind/gcx/Anchor.java   |   9 +-
 .../sis/xml/internal/shared/InputFactory.java      |  42 +-
 .../main/org/apache/sis/xml/package-info.java      |  24 +-
 .../apache/sis/metadata/TreeNodeChildrenTest.java  |  14 +-
 .../test/org/apache/sis/metadata/TreeNodeTest.java |  11 +-
 .../apache/sis/metadata/TreeTableFormatTest.java   |  15 +-
 .../org/apache/sis/metadata/TreeTableViewTest.java |   3 +-
 .../sis/xml/internal/shared/InputFactoryTest.java  |   8 +-
 .../main/org/apache/sis/io/wkt/WKTFormat.java      |   4 +-
 .../sis/referencing/cs/CoordinateSystems.java      |   2 +-
 .../referencing/datum/DefaultDatumEnsemble.java    |  30 +-
 .../apache/sis/referencing/datum/package-info.java |   2 +-
 .../factory/CommonAuthorityFactory.java            |   6 +-
 .../referencing/factory/FactoryDataException.java  |   2 +-
 .../referencing/factory/GeodeticObjectFactory.java |   2 +-
 ...xception.java => InternalFactoryException.java} |  28 +-
 .../internal/ParameterizedTransformBuilder.java    |   4 +-
 .../internal/shared/CoordinateOperations.java      |   4 +-
 .../internal/shared/OperationMethodExt.java        |  73 +++
 .../operation/AbstractCoordinateOperation.java     |   8 +-
 .../operation/AbstractSingleOperation.java         |   4 +-
 .../operation/CoordinateOperationContext.java      |   2 +-
 .../operation/CoordinateOperationFinder.java       |  69 ++-
 .../operation/CoordinateOperationRegistry.java     |  14 +-
 .../operation/DefaultConcatenatedOperation.java    |   4 +-
 .../DefaultCoordinateOperationFactory.java         |  19 +-
 .../sis/referencing/operation/DefaultFormula.java  |   9 +-
 .../operation/DefaultOperationMethod.java          |   4 +-
 .../referencing/operation/gridded/LoadedGrid.java  |   2 +-
 .../operation/projection/ZonedGridSystem.java      |   3 +-
 .../provider/FranceGeocentricInterpolation.java    |   3 +-
 .../GeocentricAffineBetweenGeographic.java         |   3 +-
 .../operation/provider/GeocentricToGeographic.java |   3 +-
 .../operation/provider/Geographic3Dto2D.java       |   3 +-
 .../operation/provider/Spherical2Dto3D.java        |   3 +-
 .../operation/provider/VerticalOffset.java         |   3 +-
 .../transform/DefaultMathTransformFactory.java     |   3 +-
 .../transform/EllipsoidToRadiusTransform.java      |   3 +-
 .../operation/transform/MathTransformProvider.java |  31 +-
 .../test/org/apache/sis/io/wkt/WKTFormatTest.java  |  21 +-
 .../operation/DefaultTransformationTest.java       |   3 +-
 .../main/org/apache/sis/storage/landsat/Band.java  |   4 +-
 .../org/apache/sis/storage/landsat/BandGroup.java  |   2 +-
 .../apache/sis/storage/landsat/LandsatStore.java   |   2 +-
 .../apache/sis/storage/landsat/MetadataReader.java |   2 +-
 .../storage/landsat/LandsatStoreProviderTest.java  |   2 +-
 .../apache/sis/storage/geotiff/Compression.java    |   2 +-
 .../apache/sis/storage/geotiff/FormatModifier.java |   2 +-
 .../apache/sis/storage/geotiff/GeoTiffStore.java   |   4 +-
 .../apache/sis/storage/geotiff/NativeMetadata.java | 106 ++++-
 .../org/apache/sis/storage/geotiff/Writer.java     |   2 +-
 .../geotiff/reader/GridGeometryBuilder.java        |   2 +-
 .../geotiff/reader/ImageMetadataBuilder.java       |   2 +-
 .../sis/storage/geotiff/reader/Localization.java   |   3 +-
 .../sis/storage/geotiff/reader/XMLMetadata.java    |   5 +-
 .../sis/storage/geotiff/writer/GeoEncoder.java     |   2 +-
 .../storage/geotiff/reader/XMLMetadataTest.java    |   2 +-
 .../apache/sis/storage/netcdf/MetadataReader.java  |   2 +-
 .../org/apache/sis/storage/netcdf/NetcdfStore.java |   2 +-
 .../sis/storage/netcdf/NetcdfStoreProvider.java    |   2 +-
 .../apache/sis/storage/netcdf/base/Decoder.java    |   2 +-
 .../sis/storage/netcdf/base/RasterResource.java    |   2 +-
 .../sis/storage/netcdf/classic/ChannelDecoder.java |   2 +-
 .../sis/storage/netcdf/ucar/DecoderWrapper.java    |   2 +-
 .../main/org/apache/sis/storage/sql/SQLStore.java  |   4 +-
 .../apache/sis/storage/sql/feature/Database.java   |   2 +-
 .../sis/storage/sql/feature/SchemaModifier.java    |   4 +-
 .../sis/storage/sql/postgis/PostgresTest.java      |   2 +-
 .../main/org/apache/sis/storage/gpx/Store.java     |   2 +-
 .../main/org/apache/sis/storage/gpx/Types.java     |   2 +-
 .../sis/storage/xml/stream/StaxDataStore.java      |  41 +-
 .../org/apache/sis/storage/gpx/ReaderTest.java     |   2 +-
 .../org/apache/sis/storage/gpx/UpdaterTest.java    |   2 +-
 .../org/apache/sis/storage/gpx/WriterTest.java     |   2 +-
 .../org.apache.sis.storage/main/module-info.java   |  13 +
 .../apache/sis/io/stream/InternalOptionKey.java    |   2 +-
 .../org/apache/sis/storage/AbstractFeatureSet.java |   2 +-
 .../sis/storage/AbstractGridCoverageResource.java  |   2 +-
 .../org/apache/sis/storage/AbstractResource.java   |   2 +-
 .../org/apache/sis/storage/CoverageSubset.java     |   2 +-
 .../main/org/apache/sis/storage/DataOptionKey.java |  83 +---
 .../main/org/apache/sis/storage/DataStore.java     |   3 +-
 .../org/apache/sis/storage/DataStoreProvider.java  |  13 +
 .../org/apache/sis/storage/DataStoreRegistry.java  |   2 +-
 .../main/org/apache/sis/storage/FeatureSubset.java |   2 +-
 .../sis/storage/InternalDataStoreException.java    |   9 +-
 .../main/org/apache/sis/storage/OptionKey.java     | 297 ++++++++++++
 .../org/apache/sis/storage/StorageConnector.java   |  19 +-
 .../storage/aggregate/AggregatedFeatureSet.java    |   2 +-
 .../sis/storage/aggregate/AggregatedResource.java  |   2 +-
 .../aggregate/BandAggregateGridResource.java       |   2 +-
 .../aggregate/ConcatenatedGridResource.java        |   2 +-
 .../sis/storage/aggregate/GroupAggregate.java      |   2 +-
 .../main/org/apache/sis/storage/base/CodeType.java |  12 +-
 .../sis/storage/base/DocumentedStoreProvider.java  |   2 +-
 .../org/apache/sis/storage/base/PRJDataStore.java  |   2 +-
 .../org/apache/sis/storage/base/URIDataStore.java  |  12 +-
 .../sis/storage/base/URIDataStoreProvider.java     |  14 +-
 .../org/apache/sis/storage/base/package-info.java  |   2 +-
 .../main/org/apache/sis/storage/csv/Store.java     |   9 +-
 .../org/apache/sis/storage/csv/StoreProvider.java  |   6 +-
 .../org/apache/sis/storage/csv/package-info.java   |   2 +-
 .../apache/sis/storage/esri/AsciiGridStore.java    |   6 +-
 .../org/apache/sis/storage/esri/RasterStore.java   |   2 +-
 .../main/org/apache/sis/storage/folder/Store.java  |   7 +-
 .../apache/sis/storage/folder/StoreProvider.java   |   4 +-
 .../apache/sis/storage/folder/WritableStore.java   |   2 +-
 .../apache/sis/storage/image/WorldFileStore.java   |   4 +-
 .../apache/sis/storage/image/WritableStore.java    |   2 +-
 .../storage/{base => metadata}/LegalSymbols.java   |   3 +-
 .../{base => metadata}/MetadataBuilder.java        |   3 +-
 .../{base => metadata}/MetadataFetcher.java        |   8 +-
 .../{base => metadata}/ResourceLineage.java        |   2 +-
 .../storage/{base => metadata}/package-info.java   |   4 +-
 .../sis/storage/modifier/CoverageModifier.java     |  10 +-
 .../org/apache/sis/storage/tiling/TileMatrix.java  |   2 +-
 .../apache/sis/storage/tiling/TileMatrixSet.java   |   2 +-
 .../main/org/apache/sis/storage/wkt/Store.java     |   4 +-
 .../main/org/apache/sis/storage/xml/Store.java     |   4 +-
 .../org/apache/sis/storage/DataOptionKeyTest.java  |  46 --
 .../org/apache/sis/storage}/OptionKeyTest.java     |  23 +-
 .../apache/sis/storage/StorageConnectorTest.java   |   1 -
 .../apache/sis/storage/csv/StoreProviderTest.java  |   2 +-
 .../test/org/apache/sis/storage/csv/StoreTest.java |   5 +-
 .../apache/sis/storage/esri/WritableStoreTest.java |   2 +-
 .../sis/storage/image/WorldFileStoreTest.java      |   2 +-
 .../{base => metadata}/MetadataBuilderTest.java    |   2 +-
 .../main/org/apache/sis/io/CompoundFormat.java     |  77 ++--
 .../main/org/apache/sis/io/LineAppender.java       |   6 +-
 .../main/org/apache/sis/math/StatisticsFormat.java |  14 +-
 .../main/org/apache/sis/setup/GeometryLibrary.java |   2 +-
 .../main/org/apache/sis/setup/OptionKey.java       |  46 +-
 .../main/org/apache/sis/setup/package-info.java    |   5 +-
 .../sis/util/AbstractInternationalString.java      |  22 +-
 .../main/org/apache/sis/util/Exceptions.java       |   6 +-
 .../org/apache/sis/util/collection/TreeTable.java  |  18 +-
 .../sis/util/collection/TreeTableFormat.java       |  67 +--
 .../apache/sis/util/internal/shared/Constants.java |   2 +-
 .../sis/util/internal/shared/PropertyFormat.java   |  74 +--
 .../internal/shared/TreeFormatCustomization.java   |  51 ---
 .../sis/util/internal/shared/TreeTableForGUI.java  |  42 ++
 .../org/apache/sis/util/resources/Vocabulary.java  |  10 +
 .../sis/util/resources/Vocabulary.properties       |   2 +
 .../sis/util/resources/Vocabulary_fr.properties    |   2 +
 .../org/apache/sis/geometries/scene/SceneNode.java |  76 +++
 .../main/org/apache/sis/geometries/scene/Skin.java |   1 +
 .../sis/geometries/scene/physics/Collider.java     |  83 ++++
 .../geometries/scene/physics/ColliderGeometry.java |  65 +++
 .../geometries/scene/physics/CollisionFilter.java  |  85 ++++
 .../apache/sis/geometries/scene/physics/Joint.java | 360 +++++++++++++++
 .../sis/geometries/scene/physics/Motion.java       | 180 ++++++++
 .../geometries/scene/physics/PhysicalMaterial.java | 130 ++++++
 .../sis/geometries/scene/physics/Trigger.java      |  87 ++++
 .../storage/coveragejson/CoverageJsonStore.java    |   2 +-
 .../sis/storage/geoheif/CoverageBuilder.java       |   9 +-
 .../apache/sis/storage/geoheif/GeoHeifStore.java   |   5 +-
 .../sis/storage/geoheif/UncompressedImage.java     |   2 +-
 .../main/org/apache/sis/storage/isobmff/Box.java   |   4 +-
 .../apache/sis/storage/isobmff/BoxRegistry.java    |   9 +
 .../apache/sis/storage/isobmff/ContainerBox.java   |  15 +-
 .../org/apache/sis/storage/isobmff/Extension.java  |  20 +-
 .../org/apache/sis/storage/isobmff/FullBox.java    |  41 +-
 .../{gimi/package-info.java => Incomplete.java}    |  19 +-
 .../sis/storage/isobmff/MainBoxRegistry.java       |   2 +-
 .../apache/sis/storage/isobmff/NodeSummary.java    |  59 +++
 .../org/apache/sis/storage/isobmff/Reader.java     |  19 +-
 .../main/org/apache/sis/storage/isobmff/Root.java  |   2 +-
 .../org/apache/sis/storage/isobmff/TreeNode.java   | 507 +++++++++++++++------
 .../storage/isobmff/base/ColourInformation.java    |   2 +-
 .../sis/storage/isobmff/base/CombinaisonType.java  |   2 +-
 .../apache/sis/storage/isobmff/base/Copyright.java |   3 +-
 .../sis/storage/isobmff/base/EntityToGroup.java    |   2 +
 .../storage/isobmff/base/FDItemInfoExtension.java  |   4 +-
 .../apache/sis/storage/isobmff/base/FileType.java  |   2 +-
 .../apache/sis/storage/isobmff/base/GroupList.java |   2 +-
 .../sis/storage/isobmff/base/HandlerReference.java |   2 +-
 .../storage/isobmff/base/IdentifiedMediaData.java  |   2 +-
 .../apache/sis/storage/isobmff/base/ItemInfo.java  |  17 +-
 .../sis/storage/isobmff/base/ItemInfoEntry.java    |   9 +-
 .../sis/storage/isobmff/base/ItemLocation.java     |   2 +-
 .../sis/storage/isobmff/base/ItemProperties.java   |  40 +-
 .../isobmff/base/ItemPropertyAssociation.java      |  41 +-
 .../isobmff/base/ItemPropertyContainer.java        |   2 +-
 .../sis/storage/isobmff/base/ItemReference.java    |   5 +-
 .../org/apache/sis/storage/isobmff/base/Meta.java  |   5 +-
 .../org/apache/sis/storage/isobmff/base/Movie.java |   2 +-
 .../sis/storage/isobmff/base/MovieHeader.java      |   5 +-
 .../sis/storage/isobmff/base/OriginalFileType.java |   2 +-
 .../sis/storage/isobmff/base/PrimaryItem.java      |   2 +-
 .../isobmff/base/ProgressiveDownloadInfo.java      |   5 +-
 .../isobmff/base/SingleItemTypeReference.java      |   2 +-
 .../org/apache/sis/storage/isobmff/base/Track.java |   2 +-
 .../sis/storage/isobmff/base/TrackHeader.java      |  27 +-
 .../apache/sis/storage/isobmff/base/UserData.java  |   2 +-
 .../storage/isobmff/{gimi => geo}/ModelCRS.java    |   9 +-
 .../isobmff/{gimi => geo}/ModelTiePoint.java       |  29 +-
 .../isobmff/{gimi => geo}/ModelTransformation.java |   6 +-
 .../isobmff/geo/TiledImageConfiguration.java       | 164 +++++++
 .../isobmff/{gimi => geo}/UnknownProperty.java     |   4 +-
 .../isobmff/{gimi => geo}/package-info.java        |   2 +-
 .../isobmff/gimi/TiledImageConfiguration.java      |  56 ---
 .../sis/storage/isobmff/image/CreationTime.java    |   1 +
 .../storage/isobmff/image/ModificationTime.java    |   1 +
 .../sis/storage/isobmff/image/UserDescription.java |   3 +-
 .../sis/storage/isobmff/mpeg/ChromaLocation.java   |   5 +-
 .../apache/sis/storage/isobmff/mpeg/Component.java |   1 +
 .../isobmff/mpeg/ComponentReferenceLevel.java      |   5 +-
 .../isobmff/mpeg/DepthMappingInformation.java      |   5 +-
 .../storage/isobmff/mpeg/DisparityInformation.java |   5 +-
 .../sis/storage/isobmff/mpeg/FieldInterlace.java   |   5 +-
 .../storage/isobmff/mpeg/FieldInterlaceType.java   |   5 +-
 .../isobmff/mpeg/FramePackingInformation.java      |   5 +-
 .../mpeg/PolarizationPatternDefinition.java        |   5 +-
 .../storage/isobmff/mpeg/SensorBadPixelsMap.java   |   5 +-
 .../mpeg/SensorNonUniformityCorrection.java        |   5 +-
 .../sis/storage/isobmff/mpeg/TAIClockInfo.java     |   6 +-
 .../sis/storage/isobmff/mpeg/TAITimeStamp.java     |   5 +-
 .../isobmff/mpeg/UncompressedFrameConfig.java      |   2 +-
 .../storage/isobmff/video/ContentDescribes.java    |   5 +-
 .../isobmff/{gimi => geo}/ExtensionTest.java       |   4 +-
 .../org/apache/sis/storage/geopackage/Content.java |   2 +-
 .../sis/storage/geopackage/GpkgStoreProvider.java  |   2 +-
 .../apache/sis/storage/geopackage/Initializer.java |   2 +-
 .../sis/storage/geopackage/GpkgStoreTest.java      |   2 +-
 .../conformance/CoreConformanceTest.java           |   2 +-
 .../main/org/apache/sis/storage/gsf/GSFStore.java  |   2 +-
 .../sis/storage/shapefile/ShapefileProvider.java   |  13 +-
 .../sis/storage/shapefile/ShapefileStore.java      |  39 +-
 .../apache/sis/storage/shapefile/dbf/DBFField.java |   2 +-
 .../sis/storage/shapefile/shp/ShapeRecord.java     |   1 +
 .../sis/storage/shapefile/ShapefileStoreTest.java  |  32 ++
 .../sis/storage/shapefile/dbf/DBFIOTest.java       |   2 +-
 .../apache/sis/storage/shapefile/dbf/Snippets.java |   2 +-
 .../test/org/apache/sis/storage/shapefile/noid.cpg |   1 +
 .../test/org/apache/sis/storage/shapefile/noid.dbf | Bin 0 -> 147 bytes
 .../test/org/apache/sis/storage/shapefile/noid.prj |   1 +
 .../test/org/apache/sis/storage/shapefile/noid.shp | Bin 0 -> 128 bytes
 .../test/org/apache/sis/storage/shapefile/noid.shx | Bin 0 -> 108 bytes
 .../sis/storage/shapefile/shp/ShapeIOTest.java     |   2 +-
 .../apache/sis/storage/shapefile/shp/Snippets.java |   2 +-
 .../apache/sis/gui/coverage/BandRangeTable.java    |   6 +-
 .../sis/gui/coverage/ImagePropertyExplorer.java    |  12 +-
 .../org/apache/sis/gui/dataset/FeatureTable.java   |  19 +-
 .../sis/gui/internal/IdentityValueFactory.java     |   4 +-
 .../sis/gui/internal/PropertyValueFormats.java     |   4 +-
 .../sis/gui/internal/PropertyValueFormatter.java   |   2 +-
 .../org/apache/sis/gui/metadata/MetadataTree.java  | 157 +++++--
 .../sis/gui/metadata/StandardMetadataTree.java     |  10 +-
 .../org/apache/sis/gui/metadata/package-info.java  |   2 +-
 .../org/apache/sis/storage/gdal/GDALStore.java     |   4 +-
 .../apache/sis/storage/gdal/GDALStoreProvider.java |   2 +-
 .../org/apache/sis/storage/gdal/TiledResource.java |   2 +-
 268 files changed, 3675 insertions(+), 1373 deletions(-)

diff --cc 
endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java
index 41e599d38c,b38e966ce3..e59dfb3026
--- 
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java
+++ 
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java
@@@ -69,9 -72,9 +69,9 @@@ public final class TreeNodeChildrenTes
       *     └─Other citation details…… Some other details</pre>
       */
      static DefaultCitation metadataWithoutCollections() {
-         final DefaultCitation citation = new DefaultCitation("Some title");
+         final var citation = new DefaultCitation("Some title");
          citation.setEdition(new SimpleInternationalString("Some edition"));
 -        citation.setOtherCitationDetails(Set.of(new 
SimpleInternationalString("Some other details")));
 +        citation.setOtherCitationDetails(new SimpleInternationalString("Some 
other details"));
          return citation;
      }
  
diff --cc 
endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java
index 3a76924aa9,ad562b03ac..998111f276
--- 
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java
+++ 
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java
@@@ -106,13 -107,13 +107,13 @@@ public final class TreeTableFormatTest 
       */
      @Test
      public void testProcessing() {
-         final DefaultCitation   titled = new DefaultCitation("Some 
specification");
-         final DefaultCitation    coded = new DefaultCitation();
-         final DefaultCitation untitled = new DefaultCitation();
+         final var titled   = new DefaultCitation("Some specification");
+         final var coded    = new DefaultCitation();
+         final var untitled = new DefaultCitation();
          titled  
.setPresentationForms(Set.of(PresentationForm.DOCUMENT_HARDCOPY));
          coded   
.setPresentationForms(Set.of(PresentationForm.IMAGE_HARDCOPY));
 -        untitled.setCitedResponsibleParties(Set.of(new 
DefaultResponsibility(Role.AUTHOR, null, null)));
 +        untitled.setCitedResponsibleParties(Set.of(new 
DefaultResponsibleParty(Role.AUTHOR)));
-         final DefaultProcessing processing = new DefaultProcessing();
+         final var processing = new DefaultProcessing();
          processing.setDocumentations(List.of(titled, coded, untitled));
          final String text = format.format(processing.asTreeTable());
          assertMultilinesEquals(
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
index af00add12d,baa510d453..611c8d7e25
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
@@@ -1150,8 -1129,8 +1153,8 @@@ public class CoordinateOperationFinder 
              if (isAxisChange1 && mt1.getSourceDimensions() == 
mt1.getTargetDimensions()) main = step2;
              if (isAxisChange2 && mt2.getSourceDimensions() == 
mt2.getTargetDimensions()) main = step1;
          }
 -        if (main instanceof SingleOperation) {
 +        if (AbstractCoordinateOperation.isSingleOperation(main)) {
-             final SingleOperation op = (SingleOperation) main;
+             final var op = (SingleOperation) main;
              main = createFromMathTransform(
                      new HashMap<>(IdentifiedObjects.getProperties(main)),
                      sourceCRS,
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
index a9d6d160bf,d64f692bd4..0a1ffe8197
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
@@@ -1033,8 -1023,8 +1033,8 @@@ class CoordinateOperationRegistry 
           * For example the "Affine" set of parameters depend on the number of 
dimensions.
           * The capability to resize an operation method is specific to Apache 
SIS.
           */
 -        if (operation instanceof SingleOperation) {
 +        if (AbstractCoordinateOperation.isSingleOperation(operation)) {
-             final SingleOperation single = (SingleOperation) operation;
+             final var single = (SingleOperation) operation;
              properties.put(CoordinateOperations.PARAMETERS_KEY, 
single.getParameterValues());
              if (method == null) {
                  method = single.getMethod();

Reply via email to