This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-3.1 in repository https://gitbox.apache.org/repos/asf/sis.git
commit a2c13a9421862b1c27ae603e27afa8f3d541e0d0 Merge: eec072bb3f 781fc115d0 Author: Martin Desruisseaux <[email protected]> AuthorDate: Tue Dec 30 11:53:04 2025 +0100 Merge branch 'geoapi-4.0' into geoapi-3.1: * Dynamic optimization of filters * Streaming of `GridCoverage.Evaluator`. * Reorganization of collection utilities. endorsed/build.gradle.kts | 4 + .../org/apache/sis/console/IdentifierCommand.java | 2 +- .../org/apache/sis/coverage/BandedCoverage.java | 60 +- .../org/apache/sis/coverage/SampleDimension.java | 10 +- .../coverage/grid/BandAggregateGridCoverage.java | 18 +- .../sis/coverage/grid/BufferedGridCoverage.java | 39 +- .../sis/coverage/grid/ClippedGridCoverage.java | 8 +- .../sis/coverage/grid/ConvertedGridCoverage.java | 25 +- .../apache/sis/coverage/grid/DefaultEvaluator.java | 487 +++++++---- .../sis/coverage/grid/DimensionalityReduction.java | 12 +- .../apache/sis/coverage/grid/EvaluatorWrapper.java | 19 +- .../coverage/grid/FractionalGridCoordinates.java | 157 +--- .../org/apache/sis/coverage/grid/GridCoverage.java | 48 +- .../apache/sis/coverage/grid/GridCoverage2D.java | 62 +- .../sis/coverage/grid/GridCoverageProcessor.java | 7 +- .../org/apache/sis/coverage/grid/GridExtent.java | 6 +- .../apache/sis/coverage/grid/ImageRenderer.java | 15 +- .../sis/coverage/grid/ReducedGridCoverage.java | 14 +- .../sis/coverage/grid/ResampledGridCoverage.java | 5 - .../apache/sis/coverage/grid/SliceGeometry.java | 2 +- .../sis/coverage/grid/ValuesAtPointIterator.java | 811 ++++++++++++++++++ .../org/apache/sis/feature/AbstractFeature.java | 35 +- .../apache/sis/feature/AbstractIdentifiedType.java | 25 + .../org/apache/sis/feature/CharacteristicMap.java | 3 +- .../apache/sis/feature/CharacteristicTypeMap.java | 3 +- .../org/apache/sis/feature/DefaultFeatureType.java | 17 +- .../org/apache/sis/feature/EnvelopeOperation.java | 6 +- .../main/org/apache/sis/feature/FeatureFormat.java | 6 +- .../main/org/apache/sis/feature/Features.java | 4 + .../sis/feature/GroupAsPolylineOperation.java | 4 +- .../apache/sis/feature/MultiValuedAssociation.java | 20 +- .../apache/sis/feature/MultiValuedAttribute.java | 16 +- .../apache/sis/feature/StringJoinOperation.java | 11 +- .../sis/feature/builder/AttributeTypeBuilder.java | 7 +- .../org/apache/sis/feature/internal/Resources.java | 4 +- .../sis/feature/internal/Resources.properties | 2 +- .../sis/feature/internal/Resources_fr.properties | 2 +- .../feature/internal/shared/FeatureProjection.java | 4 +- .../internal/shared/FeatureProjectionBuilder.java | 5 +- .../sis/feature/internal/shared/InstantList.java | 10 + .../feature/internal/shared/MovingFeatures.java | 10 +- .../org/apache/sis/filter/AssociationValue.java | 75 +- .../apache/sis/filter/BinaryGeometryFilter.java | 25 +- .../org/apache/sis/filter/DynamicOptimization.java | 352 ++++++++ .../org/apache/sis/filter/IdentifierFilter.java | 19 +- .../main/org/apache/sis/filter/LogicalFilter.java | 7 +- .../main/org/apache/sis/filter/Optimization.java | 445 ++++++++-- .../main/org/apache/sis/filter/PropertyValue.java | 105 ++- .../org/apache/sis/filter/base/BinaryFunction.java | 19 + .../org/apache/sis/filter/base/UnaryFunction.java | 4 + .../org/apache/sis/filter/base/WarningEvent.java | 15 +- .../main/org/apache/sis/filter/math/Function.java | 5 +- .../main/org/apache/sis/filter/math/Registry.java | 4 +- .../main/org/apache/sis/filter/sqlmm/Registry.java | 4 +- .../main/org/apache/sis/filter/sqlmm/ST_Point.java | 4 +- .../org/apache/sis/filter/sqlmm/TwoGeometries.java | 32 +- .../org/apache/sis/filter/visitor/CopyVisitor.java | 4 +- .../apache/sis/geometry/wrapper/Geometries.java | 13 + .../apache/sis/geometry/wrapper/esri/Factory.java | 4 +- .../apache/sis/geometry/wrapper/j2d/Factory.java | 4 +- .../sis/geometry/wrapper/jts/FilteringContext.java | 2 +- .../org/apache/sis/image/BandAggregateLayout.java | 4 +- .../main/org/apache/sis/image/Colorizer.java | 4 +- .../main/org/apache/sis/image/Visualization.java | 4 +- .../sis/image/processing/CompoundFuture.java | 4 +- .../main/org/apache/sis/index/tree/PointTree.java | 12 +- .../sis/coverage/grid/DefaultEvaluatorTest.java | 366 ++++++++ .../grid/FractionalGridCoordinatesTest.java | 11 +- .../sis/coverage/grid/GridCoverage2DTest.java | 4 +- .../apache/sis/feature/AbstractFeatureTest.java | 33 +- .../apache/sis/feature/test/FeatureComparator.java | 4 +- .../apache/sis/filter/DynamicOptimizationTest.java | 176 ++++ .../org/apache/sis/filter/LogicalFilterTest.java | 6 +- .../apache/sis/filter/sqlmm/RegistryTestCase.java | 2 +- .../org.apache.sis.metadata/main/module-info.java | 1 + .../org/apache/sis/metadata/MetadataVisitor.java | 4 +- .../sis/metadata/MetadataVisitorException.java | 6 +- .../apache/sis/metadata/ModifiableMetadata.java | 103 +-- .../org/apache/sis/metadata/PropertyAccessor.java | 139 +++- .../apache/sis/metadata/PropertyInformation.java | 16 +- .../main/org/apache/sis/metadata/PropertyMap.java | 3 +- .../main/org/apache/sis/metadata/Pruner.java | 4 +- .../main/org/apache/sis/metadata/StateChanger.java | 11 +- .../main/org/apache/sis/metadata/TreeNode.java | 5 +- .../org/apache/sis/metadata/TreeTableView.java | 6 +- .../apache/sis/metadata/internal/ExcludedSet.java | 2 +- .../sis/metadata/internal/shared/Identifiers.java | 8 +- .../internal/shared/ImplementationHelper.java | 8 +- .../iso/DefaultExtendedElementInformation.java | 6 +- .../apache/sis/metadata/iso/DefaultMetadata.java | 11 +- .../org/apache/sis/metadata/iso/ISOMetadata.java | 5 +- .../sis/metadata/iso/citation/Citations.java | 6 +- .../sis/metadata/iso/citation/DefaultContact.java | 8 +- .../metadata/iso/citation/DefaultTelephone.java | 22 +- .../iso/content/DefaultCoverageDescription.java | 12 +- .../DefaultDigitalTransferOptions.java | 6 +- .../metadata/iso/distribution/DefaultFormat.java | 4 +- .../metadata/iso/distribution/DefaultMedium.java | 4 +- .../apache/sis/metadata/iso/extent/Extents.java | 2 +- .../iso/extent/NotSpatioTemporalException.java | 2 +- .../DefaultRepresentativeFraction.java | 6 +- .../maintenance/DefaultMaintenanceInformation.java | 8 +- .../iso/quality/DefaultEvaluationMethod.java | 14 +- .../iso/quality/DefaultMeasureReference.java | 4 +- .../sis/metadata/iso/quality/DefaultScope.java | 4 +- .../main/org/apache/sis/metadata/package-info.java | 2 +- .../apache/sis/metadata/simple/SimpleExtent.java | 2 +- .../org/apache/sis/metadata/sql/Dispatcher.java | 44 +- .../apache/sis/metadata/sql/MetadataSource.java | 6 +- .../org/apache/sis/temporal/GeneralDuration.java | 6 +- .../main/org/apache/sis/util/iso/AbstractName.java | 9 - .../org/apache/sis/util/iso/DefaultNameSpace.java | 6 +- .../org/apache/sis/util/iso/DefaultScopedName.java | 26 +- .../org/apache/sis/util/iso/RecordDefinition.java | 4 +- .../main/org/apache/sis/xml/PooledMarshaller.java | 1 + .../org/apache/sis/xml/PooledUnmarshaller.java | 1 + .../org/apache/sis/xml/TransformingWriter.java | 3 +- .../apache/sis/xml/bind/IdentifierMapAdapter.java | 2 +- .../apache/sis/xml/bind/IdentifierMapEntry.java | 10 +- .../sis/xml/bind/NonMarshalledAuthority.java | 14 +- .../apache/sis/xml/bind/lan/LocaleAndCharset.java | 6 +- .../org/apache/sis/xml/bind/lan/PT_Locale.java | 4 +- .../bind/metadata/replace/ServiceParameter.java | 2 +- .../xml/internal/shared/ExternalLinkHandler.java | 4 +- .../xml/{ => internal/shared}/InputFactory.java | 39 +- .../xml/{ => internal/shared}/OutputFactory.java | 10 +- .../sis/metadata/PropertyConsistencyCheck.java | 5 +- .../iso/citation/DefaultCitationDateTest.java | 1 + .../metadata/iso/citation/DefaultCitationTest.java | 6 +- .../metadata/iso/citation/DefaultContactTest.java | 1 + .../iso/citation/DefaultTelephoneTest.java | 51 ++ .../sis/metadata/sql/MetadataFallbackVerifier.java | 22 +- .../apache/sis/test/mock/IdentifiedObjectMock.java | 4 +- .../test/org/apache/sis/xml/LegacyCodesTest.java | 1 + .../org/apache/sis/xml/MarshallerPoolTest.java | 1 + .../test/org/apache/sis/xml/NamespacesTest.java | 1 + .../test/org/apache/sis/xml/NilReasonTest.java | 3 +- .../test/org/apache/sis/xml/TransformerTest.java | 1 + .../apache/sis/xml/TransformingNamespacesTest.java | 1 + .../org/apache/sis/xml/ValueConverterTest.java | 1 + .../test/org/apache/sis/xml/XLinkTest.java | 3 +- .../test/org/apache/sis/xml/XPointerTest.java | 1 + .../sis/xml/internal/shared/InputFactoryTest.java | 163 ++++ .../referencing/gazetteer/FinalLocationType.java | 26 +- .../gazetteer/GeohashReferenceSystem.java | 2 +- .../gazetteer/MilitaryGridReferenceSystem.java | 4 +- .../org/apache/sis/geometry/CoordinateFormat.java | 11 +- .../main/org/apache/sis/io/wkt/Element.java | 11 +- .../main/org/apache/sis/io/wkt/WKTDictionary.java | 20 +- .../sis/parameter/DefaultParameterDescriptor.java | 31 +- .../parameter/DefaultParameterDescriptorGroup.java | 39 +- .../sis/parameter/DefaultParameterValue.java | 2 +- .../apache/sis/parameter/FilteredParameters.java | 6 +- .../sis/parameter/MapProjectionDescriptor.java | 2 +- .../sis/parameter/MatrixParameterValues.java | 6 +- .../org/apache/sis/parameter/MatrixParameters.java | 13 +- .../org/apache/sis/parameter/ParameterFormat.java | 4 +- .../parameter/UnmodifiableParameterValueGroup.java | 9 +- .../org/apache/sis/parameter/package-info.java | 2 +- .../sis/referencing/AbstractIdentifiedObject.java | 32 +- .../apache/sis/referencing/IdentifiedObjects.java | 16 +- .../sis/referencing/crs/DefaultCompoundCRS.java | 10 +- .../sis/referencing/crs/DefaultProjectedCRS.java | 2 +- .../sis/referencing/cs/DefaultCompoundCS.java | 14 +- .../referencing/datum/DefaultDatumEnsemble.java | 4 +- .../referencing/datum/DefaultGeodeticDatum.java | 31 +- .../factory/ConcurrentAuthorityFactory.java | 9 +- .../referencing/factory/GeodeticObjectFactory.java | 2 +- .../referencing/factory/IdentifiedObjectSet.java | 13 +- .../factory/MultiAuthoritiesFactory.java | 8 +- .../sis/referencing/factory/package-info.java | 2 +- .../referencing/factory/sql/EPSGCodeFinder.java | 6 +- .../referencing/factory/sql/ObjectPertinence.java | 4 +- .../internal/shared/CoordinateOperations.java | 3 +- .../internal/shared/IntervalRectangle.java | 8 +- .../operation/AbstractCoordinateOperation.java | 15 +- .../operation/CoordinateOperationContext.java | 4 +- .../operation/DefaultConcatenatedOperation.java | 9 +- .../operation/DefaultOperationMethod.java | 2 +- .../referencing/operation/gridded/GridGroup.java | 4 +- .../operation/gridded/TileOrganizer.java | 4 +- .../sis/referencing/operation/matrix/Matrices.java | 2 +- .../operation/matrix/UnmodifiableMatrix.java | 4 +- .../sis/referencing/operation/package-info.java | 2 +- .../operation/projection/AlbersEqualArea.java | 4 +- .../operation/projection/AzimuthalEquidistant.java | 2 +- .../operation/projection/CassiniSoldner.java | 2 +- .../operation/projection/CylindricalEqualArea.java | 4 +- .../projection/EquidistantCylindrical.java | 4 +- .../projection/LambertAzimuthalEqualArea.java | 4 +- .../projection/LambertConicConformal.java | 4 +- .../referencing/operation/projection/Mercator.java | 4 +- .../projection/ModifiedAzimuthalEquidistant.java | 4 +- .../operation/projection/Mollweide.java | 2 +- .../operation/projection/ObliqueMercator.java | 3 +- .../operation/projection/ObliqueStereographic.java | 3 +- .../operation/projection/Orthographic.java | 4 +- .../operation/projection/PolarStereographic.java | 4 +- .../operation/projection/Polyconic.java | 3 +- .../referencing/operation/projection/Robinson.java | 2 +- .../operation/projection/SatelliteTracking.java | 3 +- .../operation/projection/Sinusoidal.java | 4 +- .../operation/projection/TransverseMercator.java | 2 +- .../sis/referencing/operation/provider/Affine.java | 2 +- .../operation/transform/ContextualParameters.java | 10 +- .../referencing/CC_GeneralOperationParameter.java | 23 +- .../parameter/DefaultParameterDescriptorTest.java | 23 + .../sis/referencing/operation/projection/NoOp.java | 6 +- .../transform/OperationMethodSetTest.java | 13 +- .../CC_GeneralOperationParameterTest.java | 11 + .../CC_OperationParameterGroupTest.java | 11 +- .../main/org/apache/sis/storage/landsat/Band.java | 8 +- .../org/apache/sis/storage/landsat/BandGroup.java | 5 +- .../apache/sis/storage/landsat/LandsatStore.java | 6 +- .../apache/sis/storage/landsat/MetadataReader.java | 8 +- .../apache/sis/storage/landsat/package-info.java | 2 +- .../sis/storage/geotiff/ImageFileDirectory.java | 3 +- .../sis/storage/geotiff/reader/XMLMetadata.java | 7 +- .../sis/storage/geotiff/writer/GeoEncoder.java | 6 +- .../apache/sis/storage/netcdf/MetadataReader.java | 12 +- .../org/apache/sis/storage/netcdf/NetcdfStore.java | 8 +- .../sis/storage/netcdf/base/DiscreteSampling.java | 13 + .../org/apache/sis/storage/netcdf/base/Raster.java | 8 +- .../sis/storage/netcdf/base/RasterResource.java | 14 +- .../apache/sis/storage/netcdf/base/Variable.java | 9 +- .../sis/storage/netcdf/classic/ChannelDecoder.java | 101 ++- .../sis/storage/netcdf/classic/GridInfo.java | 4 +- .../sis/storage/netcdf/classic/VariableInfo.java | 4 +- .../apache/sis/storage/netcdf/package-info.java | 2 +- .../sis/storage/netcdf/ucar/DecoderWrapper.java | 20 +- .../sis/storage/netcdf/ucar/DimensionWrapper.java | 8 +- .../sis/storage/netcdf/ucar/GridWrapper.java | 4 +- .../org/apache/sis/storage/netcdf/ucar/Utils.java | 83 -- .../sis/storage/netcdf/ucar/VariableWrapper.java | 61 +- .../storage/netcdf/classic/ChannelDecoderTest.java | 35 +- .../apache/sis/storage/sql/feature/Database.java | 4 +- .../sis/storage/sql/feature/FeatureStream.java | 2 +- .../apache/sis/storage/sql/feature/PrimaryKey.java | 7 +- .../apache/sis/storage/sql/feature/Relation.java | 9 +- .../org/apache/sis/storage/sql/feature/Table.java | 11 + .../sis/storage/sql/feature/ValueGetter.java | 4 +- .../sql/feature/SelectionClauseWriterTest.java | 2 +- .../main/org/apache/sis/storage/gpx/Metadata.java | 6 +- .../org/apache/sis/storage/gpx/WritableStore.java | 2 +- .../apache/sis/storage/xml/stream/InputType.java | 6 +- .../apache/sis/storage/xml/stream/OutputType.java | 6 +- .../sis/storage/xml/stream/RewriteOnUpdate.java | 2 +- .../sis/storage/xml/stream/StaxDataStore.java | 74 +- .../sis/storage/xml/stream/StaxStreamWriter.java | 4 +- .../org/apache/sis/io/stream/UpdatableWrite.java | 12 +- .../org/apache/sis/storage/AbstractFeatureSet.java | 31 +- .../org/apache/sis/storage/CoverageSubset.java | 5 +- .../main/org/apache/sis/storage/FeatureNaming.java | 72 +- .../main/org/apache/sis/storage/FeatureQuery.java | 21 +- .../main/org/apache/sis/storage/FeatureSubset.java | 17 + .../org/apache/sis/storage/MemoryFeatureSet.java | 135 ++- .../sis/storage/UnsupportedStorageException.java | 2 +- .../aggregate/BandAggregateGridResource.java | 6 +- .../storage/aggregate/ConcatenatedFeatureSet.java | 41 +- .../aggregate/ConcatenatedGridResource.java | 6 +- .../sis/storage/aggregate/GroupAggregate.java | 4 +- .../sis/storage/aggregate/JoinFeatureSet.java | 16 +- .../apache/sis/storage/aggregate/package-info.java | 2 +- .../apache/sis/storage/base/MetadataBuilder.java | 6 +- .../apache/sis/storage/base/ResourceLineage.java | 6 +- .../apache/sis/storage/base/SimpleAggregate.java | 4 +- .../apache/sis/storage/base/SortByComparator.java | 10 +- .../org/apache/sis/storage/base/URIDataStore.java | 5 +- .../sis/storage/csv/MovingFeatureBuilder.java | 4 +- .../main/org/apache/sis/storage/csv/Store.java | 6 +- .../org/apache/sis/storage/esri/RasterStore.java | 3 +- .../main/org/apache/sis/storage/folder/Store.java | 6 +- .../sis/storage/image/WorldFileResource.java | 10 +- .../org/apache/sis/storage/internal/Resources.java | 5 + .../sis/storage/internal/Resources.properties | 1 + .../sis/storage/internal/Resources_fr.properties | 1 + .../main/org/apache/sis/storage/tiling/Tile.java | 4 +- .../org/apache/sis/storage/FeatureNamingTest.java | 34 + .../sis/storage/esri/BILConsistencyTest.java | 3 +- .../sis/storage/esri/BIPConsistencyTest.java | 3 +- .../sis/storage/esri/BSQConsistencyTest.java | 3 +- .../sis/storage/image/SelfConsistencyTest.java | 3 +- .../sis/storage/test/CoverageReadConsistency.java | 2 +- .../src/org.apache.sis.util/main/module-info.java | 2 - .../main/org/apache/sis/io/CompoundFormat.java | 39 +- .../main/org/apache/sis/io/package-info.java | 2 +- .../main/org/apache/sis/math/ArrayVector.java | 10 + .../main/org/apache/sis/math/package-info.java | 2 +- .../main/org/apache/sis/measure/Range.java | 13 +- .../main/org/apache/sis/measure/UnitDimension.java | 6 +- .../main/org/apache/sis/measure/UnitServices.java | 6 +- .../main/org/apache/sis/measure/package-info.java | 2 +- .../main/org/apache/sis/util/Classes.java | 12 +- .../main/org/apache/sis/util/Numbers.java | 4 +- .../shared => collection}/CheckedArrayList.java | 97 ++- .../sis/util/collection/CheckedContainer.java | 96 ++- .../shared => collection}/CheckedHashSet.java | 47 +- .../apache/sis/util/collection/CodeListSet.java | 14 +- .../org/apache/sis/util/collection/Containers.java | 573 ++++++++++++- .../sis/util/collection/DefaultTreeTable.java | 19 +- .../org/apache/sis/util/collection/DerivedSet.java | 11 + .../shared => collection}/EmptyQueue.java | 4 +- .../sis/util/collection/FrequencySortedSet.java | 6 + .../org/apache/sis/util/collection/RangeSet.java | 13 +- .../apache/sis/util/collection/TableColumn.java | 13 + .../apache/sis/util/collection/TreeNodeList.java | 10 + .../UnmodifiableArrayList.java | 117 +-- .../apache/sis/util/collection/WeakHashSet.java | 11 + .../sis/util/internal/shared/CollectionsExt.java | 916 --------------------- .../apache/sis/util/internal/shared/ViewAsSet.java | 76 ++ .../test/org/apache/sis/setup/OptionKeyTest.java | 4 + .../test/org/apache/sis/test/Printer.java | 2 +- .../CheckedArrayListTest.java | 27 +- .../util/internal/shared/CollectionsExtTest.java | 175 ---- .../test/org/apache/sis/cql/FilterReadingTest.java | 14 +- .../test/org/apache/sis/cql/FilterWritingTest.java | 10 +- .../geometries/internal/shared/DefaultPolygon.java | 10 +- .../apache/sis/geometries/mesh/MeshPrimitive.java | 6 +- .../main/org/apache/sis/map/SymbologyVisitor.java | 2 +- .../test/org/apache/sis/map/SEPortrayerTest.java | 2 +- .../sis/storage/geoheif/CoverageBuilder.java | 4 +- .../apache/sis/storage/geoheif/GeoHeifStore.java | 4 +- .../main/org/apache/sis/storage/geoheif/Group.java | 4 +- .../storage/isobmff/base/IdentifiedMediaData.java | 2 +- .../apache/sis/storage/geopackage/GpkgStore.java | 2 +- .../apache/sis/storage/geopackage/Initializer.java | 2 +- .../sis/storage/shapefile/ShapefileStore.java | 16 +- netbeans-project/ivy.xml | 10 +- .../apache/sis/gui/controls/SyncWindowList.java | 4 +- .../apache/sis/gui/coverage/CoverageCanvas.java | 23 +- .../org/apache/sis/gui/coverage/package-info.java | 2 +- .../org/apache/sis/gui/dataset/ExpandableList.java | 4 +- .../org/apache/sis/gui/dataset/FeatureList.java | 4 +- .../org/apache/sis/gui/dataset/package-info.java | 2 +- .../sis/gui/metadata/IdentificationInfo.java | 2 +- .../sis/gui/metadata/RepresentationInfo.java | 2 +- .../org/apache/sis/gui/metadata/package-info.java | 2 +- .../gui/referencing/RecentReferenceSystems.java | 9 +- .../apache/sis/gui/referencing/package-info.java | 2 +- .../org/apache/sis/storage/gdal/FeatureLayer.java | 12 + .../org/apache/sis/storage/gdal/GDALStore.java | 18 +- .../org/apache/sis/storage/gdal/package-info.java | 2 +- settings.gradle.kts | 6 +- 343 files changed, 5844 insertions(+), 2969 deletions(-) diff --cc endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java index bdbe62f436,401c404991..bb6a02b650 --- a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java +++ b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/ImageRenderer.java @@@ -60,9 -60,10 +60,10 @@@ import org.apache.sis.math.Vector import static org.apache.sis.image.PlanarImage.XY_DIMENSIONS_KEY; import static org.apache.sis.image.PlanarImage.GRID_GEOMETRY_KEY; import static org.apache.sis.image.PlanarImage.SAMPLE_DIMENSIONS_KEY; + import static org.apache.sis.coverage.grid.GridCoverage.BIDIMENSIONAL; -// Specific to the geoapi-4.0 branch: -import org.opengis.coordinate.MismatchedDimensionException; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.geometry.MismatchedDimensionException; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java index 0b1c1d48e0,ad4c85bb04..2dd1b99645 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java @@@ -33,13 -33,9 +33,13 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.xml.internal.shared.LegacyNamespaces; import org.apache.sis.metadata.internal.Dependencies; import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; - import org.apache.sis.util.internal.shared.CollectionsExt; + import org.apache.sis.util.collection.Containers; import static org.apache.sis.metadata.internal.shared.ImplementationHelper.ensurePositive; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.Obligation; +import org.opengis.metadata.citation.ResponsibleParty; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import java.util.AbstractSet; import java.util.Iterator; @@@ -566,7 -565,8 +566,7 @@@ public class DefaultExtendedElementInfo * @since 0.5 */ public void setRationale(final InternationalString newValue) { - rationales = writeCollection(CollectionsExt.singletonOrEmpty(newValue), rationales, InternationalString.class); - checkWritePermission(rationale); - rationale = newValue; ++ rationales = writeCollection(Containers.singletonOrEmpty(newValue), rationales, InternationalString.class); } /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java index 00cbad7b00,13dce9939c..a3c7498a39 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java @@@ -33,17 -33,12 +33,17 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.xml.bind.gco.GO_Real; import org.apache.sis.xml.bind.metadata.CI_Citation; import org.apache.sis.xml.bind.metadata.MD_Identifier; -import org.apache.sis.xml.internal.shared.LegacyNamespaces; -import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; import org.apache.sis.metadata.internal.Dependencies; +import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; +import org.apache.sis.xml.internal.shared.LegacyNamespaces; - import org.apache.sis.util.internal.shared.CollectionsExt; + import org.apache.sis.util.collection.Containers; import static org.apache.sis.metadata.internal.shared.ImplementationHelper.ensurePositive; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.distribution.MediumName; +import org.apache.sis.util.internal.shared.CodeLists; +import org.apache.sis.metadata.iso.citation.DefaultCitation; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import java.util.AbstractSet; import java.util.Iterator; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java index 4d5cdfde24,f75ad153b8..f8edc1f386 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java @@@ -37,13 -37,9 +37,13 @@@ import org.apache.sis.metadata.iso.lega import org.apache.sis.metadata.internal.Dependencies; import org.apache.sis.xml.bind.FilterByVersion; import org.apache.sis.xml.internal.shared.LegacyNamespaces; - import org.apache.sis.util.internal.shared.CollectionsExt; + import org.apache.sis.util.collection.Containers; import static org.apache.sis.metadata.internal.shared.ImplementationHelper.valueIfDefined; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; +import org.opengis.temporal.PeriodDuration; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.maintenance.Scope; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/Dispatcher.java index 3b6c7faf4b,bcd8c733b8..9669c12c11 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/Dispatcher.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/sql/Dispatcher.java @@@ -30,15 -36,9 +36,15 @@@ import org.apache.sis.metadata.Modifiab import org.apache.sis.metadata.MetadataStandard; import org.apache.sis.metadata.KeyNamePolicy; import org.apache.sis.metadata.ValueExistencePolicy; - import org.apache.sis.system.Semaphores; import org.apache.sis.metadata.internal.Dependencies; + import org.apache.sis.system.Semaphores; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; + +// Specific to the geoapi-3.1 branch: +import org.opengis.metadata.citation.Responsibility; + /** * The handler for metadata proxy that implement (indirectly) metadata interfaces like diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java index 084b09e67f,ef71b863f6..3df4cdb5a2 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java @@@ -33,11 -33,8 +33,11 @@@ import org.apache.sis.xml.bind.gco.GO_G import org.apache.sis.metadata.internal.shared.NameToIdentifier; import org.apache.sis.util.iso.DefaultMemberName; import org.apache.sis.util.iso.Names; - import static org.apache.sis.util.internal.shared.CollectionsExt.nonNull; + import static org.apache.sis.util.collection.Containers.nonNull; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.parameter.ParameterDirection; import org.opengis.metadata.Identifier; diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java index 27a0aa0d37,c89c75eb2d..89cd7fdd79 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java @@@ -25,11 -25,11 +25,11 @@@ import jakarta.xml.bind.annotation.adap import org.opengis.util.GenericName; import org.opengis.referencing.IdentifiedObject; import org.apache.sis.util.internal.shared.Strings; - import org.apache.sis.util.internal.shared.CollectionsExt; + import org.apache.sis.util.collection.Containers; import org.apache.sis.xml.bind.gco.GO_GenericName; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java index 5f4572a82e,0547a1ba72..3b760398a5 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java @@@ -70,15 -68,8 +68,13 @@@ import org.apache.sis.util.iso.DefaultN import org.apache.sis.util.resources.Errors; import static org.apache.sis.util.ArgumentChecks.*; import static org.apache.sis.util.Utilities.deepEquals; - import static org.apache.sis.util.internal.shared.CollectionsExt.nonNull; - import static org.apache.sis.util.internal.shared.CollectionsExt.nonEmpty; - import static org.apache.sis.util.internal.shared.CollectionsExt.immutableSet; + import static org.apache.sis.util.collection.Containers.nonNull; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; +import org.opengis.referencing.operation.Conversion; +import org.opengis.referencing.operation.Projection; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.referencing.ObjectDomain; @@@ -387,10 -378,10 +383,10 @@@ public class AbstractIdentifiedObject e // "identifiers": Identifier or Identifier[] // ----------------------------------------- value = properties.get(IDENTIFIERS_KEY); - if (value instanceof Identifier) { - identifiers = Collections.singleton((Identifier) value); - } else if (value instanceof Identifier[]) { - identifiers = Containers.copyToImmutableSetIgnoreNull((Identifier[]) value); + if (value instanceof ReferenceIdentifier) { + identifiers = Collections.singleton((ReferenceIdentifier) value); + } else if (value instanceof ReferenceIdentifier[]) { - identifiers = immutableSet(true, (ReferenceIdentifier[]) value); ++ identifiers = Containers.copyToImmutableSetIgnoreNull((ReferenceIdentifier[]) value); } else if (value != null) { throw illegalPropertyType(properties, IDENTIFIERS_KEY, value); } diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultDatumEnsemble.java index 685fae51aa,72b0d08d80..511612ceed --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultDatumEnsemble.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultDatumEnsemble.java @@@ -52,12 -52,8 +52,12 @@@ import org.apache.sis.util.Classes import org.apache.sis.util.ComparisonMode; import org.apache.sis.util.Utilities; import org.apache.sis.util.resources.Errors; - import org.apache.sis.util.internal.shared.CollectionsExt; + import org.apache.sis.util.collection.Containers; +// Specific to the main and geoapi-3.1 branches: +import java.util.Date; +import org.opengis.referencing.datum.VerticalDatumType; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import java.util.Optional; import java.time.temporal.Temporal; diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java index 55493866b6,916bb702d3..d17e8afa6d --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java @@@ -184,7 -180,7 +183,7 @@@ final class DefaultConcatenatedOperatio final MathTransformFactory mtFactory) throws FactoryException { -- final var flattened = new ArrayList<CoordinateOperation>(operations.length); ++ final var flattened = new ArrayList<SingleOperation>(operations.length); final CoordinateReferenceSystem crs = initialize(properties, operations, flattened, mtFactory, sourceCRS, (sourceCRS == null), (coordinateOperationAccuracy == null)); @@@ -200,7 -196,7 +199,7 @@@ * At this point we should have flattened.size() >= 2, except if some operations * were omitted because their associated math transform were identity operation. */ - this.operations = UnmodifiableArrayList.wrap(flattened.toArray(SingleOperation[]::new)); - this.operations = Containers.copyToImmutableList(flattened, CoordinateOperation.class); ++ this.operations = Containers.copyToImmutableList(flattened, SingleOperation.class); } /** @@@ -247,7 -243,7 +246,7 @@@ private CoordinateReferenceSystem initialize( final Map<String,?> properties, final CoordinateOperation[] operations, -- final List<CoordinateOperation> flattened, ++ final List<SingleOperation> flattened, final MathTransformFactory mtFactory, CoordinateReferenceSystem previous, boolean setSource, @@@ -307,7 -303,7 +306,7 @@@ } else { // Note: operation (source, target) may be in reverse order, but it should be taken as metadata. if (!step.isIdentity()) { -- flattened.add(op); ++ flattened.add((SingleOperation) op); } previous = target; // For next iteration cycle. } diff --cc endorsed/src/org.apache.sis.storage.xml/main/org/apache/sis/storage/gpx/Metadata.java index eb0d4f845d,9c6a3eeba5..30f13994e8 --- a/endorsed/src/org.apache.sis.storage.xml/main/org/apache/sis/storage/gpx/Metadata.java +++ b/endorsed/src/org.apache.sis.storage.xml/main/org/apache/sis/storage/gpx/Metadata.java @@@ -317,13 -313,12 +316,12 @@@ public final class Metadata extends Sim * @return means of communication with person(s) and organisations(s) associated with the resource. */ @Override - public Collection<Responsibility> getPointOfContacts() { + public Collection<ResponsibleParty> getPointOfContacts() { if (creator != null) { final var p = new Person(creator); - return (author != null) ? UnmodifiableArrayList.wrap(new ResponsibleParty[] {p, author}) - : Collections.singletonList(author); - return (author != null) ? List.of(p, author) : List.of(author); ++ return (author != null) ? List.of(p, author) : List.of(p); } - return (author != null) ? Collections.singletonList(author) : Collections.emptyList(); + return (author != null) ? List.of(author) : List.of(); } /** diff --cc optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java index 1b9685e3cf,62ba73d87c..e1c22a1a62 --- a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java +++ b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java @@@ -60,9 -60,12 +60,9 @@@ import org.apache.sis.util.Workaround import org.apache.sis.util.logging.Logging; import org.apache.sis.util.collection.BackingStoreException; import org.apache.sis.util.resources.Vocabulary; - import static org.apache.sis.util.internal.shared.CollectionsExt.nonNull; + import static org.apache.sis.util.collection.Containers.nonNull; import static org.apache.sis.gui.internal.LogHandler.LOGGER; -// Specific to the geoapi-4.0 branch: -import org.opengis.util.InternationalString; - /** * The pane where to show the values of {@link Identification} objects.
