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 <martin.desruisse...@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; } /**