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

Reply via email to