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); }
