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;
}
/**