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 01b0b23c5baa0a2099531485ce1883ea6d20fd01
Merge: 75f06b5712 805379d32e
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat May 11 17:16:53 2024 +0200

    Merge branch 'geoapi-4.0' into geoapi-3.1, except for 
`IdentifiedObject.getRemarks()` which is kept unchanged for compatibility with 
GeoAPI 3.0.

 .../apache/sis/feature/AbstractIdentifiedType.java | 13 +++----
 .../org/apache/sis/feature/AbstractOperation.java  |  4 +--
 .../main/org/apache/sis/feature/FeatureFormat.java |  7 ++--
 .../apache/sis/feature/builder/TypeBuilder.java    |  4 +--
 .../sis/feature/DefaultAttributeTypeTest.java      |  5 ++-
 .../builder/AssociationRoleBuilderTest.java        |  4 +--
 .../feature/builder/AttributeTypeBuilderTest.java  | 12 +++----
 .../builder/CharacteristicTypeBuilderTest.java     |  4 +--
 .../feature/builder/FeatureTypeBuilderTest.java    |  4 +--
 .../org/apache/sis/metadata/PropertyAccessor.java  |  5 +--
 .../org/apache/sis/metadata/TypeValuePolicy.java   | 15 ++++----
 .../metadata/simple/SimpleIdentifiedObject.java    |  7 ++--
 .../org/apache/sis/metadata/sql/Dispatcher.java    |  2 +-
 .../apache/sis/metadata/sql/MetadataSource.java    |  2 +-
 .../bind/metadata/replace/QualityParameter.java    | 13 +++----
 .../bind/metadata/replace/ServiceParameter.java    |  9 ++---
 .../metadata/replace/QualityParameterTest.java     |  4 +--
 .../metadata/replace/ServiceParameterTest.java     |  4 +--
 .../org/apache/sis/xml/test/PackageVerifier.java   |  2 +-
 .../sis/referencing/AbstractIdentifiedObject.java  | 33 ++++++++----------
 .../org/apache/sis/referencing/Properties.java     |  2 +-
 .../operation/AbstractCoordinateOperation.java     | 23 +++----------
 .../operation/LooselyDefinedMethod.java            |  4 +--
 .../operation/TransformedCoordinateSet.java        |  2 ++
 .../apache/sis/parameter/ParameterBuilderTest.java | 15 ++++----
 .../org/apache/sis/parameter/ParametersTest.java   | 35 ++++++++++---------
 .../referencing/AbstractIdentifiedObjectTest.java  | 19 +++++-----
 .../referencing/AbstractReferenceSystemTest.java   |  5 +--
 .../org/apache/sis/referencing/Assertions.java     | 15 ++++++++
 .../sis/referencing/cs/DefaultCartesianCSTest.java |  3 +-
 .../referencing/cs/DefaultEllipsoidalCSTest.java   |  3 +-
 .../referencing/datum/DefaultEllipsoidTest.java    |  5 +--
 .../datum/DefaultGeodeticDatumTest.java            | 21 +++++-------
 .../datum/DefaultPrimeMeridianTest.java            |  3 +-
 .../datum/DefaultTemporalDatumTest.java            |  3 +-
 .../datum/DefaultVerticalDatumTest.java            |  7 ++--
 .../operation/SingleOperationMarshallingTest.java  |  4 +--
 .../operation/provider/ProvidersTest.java          |  6 ++--
 .../CC_GeneralOperationParameterTest.java          | 40 ++++++++++------------
 .../CC_OperationParameterGroupTest.java            |  4 +--
 .../test/org/apache/sis/storage/gpx/TypesTest.java |  2 +-
 .../apache/sis/storage/folder/StoreProvider.java   |  2 +-
 .../main/org/apache/sis/util/Classes.java          | 30 ++++++++++++++++
 .../main/org/apache/sis/util/Deprecable.java       |  6 ++--
 geoapi/snapshot                                    |  2 +-
 .../org/apache/sis/gui/dataset/FeatureTable.java   |  2 +-
 46 files changed, 229 insertions(+), 187 deletions(-)

diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java
index a34a79c73f,679b1ed56e..8b4b5d266b
--- 
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
@@@ -594,12 -592,11 +595,11 @@@ public class AbstractIdentifiedObject e
       * If this object {@linkplain #isDeprecated() is deprecated}, then the 
remarks should give
       * indication about the replacement (e.g. <q>superceded by …</q>).
       *
 -     * @return the remarks.
 +     * @return the remarks, or {@code null} if none.
       */
      @Override
-     @XmlElement(name = "remarks")
 -    public Optional<InternationalString> getRemarks() {
 -        return Optional.ofNullable(remarks);
 +    public InternationalString getRemarks() {
 +        return remarks;
      }
  
      /**
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/LooselyDefinedMethod.java
index e60f56ebad,ce9430289b..b8a11e9b86
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/LooselyDefinedMethod.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/LooselyDefinedMethod.java
@@@ -65,13 -65,13 +65,13 @@@ final class LooselyDefinedMethod 
      static final DefaultOperationMethod AFFINE_GEOCENTRIC;
  
      static {
-         final HashMap<String,Object> properties = new HashMap<>(4);
+         final var properties = new HashMap<String,Object>(4);
          properties.put(DefaultOperationMethod.NAME_KEY,    "Undefined 
parameters");
          properties.put(DefaultOperationMethod.REMARKS_KEY, "Placeholder for 
what should be a chain of coordinate operations.");
-         final DefaultParameterDescriptorGroup parameters = new 
DefaultParameterDescriptorGroup(properties, 0, 1);
+         final var parameters = new 
DefaultParameterDescriptorGroup(properties, 0, 1);
  
          properties.put(DefaultOperationMethod.NAME_KEY,    "Affine parametric 
transformation in geocentric domain");
 -        properties.put(DefaultOperationMethod.REMARKS_KEY, 
parameters.getRemarks().get());
 +        properties.put(DefaultOperationMethod.REMARKS_KEY, 
parameters.getRemarks());
          properties.put(DefaultOperationMethod.FORMULA_KEY, new DefaultFormula(
                  "This operation method is currently an implementation 
dependent black box. " +
                  "A future version may redefine this method in terms of more 
standard methods."));
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/parameter/ParametersTest.java
index 40629d4c6d,82190ee516..18d92697ec
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/parameter/ParametersTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/parameter/ParametersTest.java
@@@ -109,23 -110,23 +110,23 @@@ public final class ParametersTest exten
      {
          assertEquals(valueDomain, Parameters.getValueDomain(descriptor));
          assertEquals(valueDomain, Parameters.getValueDomain(new 
ParameterDescriptor<T>() {
-             @Override public ReferenceIdentifier      getName()          
{return descriptor.getName();}
-             @Override public Collection<GenericName>  getAlias()         
{return descriptor.getAlias();}
-             @Override public Set<ReferenceIdentifier> getIdentifiers()   
{return descriptor.getIdentifiers();}
-             @Override public InternationalString      getRemarks()       
{return descriptor.getRemarks();}
-             @Override public InternationalString      getDescription()   
{return descriptor.getDescription();}
-             @Override public ParameterDirection       getDirection()     
{return descriptor.getDirection();}
-             @Override public int                      getMinimumOccurs() 
{return descriptor.getMinimumOccurs();}
-             @Override public int                      getMaximumOccurs() 
{return descriptor.getMaximumOccurs();}
-             @Override public TypeName                 getValueType()     
{return descriptor.getValueType();}
-             @Override public Class<T>                 getValueClass()    
{return descriptor.getValueClass();}
-             @Override public Set<T>                   getValidValues()   
{return descriptor.getValidValues();}
-             @Override public Comparable<T>            getMinimumValue()  
{return descriptor.getMinimumValue();}
-             @Override public Comparable<T>            getMaximumValue()  
{return descriptor.getMaximumValue();}
-             @Override public T                        getDefaultValue()  
{return descriptor.getDefaultValue();}
-             @Override public Unit<?>                  getUnit()          
{return descriptor.getUnit();}
-             @Override public ParameterValue<T>        createValue()      
{return descriptor.createValue();}
-             @Override public String                   toWKT()            
{return descriptor.toWKT();}
 -            @Override public Identifier                    getName()          
{return descriptor.getName();}
++            @Override public ReferenceIdentifier           getName()          
{return descriptor.getName();}
+             @Override public Collection<GenericName>       getAlias()         
{return descriptor.getAlias();}
 -            @Override public Set<Identifier>               getIdentifiers()   
{return descriptor.getIdentifiers();}
 -            @Override public Optional<InternationalString> getRemarks()       
{return descriptor.getRemarks();}
++            @Override public Set<ReferenceIdentifier>      getIdentifiers()   
{return descriptor.getIdentifiers();}
++            @Override public InternationalString           getRemarks()       
{return descriptor.getRemarks();}
+             @Override public Optional<InternationalString> getDescription()   
{return descriptor.getDescription();}
+             @Override public ParameterDirection            getDirection()     
{return descriptor.getDirection();}
+             @Override public int                           getMinimumOccurs() 
{return descriptor.getMinimumOccurs();}
+             @Override public int                           getMaximumOccurs() 
{return descriptor.getMaximumOccurs();}
+             @Override public TypeName                      getValueType()     
{return descriptor.getValueType();}
+             @Override public Class<T>                      getValueClass()    
{return descriptor.getValueClass();}
+             @Override public Set<T>                        getValidValues()   
{return descriptor.getValidValues();}
+             @Override public Comparable<T>                 getMinimumValue()  
{return descriptor.getMinimumValue();}
+             @Override public Comparable<T>                 getMaximumValue()  
{return descriptor.getMaximumValue();}
+             @Override public T                             getDefaultValue()  
{return descriptor.getDefaultValue();}
+             @Override public Unit<?>                       getUnit()          
{return descriptor.getUnit();}
+             @Override public ParameterValue<T>             createValue()      
{return descriptor.createValue();}
+             @Override public String                        toWKT()            
{return descriptor.toWKT();}
          }));
      }
  
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
index 45bfd4f16f,44798340d0..143f1f0593
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
@@@ -35,9 -35,10 +35,10 @@@ import org.apache.sis.test.TestCase
  import static org.apache.sis.test.Assertions.assertMessageContains;
  import static org.apache.sis.test.Assertions.assertSerializedEquals;
  import static org.apache.sis.test.TestUtilities.getSingleton;
+ import static org.apache.sis.referencing.Assertions.assertRemarksEquals;
  
 -// 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/test/org/apache/sis/referencing/Assertions.java
index 0a38012253,ad2f72362e..5d3e3aec03
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/Assertions.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/Assertions.java
@@@ -140,6 -142,20 +142,19 @@@ public final class Assertions extends S
          }
      }
  
+     /**
+      * Asserts that the remarks of the given object are equal to the expected 
value.
+      *
+      * @param expected  the expected remarks, or {@code null}.
+      * @param object    the object for which to test the remarks.
+      * @param locale    the locale to test, or {@code null}.
+      */
+     public static void assertRemarksEquals(final String expected, final 
IdentifiedObject object, final Locale locale) {
 -        var remarks = object.getRemarks()
 -                .map((locale != null) ? (i18n) -> i18n.toString(locale) : 
InternationalString::toString)
 -                .orElse(null);
++        InternationalString i18n = object.getRemarks();
++        String remarks = (i18n == null) ? null : (locale != null) ? 
i18n.toString(locale) : i18n.toString();
+         assertEquals(expected, remarks, "remarks");
+     }
+ 
      /**
       * Compares the given coordinate system axis against the expected values.
       *
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_GeneralOperationParameterTest.java
index 8b04e2732c,9e45adb3ce..11d9c34eab
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_GeneralOperationParameterTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_GeneralOperationParameterTest.java
@@@ -71,8 -72,8 +72,8 @@@ public final class CC_GeneralOperationP
           * illegal value) for this test.
           */
          assertEquals(name, p.getName().getCode());
 -        assertEquals(remarks, (remarks == null) ? null : 
p.getRemarks().orElseThrow().toString());
 +        assertEquals(remarks, (remarks == null) ? null : 
p.getRemarks().toString());
-         assertNull(p.getDescription());
+         assertTrue(p.getDescription().isEmpty());
          assertNull(p.getValueClass());
          assertEquals(0, p.getMinimumOccurs());
          assertEquals(1, p.getMaximumOccurs());
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_OperationParameterGroupTest.java
index b03153c84b,7dc1aec31b..669a1cc668
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_OperationParameterGroupTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/xml/bind/referencing/CC_OperationParameterGroupTest.java
@@@ -219,9 -219,9 +219,9 @@@ public final class CC_OperationParamete
          assertSame(expected.getMaximumValue(), actual.getMaximumValue());
          assertSame(expected.getDefaultValue(), actual.getDefaultValue());
          if (remarks != null) {
 -            assertEquals(remarks, actual.getRemarks().get().toString());
 +            assertEquals(remarks, actual.getRemarks().toString());
          } else {
-             assertSame(expected.getRemarks(), actual.getRemarks());
+             assertEquals(expected.getRemarks(), actual.getRemarks());
          }
      }
  }
diff --cc 
endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Deprecable.java
index 197f995be2,249ce360a6..57ffce99fd
--- a/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Deprecable.java
+++ b/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Deprecable.java
@@@ -59,8 -60,10 +59,10 @@@ public interface Deprecable 
       *
       * <div class="note"><b>Example:</b> "superseded by code XYZ".</div>
       *
 -     * @return comments about this instance, or empty if none. Shall be the 
reason for deprecation
 +     * @return comments about this instance, or {@code null} if none. Shall 
be the reason for deprecation
       *         or the alternative to use if this instance {@linkplain 
#isDeprecated() is deprecated}.
       */
-     InternationalString getRemarks();
 -    default Optional<InternationalString> getRemarks() {
 -        return Optional.empty();
++    default InternationalString getRemarks() {
++        return null;
+     }
  }
diff --cc geoapi/snapshot
index 6eb8f736dc,3f1075267a..725c585a09
--- a/geoapi/snapshot
+++ b/geoapi/snapshot
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 6eb8f736dc3ea0c927f580d4863cbc19540641aa
 -Subproject commit 3f1075267a6ad5495b8218521b7efbd86f1f177c
++Subproject commit 725c585a097b2d169d5bb022c2d960961685bfd4

Reply via email to