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 c4eceb3ef137eab24487d5d0458d99c98568225c Merge: 3a2127e98a c4bda9bad1 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Fri Jul 12 11:52:22 2024 +0200 Merge branch 'geoapi-4.0' into geoapi-3.1 .../apache/sis/coverage/grid/GridCoverage2D.java | 1 + .../sis/feature/builder/FeatureTypeBuilder.java | 1 + .../main/org/apache/sis/image/ComputedImage.java | 1 + .../apache/sis/metadata/ModifiableMetadata.java | 102 +++--- .../apache/sis/metadata/iso/DefaultMetadata.java | 1 - .../sis/metadata/iso/acquisition/DefaultEvent.java | 1 - .../iso/acquisition/DefaultRequirement.java | 1 - .../DefaultDigitalTransferOptions.java | 1 - .../sis/metadata/iso/extent/DefaultExtent.java | 2 - .../iso/identification/AbstractIdentification.java | 16 +- .../identification/DefaultDataIdentification.java | 5 +- .../metadata/iso/identification/DefaultUsage.java | 2 - .../metadata/iso/lineage/DefaultProcessStep.java | 1 - .../maintenance/DefaultMaintenanceInformation.java | 1 - .../org/apache/sis/util/iso/DefaultTypeName.java | 15 +- .../main/org/apache/sis/util/iso/Names.java | 36 ++- .../main/org/apache/sis/util/iso/TypeNames.java | 8 - .../main/org/apache/sis/io/wkt/Colors.java | 3 +- .../main/org/apache/sis/io/wkt/Convention.java | 33 +- .../main/org/apache/sis/io/wkt/ElementKind.java | 14 +- .../sis/parameter/DefaultParameterDescriptor.java | 2 +- .../main/org/apache/sis/referencing/CRS.java | 8 +- .../main/org/apache/sis/referencing/CommonCRS.java | 12 +- .../apache/sis/referencing/NamedIdentifier.java | 1 + .../sis/referencing/StandardDefinitions.java | 4 +- .../apache/sis/referencing/crs/AbstractCRS.java | 28 ++ .../sis/referencing/crs/AbstractDerivedCRS.java | 18 +- .../sis/referencing/crs/DefaultDerivedCRS.java | 50 +-- .../sis/referencing/crs/DefaultEngineeringCRS.java | 69 ++++- .../sis/referencing/crs/DefaultGeocentricCRS.java | 72 ++++- .../sis/referencing/crs/DefaultGeodeticCRS.java | 36 ++- .../sis/referencing/crs/DefaultGeographicCRS.java | 44 ++- .../sis/referencing/crs/DefaultParametricCRS.java | 67 +++- .../sis/referencing/crs/DefaultProjectedCRS.java | 16 +- .../sis/referencing/crs/DefaultTemporalCRS.java | 71 ++++- .../sis/referencing/crs/DefaultVerticalCRS.java | 73 ++++- .../sis/referencing/datum/AbstractDatum.java | 71 ++++- .../referencing/datum/DefaultDatumEnsemble.java | 273 +++++++++++++++++ .../referencing/factory/GeodeticObjectFactory.java | 341 +++++++++++++-------- .../sis/referencing/factory/sql/EPSGFactory.java | 4 +- .../apache/sis/referencing/internal/Resources.java | 10 + .../sis/referencing/internal/Resources.properties | 2 + .../referencing/internal/Resources_fr.properties | 2 + .../transform/DefaultMathTransformFactory.java | 1 + .../operation/transform/InterpolatedTransform.java | 2 +- .../sis/referencing/privy/AffineTransform2D.java | 4 + .../referencing/privy/ReferencingUtilities.java | 3 +- .../apache/sis/referencing/privy/WKTKeywords.java | 1 + .../sis/referencing/ImmutableIdentifierTest.java | 4 +- .../referencing/crs/DefaultEngineeringCRSTest.java | 4 +- .../referencing/crs/DefaultGeocentricCRSTest.java | 2 +- .../referencing/crs/DefaultTemporalCRSTest.java | 2 +- .../apache/sis/referencing/crs/HardCodedCRS.java | 40 +-- .../factory/IdentifiedObjectFinderTest.java | 2 +- .../operation/CoordinateOperationFinderTest.java | 2 +- .../operation/DefaultConversionTest.java | 11 +- .../operation/DefaultTransformationTest.java | 2 +- .../transform/CoordinateSystemTransformTest.java | 2 +- .../referencing/privy/DefinitionVerifierTest.java | 2 +- .../apache/sis/test/integration/MetadataTest.java | 2 +- .../apache/sis/storage/landsat/LandsatStore.java | 1 + .../apache/sis/storage/geotiff/GeoTiffStore.java | 1 + .../org/apache/sis/storage/netcdf/NetcdfStore.java | 1 + .../org/apache/sis/io/stream/ChannelDataInput.java | 1 + .../apache/sis/storage/CanNotProbeException.java | 1 + .../main/org/apache/sis/storage/DataStore.java | 3 + .../src/org.apache.sis.util/main/module-info.java | 3 +- .../main/org/apache/sis/pending/jdk/JDK19.java | 21 ++ .../org/apache/sis/system/OptionalDependency.java | 1 + .../test/org/apache/sis/util/LocalesTest.java | 17 +- geoapi/snapshot | 2 +- .../apache/sis/gui/coverage/BandRangeTable.java | 1 + .../apache/sis/gui/coverage/GridSliceSelector.java | 1 + .../main/org/apache/sis/gui/coverage/GridView.java | 1 + .../sis/gui/coverage/ImagePropertyExplorer.java | 3 +- .../org/apache/sis/gui/dataset/FeatureTable.java | 3 + .../main/org/apache/sis/gui/dataset/LogViewer.java | 1 + .../apache/sis/gui/dataset/ResourceExplorer.java | 1 + .../org/apache/sis/gui/dataset/ResourceTree.java | 8 +- .../org/apache/sis/gui/internal/LogHandler.java | 2 +- .../apache/sis/gui/internal/io/FileAccessView.java | 1 + .../org/apache/sis/gui/map/GestureFollower.java | 1 + .../main/org/apache/sis/gui/map/StatusBar.java | 1 + .../apache/sis/gui/metadata/MetadataSummary.java | 1 + .../sis/gui/metadata/StandardMetadataTree.java | 1 + .../gui/referencing/RecentReferenceSystems.java | 1 + 86 files changed, 1274 insertions(+), 410 deletions(-) diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadata.java index 7c9245a6f3,3c129ac183..2b5f84139f --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadata.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultMetadata.java @@@ -374,8 -374,7 +374,7 @@@ public class DefaultMetadata extends IS * * @since 1.5 */ - @SuppressWarnings("this-escape") - public DefaultMetadata(final Responsibility contact, + public DefaultMetadata(final ResponsibleParty contact, final Temporal dateStamp, final Identification identificationInfo) { diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java index a47f0e1dea,40a57128ab..5e0330e6db --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java @@@ -145,12 -145,11 +145,11 @@@ public class DefaultUsage extends ISOMe * @param specificUsage brief description of the resource and/or resource series usage, or {@code null} if none. * @param userContactInfo means of communicating with person(s) and organization(s), or {@code null} if none. */ - @SuppressWarnings("this-escape") public DefaultUsage(final CharSequence specificUsage, - final Responsibility userContactInfo) + final ResponsibleParty userContactInfo) { this.specificUsage = Types.toInternationalString(specificUsage); - this.userContactInfo = singleton(userContactInfo, Responsibility.class); + this.userContactInfo = singleton(userContactInfo, ResponsibleParty.class); } /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/AbstractCRS.java index fa32041ea3,8aec007e7b..9fafafbdc2 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/AbstractCRS.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/AbstractCRS.java @@@ -42,12 -45,13 +45,13 @@@ import org.apache.sis.util.Utilities import org.apache.sis.util.ComparisonMode; import org.apache.sis.util.resources.Errors; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.crs.GeneralDerivedCRS; +import org.opengis.geometry.MismatchedDimensionException; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.Identifier; - -// Specific to the geoapi-4.0 branch: -import org.opengis.referencing.crs.DerivedCRS; + import org.opengis.referencing.datum.DatumEnsemble; -import org.opengis.coordinate.MismatchedDimensionException; /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java index 6e3c3cb403,27125cbaea..376505ba97 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java @@@ -29,9 -29,9 +29,12 @@@ import org.apache.sis.referencing.cs.Ab import org.apache.sis.util.ArgumentChecks; import org.apache.sis.io.wkt.Formatter; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.crs.GeocentricCRS; + + // Specific to the geoapi-3.1 and geoapi-4.0 branches: + import org.opengis.referencing.datum.DatumEnsemble; + /** * A 2- or 3-dimensional coordinate reference system with the origin at the approximate centre of mass of the earth. diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultProjectedCRS.java index df474db879,abac077c16..663090219d --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultProjectedCRS.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultProjectedCRS.java @@@ -131,11 -127,11 +131,11 @@@ public class DefaultProjectedCRS extend * @throws MismatchedDimensionException if the source and target dimensions of {@code baseToDerived} * do not match the dimensions of {@code base} and {@code derivedCS} respectively. * - * @see org.apache.sis.referencing.factory.GeodeticObjectFactory#createProjectedCRS(Map, GeodeticCRS, Conversion, CartesianCS) + * @see org.apache.sis.referencing.factory.GeodeticObjectFactory#createProjectedCRS(Map, GeographicCRS, Conversion, CartesianCS) */ public DefaultProjectedCRS(final Map<String,?> properties, - final GeodeticCRS baseCRS, + final GeographicCRS baseCRS, - final Conversion conversion, + final Conversion baseToDerived, final CartesianCS derivedCS) throws MismatchedDimensionException { diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultTemporalCRS.java index e7549ff4fb,be954702c0..625064eddc --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultTemporalCRS.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/crs/DefaultTemporalCRS.java @@@ -45,9 -44,9 +44,12 @@@ import org.apache.sis.math.Fraction import static org.apache.sis.util.privy.Constants.NANOS_PER_SECOND; import static org.apache.sis.util.privy.Constants.MILLIS_PER_SECOND; +// Specific to the main and geoapi-3.1 branches: +import org.apache.sis.temporal.TemporalDate; + + // Specific to the geoapi-3.1 and geoapi-4.0 branches: + import org.opengis.referencing.datum.DatumEnsemble; + /** * A 1-dimensional coordinate reference system used for the recording of time. diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/AbstractDatum.java index 8ccec21830,56c14ae7c9..e0f39c219d --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/AbstractDatum.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/AbstractDatum.java @@@ -48,9 -49,14 +49,9 @@@ import static org.apache.sis.util.colle // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.Identifier; -// Specific to the geoapi-4.0 branch: -import org.opengis.annotation.UML; -import static org.opengis.annotation.Obligation.*; -import static org.opengis.annotation.Specification.*; - /** - * Specifies the relationship of a {@linkplain org.apache.sis.referencing.cs.AbstractCS Coordinate System} to the earth. + * Specifies the relationship of a Coordinate System to the earth. * A datum can be defined as a set of real points on the earth that have coordinates. * Each datum subtype can be associated with only specific types of * {@linkplain org.apache.sis.referencing.cs.AbstractCS coordinate systems}, thus creating specific types of @@@ -293,21 -311,32 +322,47 @@@ public class AbstractDatum extends Abst return Optional.ofNullable(anchorEpoch); } + /** + * The time after which this datum definition is valid. + * + * @return the time after which this datum definition is valid, or {@code null} if none. + * + * @deprecated Since ISO 19111:2019, replaced by {@link #getAnchorEpoch()}. + */ + @Override + @Deprecated(since = "1.5") + @XmlSchemaType(name = "date") + @XmlElement(name = "realizationEpoch") + public Date getRealizationEpoch() { + return Datum.super.getRealizationEpoch(); + } + + /** + * Returns the date on which the datum definition was published. + * + * @return date on which the datum definition was published. + * + * @since 1.5 + */ + @Override + public Optional<Temporal> getPublicationDate() { + return Optional.ofNullable(publicationDate); + } + + /** + * Returns the name, identifier, alias and remarks for the reference system realized by this reference frame. + * All datums that are members of a {@linkplain DefaultDatumEnsemble datum ensemble} shall have the same + * conventional reference system. + * + * @return reference system realized by this reference frame. + * + * @since 1.5 + */ + @Override + public Optional<IdentifiedObject> getConventionalRS() { + return Optional.ofNullable(conventionalRS); + } + /** * Returns {@code true} if either the {@linkplain #getName() primary name} or at least * one {@linkplain #getAlias() alias} matches the given string according heuristic rules. @@@ -470,8 -499,19 +525,10 @@@ */ AbstractDatum() { super(org.apache.sis.referencing.privy.NilReferencingObject.INSTANCE); + publicationDate = null; + conventionalRS = null; } - /** - * Returns a description of the point(s) used to anchor the datum to the Earth. - */ - @XmlElement(name = "anchorDefinition") - @UML(identifier="anchorPoint", obligation=OPTIONAL, specification=ISO_19111, version=2003) - private InternationalString getAnchorPoint() { - return getAnchorDefinition().orElse(null); - } - /** * Invoked by JAXB only at unmarshalling time. * diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/GeodeticObjectFactory.java index bba8fdeb68,56c4887c57..6401dbf97e --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/GeodeticObjectFactory.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/GeodeticObjectFactory.java @@@ -849,8 -848,10 +898,10 @@@ public class GeodeticObjectFactory exte */ @Override public ProjectedCRS createProjectedCRS(final Map<String,?> properties, - final GeographicCRS baseCRS, final Conversion conversion, - final CartesianCS derivedCS) throws FactoryException - final GeodeticCRS baseCRS, ++ final GeographicCRS baseCRS, + final Conversion baseToDerived, + final CartesianCS derivedCS) + throws FactoryException { final DefaultProjectedCRS crs; try { diff --cc geoapi/snapshot index c93fa79af9,8281380030..83b14aa703 --- a/geoapi/snapshot +++ b/geoapi/snapshot @@@ -1,1 -1,1 +1,1 @@@ - Subproject commit c93fa79af984aecb487e55de301ce12afe9f72b7 -Subproject commit 828138003047cb68d25fb162732435be54ef2891 ++Subproject commit 83b14aa7031624172b5ab29b0bc534a588ec1ec5