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 65cb13ffb1e136ca06f14f8b44cdc02c542919b8 Merge: fed83f0af1 c2b85ee4ee Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Wed Feb 26 15:52:26 2025 +0100 Merge branch 'geoapi-3.1': preparation for GeoHEIF refactoring. .../main/org/apache/sis/image/DataType.java | 5 +- .../main/org/apache/sis/image/MaskImage.java | 2 +- .../main/org/apache/sis/image/RecoloredImage.java | 3 +- .../apache/sis/image/privy/ColorModelBuilder.java | 309 ++++++++++++++------ .../apache/sis/image/privy/ColorModelFactory.java | 35 ++- .../org/apache/sis/image/privy/ImageUtilities.java | 8 +- .../apache/sis/image/privy/SampleModelBuilder.java | 35 ++- .../org/apache/sis/image/BandSelectImageTest.java | 2 +- .../apache/sis/image/privy/ImageUtilitiesTest.java | 16 +- .../sis/image/privy/SampleModelBuilderTest.java | 22 +- .../sis/metadata/iso/citation/Citations.java | 54 ++-- .../sis/metadata/privy/NameToIdentifier.java | 2 +- .../apache/sis/io/wkt/GeodeticObjectParser.java | 15 +- .../operation/DefaultConcatenatedOperation.java | 8 +- .../apache/sis/referencing/privy/WKTKeywords.java | 3 + .../sis/referencing/ImmutableIdentifierTest.java | 2 +- .../org/apache/sis/storage/geotiff/DataSubset.java | 10 +- .../apache/sis/storage/geotiff/GeoTiffStore.java | 40 ++- .../sis/storage/geotiff/GeoTiffStoreProvider.java | 9 +- .../sis/storage/geotiff/ImageFileDirectory.java | 14 +- .../sis/storage/geotiff/MultiResolutionImage.java | 2 +- .../org/apache/sis/storage/geotiff/Reader.java | 12 +- .../org/apache/sis/storage/geotiff/Writer.java | 2 +- .../org/apache/sis/storage/netcdf/NetcdfStore.java | 5 +- .../org/apache/sis/storage/netcdf/base/Axis.java | 2 +- .../apache/sis/storage/netcdf/base/Convention.java | 8 - .../apache/sis/storage/netcdf/base/Decoder.java | 28 +- .../apache/sis/storage/netcdf/base/FeatureSet.java | 4 +- .../sis/storage/netcdf/base/GridMapping.java | 314 +++++++++++++-------- .../sis/storage/netcdf/base/NamedElement.java | 2 +- .../org/apache/sis/storage/netcdf/base/Node.java | 3 +- .../sis/storage/netcdf/base/RasterResource.java | 8 +- .../apache/sis/storage/netcdf/base/Variable.java | 36 +-- .../sis/storage/netcdf/classic/VariableInfo.java | 2 +- .../sis/storage/netcdf/internal/Resources.java | 20 +- .../storage/netcdf/internal/Resources.properties | 6 +- .../netcdf/internal/Resources_fr.properties | 6 +- .../sis/storage/netcdf/ucar/VariableWrapper.java | 11 +- .../apache/sis/storage/netcdf/base/GridTest.java | 15 +- .../apache/sis/storage/sql/feature/Analyzer.java | 8 +- .../sis/storage/sql/feature/QueryAnalyzer.java | 13 +- .../org/apache/sis/io/stream/ChannelDataInput.java | 174 ++++++------ .../org/apache/sis/io/stream/DataTransfer.java | 28 +- .../apache/sis/io/stream/HyperRectangleReader.java | 28 +- .../apache/sis/io/stream/MemoryDataTransfer.java | 22 +- .../main/org/apache/sis/io/stream/Region.java | 13 +- .../org/apache/sis/storage/AbstractResource.java | 10 +- .../org/apache/sis/storage/StorageConnector.java | 71 +++-- .../org/apache/sis/storage/aggregate/Group.java | 22 +- .../org/apache/sis/storage/base/ArrayOfLongs.java | 86 ++++++ .../apache/sis/storage/base/MetadataBuilder.java | 17 +- .../apache/sis/storage/base/TiledGridCoverage.java | 27 +- .../org/apache/sis/storage/esri/RasterStore.java | 2 +- .../apache/sis/storage/esri/RawRasterReader.java | 20 +- .../apache/sis/storage/esri/RawRasterStore.java | 16 +- .../sis/io/stream/HyperRectangleReaderTest.java | 10 +- .../apache/sis/storage/StorageConnectorTest.java | 16 ++ .../main/org/apache/sis/util/privy/Numerics.java | 19 ++ .../test/org/apache/sis/pending/jdk/JDK18Test.java | 53 ++++ .../org/apache/sis/util/privy/NumericsTest.java | 26 +- .../org/apache/sis/storage/gdal/TiledResource.java | 2 +- 61 files changed, 1169 insertions(+), 594 deletions(-) diff --cc endorsed/src/org.apache.sis.storage.netcdf/main/org/apache/sis/storage/netcdf/base/GridMapping.java index fcb9421e3a,70412a7534..db429c0659 --- 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 @@@ -370,8 -381,9 +381,8 @@@ final class GridMapping */ final Object bursaWolf = definition.remove(Convention.TOWGS84); final GeodeticDatum datum; - DatumEnsemble<GeodeticDatum> ensemble = null; if (isSpecified | bursaWolf != null) { - Map<String,Object> properties = properties(definition, Convention.GEODETIC_DATUM_NAME, ellipsoid); + Map<String,Object> properties = properties(definition, Convention.GEODETIC_DATUM_NAME, false, ellipsoid); if (bursaWolf instanceof BursaWolfParameters) { properties = new HashMap<>(properties); properties.put(DefaultGeodeticDatum.BURSA_WOLF_KEY, bursaWolf); @@@ -385,8 -400,8 +396,8 @@@ * Geographic CRS from all above properties. */ if (isSpecified) { - final Map<String,?> properties = properties(definition, Convention.GEOGRAPHIC_CRS_NAME, datum); + final Map<String,?> properties = properties(definition, Convention.GEOGRAPHIC_CRS_NAME, main, datum); - return decoder.getCRSFactory().createGeographicCRS(properties, datum, ensemble, + return decoder.getCRSFactory().createGeographicCRS(properties, datum, defaultDefinitions.geographic().getCoordinateSystem()); } else { return defaultDefinitions.geographic(); diff --cc endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java index adf43539ac,ef6d83a2bb..9599d7d43f --- a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java +++ b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java @@@ -1148,13 -1142,12 +1148,12 @@@ public class MetadataBuilder * If two dates are of the same type, retains the latest one if the type name starts with {@code "LATE_"} * or retains the earliest date otherwise. */ - private static void addEarliest(final Collection<CitationDate> dates, final CitationDate cd, final DateType type) { - private static void addEarliest(final Collection<CitationDate> dates, final CitationDate date, final DateType type) { ++ private static void addEarliest(final Collection<CitationDate> dates, final DefaultCitationDate date, final DateType type) { for (final Iterator<CitationDate> it = dates.iterator(); it.hasNext();) { - final CitationDate co = it.next(); - if (type.equals(co.getDateType())) { - final Date oldDate = co.getDate(); - final Date newDate = cd.getDate(); - if (type.name().startsWith("LATE_") ? oldDate.before(newDate) : oldDate.after(newDate)) { + final CitationDate existing = it.next(); - if (type.equals(existing.getDateType())) { ++ if (type.equals(existing.getDateType()) && existing instanceof DefaultCitationDate) { + final int method = type.name().startsWith("LATE_") ? TimeMethods.BEFORE : TimeMethods.AFTER; - if (TimeMethods.compareAny(method, existing.getReferenceDate(), date.getReferenceDate())) { ++ if (TimeMethods.compareAny(method, ((DefaultCitationDate) existing).getReferenceDate(), date.getReferenceDate())) { it.remove(); break; }