You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2022/11/20 16:42:25 UTC

[sis] 02/02: Add missing @Dependencies annotations on metadata elements that became depreceted in ISO 19157.

This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 62842c07be5171e00a133618a22ee9087b9996cd
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sun Nov 20 17:03:25 2022 +0100

    Add missing @Dependencies annotations on metadata elements that became depreceted in ISO 19157.
---
 .../sis/metadata/iso/quality/AbstractElement.java  | 38 +++++++++++++++-------
 .../iso/quality/AbstractTemporalAccuracy.java      |  2 +-
 .../iso/quality/DefaultCoverageResult.java         |  3 +-
 3 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
index c0577b6331..6f67d60fd5 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
@@ -286,7 +286,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      * @see #getEvaluationMethodProperty(Function)
      */
     private <V> V getMeasureReferenceProperty(final Function<MeasureReference,V> getter) {
-        final MeasureReference m = measureReference;
+        final MeasureReference m = getMeasureReference();
         return (m != null) && FilterByVersion.LEGACY_METADATA.accept() ? getter.apply(m) : null;
     }
 
@@ -314,18 +314,23 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getMeasureReference")
     @XmlElement(name = "nameOfMeasure", namespace = LegacyNamespaces.GMD)
     public Collection<InternationalString> getNamesOfMeasure() {
         if (!FilterByVersion.LEGACY_METADATA.accept()) {
             return null;
         }
-        if (measureReference == null) {
-            measureReference = new DefaultMeasureReference();
+        MeasureReference m = getMeasureReference();
+        if (m == null) {
+            if (state() == State.FINAL) {
+                return Collections.emptyList();
+            }
+            setMeasureReference(m = new DefaultMeasureReference());
         }
-        if (measureReference instanceof DefaultMeasureReference) {
-            return ((DefaultMeasureReference) measureReference).getNamesOfMeasure();
+        if (m instanceof DefaultMeasureReference) {
+            return ((DefaultMeasureReference) m).getNamesOfMeasure();
         }
-        return Collections.unmodifiableCollection(measureReference.getNamesOfMeasure());
+        return Collections.unmodifiableCollection(m.getNamesOfMeasure());
     }
 
     /**
@@ -351,6 +356,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getMeasureReference")
     @XmlElement(name = "measureIdentification", namespace = LegacyNamespaces.GMD)
     public Identifier getMeasureIdentification() {
         return getMeasureReferenceProperty(MeasureReference::getMeasureIdentification);
@@ -377,6 +383,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getMeasureReference")
     @XmlElement(name = "measureDescription", namespace = LegacyNamespaces.GMD)
     public InternationalString getMeasureDescription() {
         return getMeasureReferenceProperty(MeasureReference::getMeasureDescription);
@@ -426,7 +433,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      * @see #getMeasureReferenceProperty(Function)
      */
     private <V> V getEvaluationMethodProperty(final Function<EvaluationMethod,V> getter) {
-        final EvaluationMethod m = evaluationMethod;
+        final EvaluationMethod m = getEvaluationMethod();
         return (m != null) && FilterByVersion.LEGACY_METADATA.accept() ? getter.apply(m) : null;
     }
 
@@ -454,6 +461,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getEvaluationMethod")
     @XmlElement(name = "evaluationMethodType", namespace = LegacyNamespaces.GMD)
     public EvaluationMethodType getEvaluationMethodType() {
         return getEvaluationMethodProperty(EvaluationMethod::getEvaluationMethodType);
@@ -480,6 +488,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getEvaluationMethod")
     @XmlElement(name = "evaluationMethodDescription", namespace = LegacyNamespaces.GMD)
     public InternationalString getEvaluationMethodDescription() {
         return getEvaluationMethodProperty(EvaluationMethod::getEvaluationMethodDescription);
@@ -506,6 +515,7 @@ public class AbstractElement extends ISOMetadata implements Element {
      */
     @Override
     @Deprecated
+    @Dependencies("getEvaluationMethod")
     @XmlElement(name = "evaluationProcedure", namespace = LegacyNamespaces.GMD)
     public Citation getEvaluationProcedure() {
         return getEvaluationMethodProperty(EvaluationMethod::getEvaluationProcedure);
@@ -540,13 +550,17 @@ public class AbstractElement extends ISOMetadata implements Element {
         if (!FilterByVersion.LEGACY_METADATA.accept()) {
             return null;
         }
-        if (evaluationMethod == null) {
-            evaluationMethod = new DefaultEvaluationMethod();
+        EvaluationMethod m = getEvaluationMethod();
+        if (m == null) {
+            if (state() == State.FINAL) {
+                return Collections.emptyList();
+            }
+            setEvaluationMethod(m = new DefaultEvaluationMethod());
         }
-        if (evaluationMethod instanceof DefaultEvaluationMethod) {
-            return ((DefaultEvaluationMethod) evaluationMethod).getDates();
+        if (m instanceof DefaultEvaluationMethod) {
+            return ((DefaultEvaluationMethod) m).getDates();
         }
-        return Collections.unmodifiableCollection(evaluationMethod.getDates());
+        return Collections.unmodifiableCollection(m.getDates());
     }
 
     /**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java
index d13899bd90..47812b4d50 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java
@@ -18,11 +18,11 @@ package org.apache.sis.metadata.iso.quality;
 
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.sis.xml.Namespaces;
 import org.opengis.metadata.quality.TemporalAccuracy;
 import org.opengis.metadata.quality.TemporalValidity;
 import org.opengis.metadata.quality.TemporalConsistency;
 import org.opengis.metadata.quality.AccuracyOfATimeMeasurement;
+import org.apache.sis.xml.Namespaces;
 
 
 /**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
index 73cc3882ec..4be6b40559 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
@@ -27,6 +27,7 @@ import org.opengis.metadata.distribution.Format;
 import org.opengis.metadata.distribution.DataFile;
 import org.opengis.metadata.spatial.SpatialRepresentation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
+import org.apache.sis.internal.jaxb.FilterByVersion;
 import org.apache.sis.internal.xml.LegacyNamespaces;
 
 
@@ -244,7 +245,7 @@ public class DefaultCoverageResult extends AbstractResult implements CoverageRes
     @Deprecated
     @XmlElement(name = "resultContentDescription", namespace = LegacyNamespaces.GMI)
     public CoverageDescription getResultContentDescription() {
-        return resultContentDescription;
+        return FilterByVersion.LEGACY_METADATA.accept() ? resultContentDescription : null;
     }
 
     /**