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