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 6812aa0843fd381e28f9e1b6d288fadf40d29cde Author: Martin Desruisseaux <[email protected]> AuthorDate: Sat Jun 17 13:40:27 2023 +0200 Give public access to JAXB adapters in internal API. It reduces the needs for `opens` statements in `module-info.java`. --- .../gui/referencing/PositionableProjection.java | 10 +++++ .../sis/internal/jaxb/code/MD_ObligationCode.java | 2 +- .../jaxb/code/MD_PixelOrientationCode.java | 2 +- .../internal/jaxb/code/MD_TopicCategoryCode.java | 2 +- .../internal/jaxb/code/SV_ParameterDirection.java | 2 +- .../sis/internal/jaxb/gco/GO_CharacterString.java | 20 ++++++---- .../apache/sis/internal/jaxb/gco/GO_DateTime.java | 4 +- .../apache/sis/internal/jaxb/gco/GO_Distance.java | 2 +- .../apache/sis/internal/jaxb/gco/GO_Integer.java | 2 +- .../apache/sis/internal/jaxb/gco/GO_Measure.java | 2 +- .../internal/jaxb/gco/GO_MultiplicityRange.java | 8 ++-- .../org/apache/sis/internal/jaxb/gco/GO_Real.java | 2 +- .../apache/sis/internal/jaxb/gco/GO_Record.java | 2 +- .../sis/internal/jaxb/gco/GO_RecordType.java | 2 +- .../apache/sis/internal/jaxb/gco/GO_Temporal.java | 4 +- .../org/apache/sis/internal/jaxb/gco/GO_URL.java | 6 +-- .../sis/internal/jaxb/gco/GO_UnlimitedInteger.java | 4 +- .../jaxb/gco/InternationalStringAdapter.java | 2 +- .../apache/sis/internal/jaxb/gco/Multiplicity.java | 2 +- .../sis/internal/jaxb/gco/MultiplicityRange.java | 8 ++-- .../sis/internal/jaxb/gco/StringAdapter.java | 2 +- .../sis/internal/jaxb/gco/UnlimitedInteger.java | 16 +++++--- .../org/apache/sis/internal/jaxb/gcx/Anchor.java | 2 +- .../org/apache/sis/internal/jaxb/gcx/FileName.java | 4 +- .../apache/sis/internal/jaxb/gcx/MimeFileType.java | 4 +- .../sis/internal/jaxb/geometry/GM_Object.java | 2 +- .../sis/internal/jaxb/gml/CodeListAdapter.java | 12 +++--- .../apache/sis/internal/jaxb/gml/GMLAdapter.java | 2 +- .../apache/sis/internal/jaxb/gml/TimePeriod.java | 4 +- .../apache/sis/internal/jaxb/gts/TM_Duration.java | 2 +- .../sis/internal/jaxb/gts/TM_PeriodDuration.java | 2 +- .../org/apache/sis/internal/jaxb/lan/Country.java | 20 ++++++---- .../apache/sis/internal/jaxb/lan/LanguageCode.java | 6 +-- .../jaxb/lan/LocalisedCharacterString.java | 6 +-- .../apache/sis/internal/jaxb/lan/PT_FreeText.java | 4 +- .../apache/sis/internal/jaxb/lan/PT_Locale.java | 30 +++++++++------ .../apache/sis/internal/jaxb/lan/TextGroup.java | 4 +- .../internal/jaxb/metadata/replace/Parameter.java | 5 +++ .../jaxb/metadata/replace/QualityParameter.java | 23 ++++++----- .../metadata/replace/ReferenceSystemMetadata.java | 6 ++- .../internal/jaxb/metadata/replace/SensorType.java | 12 +++++- .../jaxb/metadata/replace/ServiceParameter.java | 45 ++++++++++++++-------- .../sis/internal/metadata/legacy/MediumName.java | 10 +++++ .../apache/sis/internal/jaxb/referencing/Code.java | 6 +-- .../jaxb/referencing/SC_DerivedCRSType.java | 6 +-- 45 files changed, 200 insertions(+), 123 deletions(-) diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/PositionableProjection.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/PositionableProjection.java index c059ddd01f..43fb18c092 100644 --- a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/PositionableProjection.java +++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/PositionableProjection.java @@ -186,6 +186,16 @@ public abstract class PositionableProjection extends CodeList<PositionableProjec return values(); } + /** + * Disables the search for UML identifiers because we do not export this package to GeoAPI. + * + * @return {@code null}. + */ + @Override + public String identifier() { + return null; + } + /** * Returns a name for this enumeration which can be used in a user interface. * diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_ObligationCode.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_ObligationCode.java index cfea9da3de..a08b5877ea 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_ObligationCode.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_ObligationCode.java @@ -36,7 +36,7 @@ public final class MD_ObligationCode extends EnumAdapter<MD_ObligationCode, Obli * The enumeration value. */ @XmlElement(name = "MD_ObligationCode", namespace = Namespaces.MEX) - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_PixelOrientationCode.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_PixelOrientationCode.java index 86d7fac564..b67f37ed44 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_PixelOrientationCode.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_PixelOrientationCode.java @@ -37,7 +37,7 @@ public final class MD_PixelOrientationCode extends EnumAdapter<MD_PixelOrientati * The enumeration value. */ @XmlElement(name = "MD_PixelOrientationCode", namespace = Namespaces.MSR) - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_TopicCategoryCode.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_TopicCategoryCode.java index ce95d6e80e..b314e4a385 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_TopicCategoryCode.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_TopicCategoryCode.java @@ -38,7 +38,7 @@ public final class MD_TopicCategoryCode extends EnumAdapter<MD_TopicCategoryCode * The enumeration value. */ @XmlElement(name = "MD_TopicCategoryCode", namespace = Namespaces.MRI) - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/SV_ParameterDirection.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/SV_ParameterDirection.java index c031653930..470e07492c 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/SV_ParameterDirection.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/SV_ParameterDirection.java @@ -36,7 +36,7 @@ public final class SV_ParameterDirection extends EnumAdapter<SV_ParameterDirecti * The enumeration value. */ @XmlElement(name = "SV_ParameterDirection", namespace = Namespaces.SRV) - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_CharacterString.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_CharacterString.java index b6872982a9..053aeb455d 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_CharacterString.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_CharacterString.java @@ -146,7 +146,7 @@ public class GO_CharacterString { /** * Empty constructor for JAXB and subclasses. */ - protected GO_CharacterString() { + public GO_CharacterString() { } /** @@ -202,6 +202,8 @@ public class GO_CharacterString { * instances, as the latter are handled by {@link #getCodeList()}. * * <p>This method is invoked by JAXB at marshalling time and should not need to be invoked directly.</p> + * + * @return the character string value. */ @XmlElements({ @XmlElement(type = String.class, name = "CharacterString"), @@ -210,7 +212,7 @@ public class GO_CharacterString { @XmlElement(type = MimeFileType.class, name = "MimeFileType", namespace = Namespaces.GCX), @XmlElement(type = GO_URL.class, name = "URL", namespace = LegacyNamespaces.GMD) }) - private Object getValue() { + public Object getValue() { switch (type) { case 0: return StringAdapter.toString(text); case URL: return new GO_URL(text.toString()); @@ -225,9 +227,10 @@ public class GO_CharacterString { * Sets the {@code <gco:CharacterString>}, {@code <gcx:FileName>} or {@code <gcx:MimeFileType>} value. * * <p>This method is invoked by JAXB at unmarshalling time and should not need to be invoked directly.</p> + * + * @param value the character string value. */ - @SuppressWarnings("unused") - private void setValue(final Object value) { + public void setValue(final Object value) { if (value instanceof Anchor) { setText((Anchor) value, ANCHOR); } else if (value instanceof FileName) { @@ -250,11 +253,13 @@ public class GO_CharacterString { * do not have JAXB annotations. If those annotations are added in a future GeoAPI implementation, then * we could replace this mechanism by a simple property annotated with {@code XmlElementRef}. * + * @return the code list value. + * * @since 0.7 */ @XmlAnyElement @Workaround(library = "GeoAPI", version = "3.0") - private Object getCodeList() { + public Object getCodeList() { if (type != ENUM) { return null; } @@ -279,9 +284,10 @@ public class GO_CharacterString { * Invoked by JAXB for any XML element which is not a {@code <gco:CharacterString>}, {@code <gcx:FileName>} * or {@code <gcx:MimeFileType>}. This method presumes that the element name is the CodeList standard name. * If not, the element will be ignored. + * + * @param value the code list value. */ - @SuppressWarnings({"unchecked", "unused"}) - private void setCodeList(final Object value) { + public void setCodeList(final Object value) { final Element e = (Element) value; if (e.getNodeType() == Element.ELEMENT_NODE) { final Class<?> ct = Types.forStandardName(e.getLocalName()); diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java index 389cfcef33..3b4bc06ceb 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java @@ -67,7 +67,7 @@ public class GO_DateTime extends XmlAdapter<GO_DateTime, Date> { */ @XmlElement(name = "DateTime") @XmlSchemaType(name = "dateTime") - private XMLGregorianCalendar dateTime; + public XMLGregorianCalendar dateTime; /** * The date value using the {@code "Date"} name, @@ -75,7 +75,7 @@ public class GO_DateTime extends XmlAdapter<GO_DateTime, Date> { */ @XmlElement(name = "Date") @XmlSchemaType(name = "date") - private XMLGregorianCalendar date; + public XMLGregorianCalendar date; /** * Empty constructor for JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Distance.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Distance.java index 9864acb523..7251b49350 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Distance.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Distance.java @@ -41,7 +41,7 @@ public final class GO_Distance extends XmlAdapter<GO_Distance, Double> { * A proxy representation of the {@code <gco:Distance>} element. */ @XmlElement(name = "Distance") - private Measure distance; + public Measure distance; /** * Empty constructor used only by JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Integer.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Integer.java index 61b9777963..118efa01fa 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Integer.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Integer.java @@ -41,7 +41,7 @@ public class GO_Integer extends PropertyType<GO_Integer, Integer> { /** * Empty constructor used only by JAXB. */ - GO_Integer() { + public GO_Integer() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Measure.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Measure.java index 5f8148a9c4..1e01baf8e8 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Measure.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Measure.java @@ -41,7 +41,7 @@ public final class GO_Measure extends XmlAdapter<GO_Measure, Double> { * A proxy representation of the {@code <gco:Measure>} element. */ @XmlElement(name = "Measure") - private Measure measure; + public Measure measure; /** * Empty constructor used only by JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_MultiplicityRange.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_MultiplicityRange.java index 810e2f4095..416a057f42 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_MultiplicityRange.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_MultiplicityRange.java @@ -29,11 +29,11 @@ import org.apache.sis.measure.NumberRange; * @version 1.4 * @since 1.0 */ -final class GO_MultiplicityRange extends PropertyType<GO_MultiplicityRange, NumberRange<Integer>> { +public final class GO_MultiplicityRange extends PropertyType<GO_MultiplicityRange, NumberRange<Integer>> { /** * Empty constructor used only by JAXB. */ - GO_MultiplicityRange() { + public GO_MultiplicityRange() { } /** @@ -75,7 +75,7 @@ final class GO_MultiplicityRange extends PropertyType<GO_MultiplicityRange, Numb * @return the value to be marshalled. */ @XmlElement(name = "MultiplicityRange") - private MultiplicityRange getElement() { + public MultiplicityRange getElement() { return MultiplicityRange.wrap(metadata); } @@ -84,7 +84,7 @@ final class GO_MultiplicityRange extends PropertyType<GO_MultiplicityRange, Numb * * @param metadata the unmarshalled value. */ - private void setElement(final MultiplicityRange metadata) { + public void setElement(final MultiplicityRange metadata) { if (metadata != null) { this.metadata = metadata.value(); } diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Real.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Real.java index 6b7bcff1f2..0e7860ca15 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Real.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Real.java @@ -42,7 +42,7 @@ public class GO_Real extends PropertyType<GO_Real, Double> { /** * Empty constructor used only by JAXB. */ - GO_Real() { + public GO_Real() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Record.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Record.java index 7f1616586b..b0ab926d59 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Record.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Record.java @@ -34,7 +34,7 @@ public class GO_Record extends PropertyType<GO_Record, Record> { /** * Empty constructor for JAXB only. */ - GO_Record() { + public GO_Record() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_RecordType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_RecordType.java index 269a0a85a5..60b79a89d1 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_RecordType.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_RecordType.java @@ -34,7 +34,7 @@ public class GO_RecordType extends PropertyType<GO_RecordType, RecordType> { /** * Empty constructor for JAXB only. */ - GO_RecordType() { + public GO_RecordType() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Temporal.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Temporal.java index 59e39e1e78..d72e75a13e 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Temporal.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_Temporal.java @@ -65,7 +65,7 @@ public class GO_Temporal extends XmlAdapter<GO_Temporal, Temporal> { */ @XmlElement(name = "DateTime") @XmlSchemaType(name = "dateTime") - private XMLGregorianCalendar dateTime; + public XMLGregorianCalendar dateTime; /** * The date value using the {@code "Date"} name, @@ -73,7 +73,7 @@ public class GO_Temporal extends XmlAdapter<GO_Temporal, Temporal> { */ @XmlElement(name = "Date") @XmlSchemaType(name = "date") - private XMLGregorianCalendar date; + public XMLGregorianCalendar date; /** * Empty constructor for JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_URL.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_URL.java index 70b46b35f7..39984b3ef3 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_URL.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_URL.java @@ -35,18 +35,18 @@ import jakarta.xml.bind.annotation.XmlValue; * @version 1.4 * @since 1.0 */ -final class GO_URL { +public final class GO_URL { /** * The URI as a string. We uses a string in order to allow * the user to catch potential error at unmarshalling time. */ @XmlValue - private String uri; + public String uri; /** * Empty constructor for JAXB only. */ - GO_URL() { + public GO_URL() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_UnlimitedInteger.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_UnlimitedInteger.java index 0bb69868e9..3579b02b9b 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_UnlimitedInteger.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_UnlimitedInteger.java @@ -35,11 +35,11 @@ import jakarta.xml.bind.annotation.XmlType; * @since 1.0 */ @XmlType(name = "UnlimitedInteger_PropertyType") -final class GO_UnlimitedInteger extends PropertyType<GO_UnlimitedInteger, UnlimitedInteger> { +public final class GO_UnlimitedInteger extends PropertyType<GO_UnlimitedInteger, UnlimitedInteger> { /** * Empty constructor used only by JAXB. */ - GO_UnlimitedInteger() { + public GO_UnlimitedInteger() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/InternationalStringAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/InternationalStringAdapter.java index 69025efa1b..eb7cea3ab9 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/InternationalStringAdapter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/InternationalStringAdapter.java @@ -38,7 +38,7 @@ public class InternationalStringAdapter extends XmlAdapter<GO_CharacterString, I /** * Empty constructor for JAXB. */ - InternationalStringAdapter() { + public InternationalStringAdapter() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/Multiplicity.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/Multiplicity.java index 4773d27910..88d4512cda 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/Multiplicity.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/Multiplicity.java @@ -58,7 +58,7 @@ public final class Multiplicity { @XmlElementWrapper(name = "Multiplicity", required = true) @XmlElement(name = "range", required = true) @XmlJavaTypeAdapter(GO_MultiplicityRange.class) - private List<NumberRange<Integer>> range; + public List<NumberRange<Integer>> range; /** * Creates a new multiplicity initialized with no ranges. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/MultiplicityRange.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/MultiplicityRange.java index cb3dff2b6b..d272f2026f 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/MultiplicityRange.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/MultiplicityRange.java @@ -35,26 +35,26 @@ import org.apache.sis.xml.NilReason; "lower", "upper" }) -final class MultiplicityRange { +public final class MultiplicityRange { /** * The lower bound. */ @XmlElement(required = true) @XmlJavaTypeAdapter(GO_Integer.class) - private Integer lower; + public Integer lower; /** * The upper bound. */ @XmlElement(required = true) @XmlJavaTypeAdapter(GO_UnlimitedInteger.class) - private UnlimitedInteger upper; + public UnlimitedInteger upper; /** * Creates an initially empty range. * This is invoked by JAXB at unmarshalling time. */ - private MultiplicityRange() { + public MultiplicityRange() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/StringAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/StringAdapter.java index e16e162021..46817c7911 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/StringAdapter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/StringAdapter.java @@ -38,7 +38,7 @@ public class StringAdapter extends XmlAdapter<GO_CharacterString, String> { /** * Empty constructor for JAXB or subclasses. */ - protected StringAdapter() { + public StringAdapter() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/UnlimitedInteger.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/UnlimitedInteger.java index 5b015a3ee4..c9d43c66bf 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/UnlimitedInteger.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/UnlimitedInteger.java @@ -37,26 +37,26 @@ import jakarta.xml.bind.annotation.XmlValue; */ @XmlType(name = "UnlimitedInteger_Type") @XmlRootElement(name = "UnlimitedInteger") -final class UnlimitedInteger { +public final class UnlimitedInteger { /** * The value, limited to 32 bits integer for now. A null value is interpreted as missing value, * unless {@link #isInfinite} is {@code true}. */ @XmlValue @XmlSchemaType(name = "nonNegativeInteger") - private Integer value; + public Integer value; /** * Whether the value should be considered infinite. * An infinite value implies {@code xsi:nil = true}. */ @XmlAttribute(name = "isInfinite") - private Boolean isInfinite; + public Boolean isInfinite; /** * Creates a new {@code gco:UnlimitedInteger} for a missing value. */ - UnlimitedInteger() { + public UnlimitedInteger() { } /** @@ -92,17 +92,21 @@ final class UnlimitedInteger { /** * Returns whether the value should be considered unspecified. An infinite value is considered nil. * This method never returns {@code false}; if the value is not nil, then {@code null} is returned. + * + * @return the nil status. */ @XmlAttribute(name = "nil", namespace = XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI) - private Boolean getNil() { + public Boolean getNil() { return (value == null) ? Boolean.TRUE : null; } /** * Sets whether the value should be considered unspecified. * This method is invoked by JAXB at unmarshalling time. + * + * @param nil the nil status. */ - private void setNil(final Boolean nil) { + public void setNil(final Boolean nil) { if (nil != null && nil) { value = null; // Leave 'isInfinite' unchanged since an infinite value is also nil. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java index 436af07c11..ecf56cb766 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java @@ -54,7 +54,7 @@ public final class Anchor extends XLink implements InternationalString { * This is the value returned by {@link #toString()}. */ @XmlValue - private String value; + public String value; /** * Creates a uninitialized {@code Anchor}. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/FileName.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/FileName.java index e73b113582..460a371ac8 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/FileName.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/FileName.java @@ -47,14 +47,14 @@ public final class FileName { * The value of the {@code src} attribute, which is the file path. */ @XmlAttribute - private String src; + public String src; /** * A human-readable description of the filename. * If {@link #src} is null, then this will be taken as the file path. */ @XmlValue - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/MimeFileType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/MimeFileType.java index 1082b4ffb1..8eaab7d9ac 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/MimeFileType.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/MimeFileType.java @@ -47,14 +47,14 @@ public final class MimeFileType { * The value of the {@code type} attribute, which is the mime type. */ @XmlAttribute - private String type; + public String type; /** * A human-readable description of the mime type. If {@link #type} is null, * then this will be taken as the mime type. */ @XmlValue - private String value; + public String value; /** * Empty constructor for JAXB only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/GM_Object.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/GM_Object.java index a4a8f6099b..c650f033bf 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/GM_Object.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/GM_Object.java @@ -40,7 +40,7 @@ public class GM_Object extends XmlAdapter<GM_Object, Geometry> { * The Geometry value covered by a {@code gml:**} element. */ @XmlElementRef(name = "AbstractGeometry", namespace = Namespaces.GML, type = JAXBElement.class) - protected JAXBElement<? extends Geometry> geometry; + public JAXBElement<? extends Geometry> geometry; /** * Empty constructor for JAXB and subclasses only. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/CodeListAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/CodeListAdapter.java index 04dbafc69a..6f4e25a7b0 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/CodeListAdapter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/CodeListAdapter.java @@ -37,21 +37,19 @@ import org.apache.sis.util.iso.Types; */ public abstract class CodeListAdapter<BoundType extends CodeList<BoundType>> extends XmlAdapter<CodeListAdapter.Value, BoundType> { /** - * Wraps the {@link CodeList} value in a GML document. This class does not need to be public - * even if exported from public {@link CodeListAdapter} API, because it is used only by JAXB - * and JAXB can access private members. + * Wraps the {@link CodeList} value in a GML document. */ - static final class Value { + public static final class Value { /** The code space of the {@link #value} as a URI, or {@code null}. */ @XmlAttribute - String codeSpace; + public String codeSpace; /** The code list identifier. */ @XmlValue - String value; + public String value; /** Empty constructor for JAXB only. */ - Value() { + public Value() { } /** Creates a new wrapper for the given value. */ diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/GMLAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/GMLAdapter.java index 5aba8d681e..97f1e99a20 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/GMLAdapter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/GMLAdapter.java @@ -62,7 +62,7 @@ public abstract class GMLAdapter { */ @XmlID @XmlAttribute(namespace = Namespaces.GML, required = true) - private String id; + public String id; /** * Creates a new GML object with no ID. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/TimePeriod.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/TimePeriod.java index 8b676f9a11..d7a3fbec1a 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/TimePeriod.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/TimePeriod.java @@ -52,7 +52,7 @@ public final class TimePeriod extends GMLAdapter { @XmlElement(type = TimePeriodBound.GML3.class, name = "beginPosition"), @XmlElement(type = TimePeriodBound.GML2.class, name = "begin") }) - TimePeriodBound begin; + public TimePeriodBound begin; /** * The end time, which may be marshalled in a GML3 way or GML2 way. @@ -62,7 +62,7 @@ public final class TimePeriod extends GMLAdapter { @XmlElement(type = TimePeriodBound.GML3.class, name = "endPosition"), @XmlElement(type = TimePeriodBound.GML2.class, name = "end") }) - TimePeriodBound end; + public TimePeriodBound end; /** * Empty constructor used by JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_Duration.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_Duration.java index 9de7a6bef5..bcc00c3715 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_Duration.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_Duration.java @@ -40,7 +40,7 @@ public final class TM_Duration extends PropertyType<TM_Duration, Duration> { /** * Empty constructor for JAXB. */ - TM_Duration() { + public TM_Duration() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_PeriodDuration.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_PeriodDuration.java index 3d7c2aa862..b02fcb069b 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_PeriodDuration.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gts/TM_PeriodDuration.java @@ -48,7 +48,7 @@ public class TM_PeriodDuration extends PropertyType<TM_PeriodDuration, PeriodDur /** * Empty constructor for JAXB. */ - TM_PeriodDuration() { + public TM_PeriodDuration() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java index c1d5e67222..f5923c42d5 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java @@ -67,7 +67,7 @@ public final class Country extends GO_CharacterString { /** * Empty constructor for JAXB only. */ - private Country() { + public Country() { } /** @@ -102,33 +102,39 @@ public final class Country extends GO_CharacterString { /** * Gets the value of the Country code using ISO 19139:2007 element name. + * + * @return the ISO country code. */ @XmlElement(name = "Country", namespace = LegacyNamespaces.GMD) - private CodeListUID getCountry() { + public CodeListUID getCountry() { return isLegacyMetadata ? identifier : null; } /** * Sets the value of the Country code in ISO 19139:2007 element name. + * + * @param newValue the ISO country code. */ - @SuppressWarnings("unused") - private void setCountry(CodeListUID newValue) { + public void setCountry(CodeListUID newValue) { identifier = newValue; } /** * Gets the value of the Country code using ISO 19115-3 element name. + * + * @return the ISO country code. */ @XmlElement(name = "CountryCode") - private CodeListUID getCountryCode() { + public CodeListUID getCountryCode() { return isLegacyMetadata ? null : identifier; } /** * Sets the value of the Country code in ISO 19115-3 element name. + * + * @param newValue the ISO country code. */ - @SuppressWarnings("unused") - private void setCountryCode(CodeListUID newValue) { + public void setCountryCode(CodeListUID newValue) { identifier = newValue; } diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java index b4f651dfe1..a129fb6d3a 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java @@ -16,11 +16,11 @@ */ package org.apache.sis.internal.jaxb.lan; -import org.apache.sis.internal.jaxb.cat.CodeListUID; import java.util.Locale; import jakarta.xml.bind.annotation.XmlType; import jakarta.xml.bind.annotation.XmlElement; import org.apache.sis.internal.jaxb.Context; +import org.apache.sis.internal.jaxb.cat.CodeListUID; import org.apache.sis.internal.jaxb.gco.GO_CharacterString; import org.apache.sis.internal.jaxb.gco.CharSequenceAdapter; @@ -62,12 +62,12 @@ public final class LanguageCode extends GO_CharacterString { * The language using a {@link org.opengis.util.CodeList}-like format. */ @XmlElement(name = "LanguageCode") - private CodeListUID identifier; + public CodeListUID identifier; /** * Empty constructor for JAXB only. */ - private LanguageCode() { + public LanguageCode() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocalisedCharacterString.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocalisedCharacterString.java index 3420864b66..e0fec23f50 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocalisedCharacterString.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocalisedCharacterString.java @@ -35,7 +35,7 @@ import org.apache.sis.internal.jaxb.Context; * * @since 0.3 */ -final class LocalisedCharacterString { +public final class LocalisedCharacterString { /** * A prefix to concatenate with the {@linkplain Locale#getISO3Language() language code}. * This is a hack for a common pattern found in the way locales are specified in ISO 19139:2007 files. @@ -53,12 +53,12 @@ final class LocalisedCharacterString { * the {@code <LocalisedCharacterString>} elements in the XML tree at marshalling-time. */ @XmlValue - String text; + public String text; /** * Empty constructor only used by JAXB. */ - LocalisedCharacterString() { + public LocalisedCharacterString() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_FreeText.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_FreeText.java index 8f9b6215e8..86c2deb312 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_FreeText.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_FreeText.java @@ -67,12 +67,12 @@ public final class PT_FreeText extends GO_CharacterString { */ @XmlElementWrapper(name = "PT_FreeText") @XmlElement(required = true) - private TextGroup[] textGroup; + public TextGroup[] textGroup; /** * Empty constructor used only by JAXB. */ - private PT_FreeText() { + public PT_FreeText() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_Locale.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_Locale.java index 71e71b1492..7acd850079 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_Locale.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/PT_Locale.java @@ -81,7 +81,7 @@ public final class PT_Locale { * The attributes wrapped in a {@code "PT_Locale"} element. */ @XmlElement(name = "PT_Locale") - private Wrapper element; + public Wrapper element; /** * Wraps the {@code "locale"} attributes in a {@code "PT_Locale"} element. @@ -92,7 +92,7 @@ public final class PT_Locale { "country", "characterEncoding" }) - private static final class Wrapper { + public static final class Wrapper { /** * The language code, or {@code null} if none. */ @@ -102,7 +102,7 @@ public final class PT_Locale { * The country code, or {@code null} if none. */ @XmlElement - Country country; + public Country country; /** * The character encoding. If {@code null}, then this property will be set to the encoding of XML file. @@ -121,7 +121,7 @@ public final class PT_Locale { */ @XmlElement(required = true) @XmlJavaTypeAdapter(MD_CharacterSetCode.class) - Charset characterEncoding; + public Charset characterEncoding; /** * {@code true} if marshalling an element from the ISO 19115:2003 model, @@ -151,33 +151,39 @@ public final class PT_Locale { /** * Gets the language code for this PT_Locale. Used in ISO 19115:2003 model. + * + * @return the ISO language code. */ @XmlElement(name = "languageCode", namespace = LegacyNamespaces.GMD) - private LanguageCode getLanguageCode() { + public LanguageCode getLanguageCode() { return isLegacyMetadata ? language : null; } /** * Sets the language code for this PT_Locale. Used in ISO 19115:2003 model. + * + * @param newValue the ISO language code. */ - @SuppressWarnings("unused") - private void setLanguageCode(LanguageCode newValue) { + public void setLanguageCode(LanguageCode newValue) { language = newValue; } /** * Gets the language code for this PT_Locale. Used in ISO 19115:2014 model. + * + * @return the ISO language code. */ @XmlElement(name = "language", required = true) - private LanguageCode getLanguage() { + public LanguageCode getLanguage() { return isLegacyMetadata ? null : language; } /** * Sets the language code for this PT_Locale. Used in ISO 19115:2014 model. + * + * @param newValue the ISO language code. */ - @SuppressWarnings("unused") - private void setLanguage(LanguageCode newValue) { + public void setLanguage(LanguageCode newValue) { language = newValue; } @@ -188,6 +194,8 @@ public final class PT_Locale { * * <div class="note"><b>Note:</b> This is redundant with the encoding declared in the XML header. * But the {@code <lan:characterEncoding>} element is mandatory according OGC/ISO schemas.</div> + * + * @param marshaller the marshaller invoking this method. */ public void beforeMarshal(final Marshaller marshaller) { if (characterEncoding == null) { @@ -213,7 +221,7 @@ public final class PT_Locale { /** * Empty constructor for JAXB only. */ - private PT_Locale() { + public PT_Locale() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java index 098873d343..2d885fe901 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java @@ -74,7 +74,7 @@ import jakarta.xml.bind.annotation.XmlElement; * * @since 0.3 */ -final class TextGroup { +public final class TextGroup { /** * The set of {@linkplain LocalisedCharacterString localized string}. * JAXB uses this field at marshalling-time in order to wrap {@code N} @@ -85,7 +85,7 @@ final class TextGroup { * (as in the first example of class javadoc) for compatibility and convenience reasons.</p> */ @XmlElement(name = "LocalisedCharacterString") - protected LocalisedCharacterString[] localized; + public LocalisedCharacterString[] localized; /** * Empty constructor only used by JAXB. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java index d33a467fa7..58e8568b80 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java @@ -45,6 +45,11 @@ import static org.apache.sis.util.Utilities.deepEquals; * @since 1.3 */ abstract class Parameter<T> extends SimpleIdentifiedObject implements ParameterDescriptor<T> { + /** + * For cross-version compatibility. + */ + private static final long serialVersionUID = 1120310941894856951L; + /** * A copy of {@code this} as a fully-implemented parameter descriptor. * This is created when first needed for implementation of {@link #createValue()}. diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java index 4308fd0fe2..ab075177e7 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java @@ -71,13 +71,18 @@ import org.opengis.metadata.quality.ValueStructure; }) @XmlRootElement(name = "DQM_Parameter", namespace = Namespaces.DQM) public final class QualityParameter extends Parameter { + /** + * For cross-version compatibility. + */ + private static final long serialVersionUID = 4333632866772665659L; + /** * Name of the data quality parameter, to be represented as identifier code. * * @see #getName() */ @XmlElement(name="name", required=true) - String code; + public String code; /** * Definition of the data quality parameter. @@ -86,7 +91,8 @@ public final class QualityParameter extends Parameter { * @see #getName() */ @XmlElement(required = true) - InternationalString definition; + @SuppressWarnings("serial") // Most Apache SIS implementations are serializable. + public InternationalString definition; /** * Description of the data quality parameter. @@ -94,7 +100,8 @@ public final class QualityParameter extends Parameter { * @see #getDescription() */ @XmlElement - Description description; + @SuppressWarnings("serial") // Most Apache SIS implementations are serializable. + public Description description; /** * Value type of the data quality parameter (shall be one of the data types defined in ISO/TS 19103:2005). @@ -104,7 +111,8 @@ public final class QualityParameter extends Parameter { */ @XmlElement(required = true) @XmlJavaTypeAdapter(GO_GenericName.class) // Not in package-info because shall not be applied to getLegacyName(). - TypeName valueType; + @SuppressWarnings("serial") // Most Apache SIS implementations are serializable. + public TypeName valueType; /** * Structure of the data quality parameter. @@ -112,16 +120,13 @@ public final class QualityParameter extends Parameter { * @see #getValueClass() */ @XmlElement - ValueStructure valueStructure; + public ValueStructure valueStructure; /** * Creates an initially empty parameter. * This constructor is needed by JAXB at unmarshalling time. - * - * <p><strong>Consider this constructor as private</strong> except for testing purpose. - * See <cite>Note about raw-type usage</cite> in class javadoc.</p> */ - QualityParameter() { + public QualityParameter() { } /** diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java index b8dc5df6c1..b38771394e 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ReferenceSystemMetadata.java @@ -96,9 +96,11 @@ public class ReferenceSystemMetadata extends SimpleIdentifiedObject implements R } /** - * Invoked by JAXB {@link jakarta.xml.bind.Marshaller} before this object is marshalled to XML. + * Invoked by JAXB {@code Marshaller} before this object is marshalled to XML. + * + * @param marshaller the invoker. */ - private void beforeMarshal(final Marshaller marshaller) { + public void beforeMarshal(final Marshaller marshaller) { isLegacyMetadata = !FilterByVersion.CURRENT_METADATA.accept(); } diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/SensorType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/SensorType.java index 74c6c5e8bb..d0f0acf34e 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/SensorType.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/SensorType.java @@ -29,7 +29,7 @@ import org.opengis.util.CodeList; * For now GeoAPI does not yet provides it, but this choice may be revisited in a future GeoAPI version. * * @author Martin Desruisseaux (Geomatys) - * @version 1.3 + * @version 1.4 * @since 0.7 */ @UML(identifier = "MI_SensorTypeCode", specification = Specification.ISO_19115_2) // Actually only in XML schema. @@ -72,6 +72,16 @@ public final class SensorType extends CodeList<SensorType> { } } + /** + * Disables the search for UML identifiers because we do not export this package to GeoAPI. + * + * @return {@code null}. + */ + @Override + public String identifier() { + return null; + } + /** * Returns the list of codes of the same kind than this code list element. * Invoking this method is equivalent to invoking {@link #values()}, except that diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java index 539633d5d8..f60638b183 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java @@ -74,6 +74,11 @@ import static org.apache.sis.internal.util.CollectionsExt.nonNull; }) @XmlRootElement(name = "SV_Parameter", namespace = Namespaces.SRV) public final class ServiceParameter extends Parameter { + /** + * For cross-version compatibility. + */ + private static final long serialVersionUID = 8979265876109276877L; + /** * The name, as used by the service for this parameter. Note that in ISO 19115-3:2016, this element is * inside a {@code <gco:MemberName>} element (i.e. ISO inserts the same kind of {@code Property_Type} @@ -96,7 +101,8 @@ public final class ServiceParameter extends Parameter { */ @XmlElement(required=true, name="name") @XmlJavaTypeAdapter(GO_GenericName.Since2014.class) - MemberName memberName; + @SuppressWarnings("serial") // Most Apache SIS implementations are serializable. + public MemberName memberName; /** * Indication if the parameter is an input to the service, an output or both. @@ -104,7 +110,7 @@ public final class ServiceParameter extends Parameter { * @see #getDirection() */ @XmlElement(required = true) - ParameterDirection direction; + public ParameterDirection direction; /** * A narrative explanation of the role of the parameter. @@ -112,7 +118,8 @@ public final class ServiceParameter extends Parameter { * @see #getDescription() */ @XmlElement - InternationalString description; + @SuppressWarnings("serial") // Most Apache SIS implementations are serializable. + public InternationalString description; /** * Indication if the parameter is required. @@ -134,16 +141,13 @@ public final class ServiceParameter extends Parameter { * @see #getMaximumOccurs() */ @XmlElement(required = true) - boolean repeatability; + public boolean repeatability; /** * Creates an initially empty parameter. * This constructor is needed by JAXB at unmarshalling time. - * - * <p><strong>Consider this constructor as private</strong> except for testing purpose. - * See <cite>Note about raw-type usage</cite> in class javadoc.</p> */ - ServiceParameter() { + public ServiceParameter() { } /** @@ -260,7 +264,7 @@ public final class ServiceParameter extends Parameter { * @return the name if marshalling legacy ISO 19139:2007 format, or {@code null} otherwise. */ @XmlElement(name = "name", namespace = LegacyNamespaces.SRV) - private DefaultMemberName getLegacyName() { + public DefaultMemberName getLegacyName() { return FilterByVersion.LEGACY_METADATA.accept() ? DefaultMemberName.castOrCopy(memberName) : null; } @@ -271,8 +275,7 @@ public final class ServiceParameter extends Parameter { * @param value the new name. * @throws IllegalStateException if a name is already defined. */ - @SuppressWarnings("unused") - private void setLegacyName(final DefaultMemberName value) { + public void setLegacyName(final DefaultMemberName value) { if (memberName == null) { memberName = value; } @@ -282,10 +285,12 @@ public final class ServiceParameter extends Parameter { * For JAXB marshalling of ISO 19139:2007 document only. * Note that there is not setter method, because we expect that * the same information is provided in the {@link #memberName} attribute type. + * + * @return the type name of value component(s) in this parameter. */ @XmlElement(name = "valueType", namespace = LegacyNamespaces.SRV) @XmlJavaTypeAdapter(GO_GenericName.class) // Not in package-info because shall not be applied to getLegacyName(). - private TypeName getLegacyValueType() { + public TypeName getLegacyValueType() { return FilterByVersion.LEGACY_METADATA.accept() ? getValueType() : null; } @@ -340,32 +345,40 @@ public final class ServiceParameter extends Parameter { /** * Returns the optionality as a boolean (ISO 19115-3:2016 way). + * + * @return optionality of this parameter. */ @XmlElement(name = "optionality", required = true) - final Boolean getOptionality() { + public Boolean getOptionality() { return FilterByVersion.CURRENT_METADATA.accept() ? optionality : null; } /** * Sets whether this parameter is optional. + * + * @param optional optionality of this parameter. */ - final void setOptionality(final Boolean optional) { + public void setOptionality(final Boolean optional) { if (optional != null) optionality = optional; } /** * Returns {@code "Optional"} if {@link #optionality} is {@code true} or {@code "Mandatory"} otherwise. * This is the legacy ISO 19139:2007 way to marshal optionality. + * + * @return optionality of this parameter. */ @XmlElement(name = "optionality", namespace = LegacyNamespaces.SRV) - final String getOptionalityLabel() { + public String getOptionalityLabel() { return FilterByVersion.LEGACY_METADATA.accept() ? (optionality ? "Optional" : "Mandatory") : null; } /** * Sets whether this parameter is optional. + * + * @param optional optionality of this parameter. */ - final void setOptionalityLabel(final String optional) { + public void setOptionalityLabel(final String optional) { if (optional != null) { optionality = Boolean.parseBoolean(optional) || optional.equalsIgnoreCase("Optional"); } diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/MediumName.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/MediumName.java index d78f206b54..287b6fafcc 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/MediumName.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/MediumName.java @@ -147,6 +147,16 @@ public final class MediumName extends CodeList<MediumName> implements Citation { return values(); } + /** + * Disables the search for UML identifiers because we do not export this package to GeoAPI. + * + * @return {@code null}. + */ + @Override + public String identifier() { + return null; + } + /** * Returns the medium name that matches the given string, or {@code null} if none match it. * Contrarily to non-deprecated code list, this method does not create a new code if none match the given name. diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java index 95f7e29f9f..91abda948c 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java @@ -49,7 +49,7 @@ public final class Code { * {@link org.apache.sis.metadata.iso.DefaultIdentifier} represents it as an XML element.</p> */ @XmlValue - String code; + public String code; /** * The code space, which is often {@code "EPSG"} with the version in use. @@ -58,12 +58,12 @@ public final class Code { * {@link org.apache.sis.metadata.iso.DefaultIdentifier} represents it as an XML element.</p> */ @XmlAttribute - String codeSpace; + public String codeSpace; /** * Empty constructor for JAXB. */ - Code() { + public Code() { } /** diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_DerivedCRSType.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_DerivedCRSType.java index a35a22a0c0..75edb35b59 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_DerivedCRSType.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_DerivedCRSType.java @@ -35,7 +35,7 @@ public final class SC_DerivedCRSType { * The code space (e.g. {@code "EPSG"}). */ @XmlAttribute - String codeSpace; + public String codeSpace; /** * The derived CRS type. Can be one of the following values (from ISO 19111:2007): @@ -49,7 +49,7 @@ public final class SC_DerivedCRSType { * </ul> */ @XmlValue - String value; + public String value; /** * Returns an instance from the given WKT keyword. @@ -88,6 +88,6 @@ public final class SC_DerivedCRSType { /** * Empty constructor for JAXB only. */ - private SC_DerivedCRSType() { + public SC_DerivedCRSType() { } }
