sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1803070 [5/20] - in /sis/branches/JDK9: ./ application/sis-console/src/main/java/org/apache/sis/console/ core/sis-build-helper/ core/sis-build-helper/src/main/java/org/apache/sis/internal/book/ core/sis-build-helper/src/main/java/org/apach...
Date Wed, 26 Jul 2017 16:14:14 GMT
Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -22,11 +22,17 @@ import javax.xml.bind.annotation.XmlRoot
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.util.InternationalString;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.internal.util.Citations;
 
 
 /**
  * Value uniquely identifying an object within a namespace.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Identifier}
+ * {@code   └─code……………} Alphanumeric value identifying an instance in the namespace.</div>
+ *
  * One or more {@code Identifier} instances can be associated to some metadata objects like
  * {@linkplain org.apache.sis.metadata.iso.acquisition.DefaultOperation operation},
  * {@linkplain org.apache.sis.metadata.iso.acquisition.DefaultPlatform platform},
@@ -85,6 +91,7 @@ import org.apache.sis.internal.util.Cita
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "code")
 @XmlType(name = "MD_Identifier_Type", propOrder = {
     "authority",
     "code"

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -64,6 +64,7 @@ import org.apache.sis.metadata.iso.ident
 import org.apache.sis.metadata.iso.identification.DefaultDataIdentification;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 import org.apache.sis.internal.metadata.OtherLocales;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.util.CollectionsExt;
 import org.apache.sis.internal.jaxb.code.PT_Locale;
 import org.apache.sis.internal.jaxb.Context;
@@ -72,6 +73,33 @@ import org.apache.sis.xml.Namespaces;
 
 /**
  * Root entity which defines metadata about a resource or resources.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Metadata}
+ * {@code   ├─language…………………………………………………} Language used for documenting metadata.
+ * {@code   ├─characterSet………………………………………} Full name of the character coding standard used for the metadata set.
+ * {@code   ├─contact……………………………………………………} Parties responsible for the metadata information.
+ * {@code   │   ├─party………………………………………………} Information about the parties.
+ * {@code   │   │   └─name………………………………………} Name of the party.
+ * {@code   │   └─role…………………………………………………} Function performed by the responsible party.
+ * {@code   ├─identificationInfo………………………} Basic information about the resource(s) to which the metadata applies.
+ * {@code   │   ├─citation………………………………………} Citation data for the resource(s).
+ * {@code   │   │   ├─title……………………………………} Name by which the cited resource is known.
+ * {@code   │   │   └─date………………………………………} Reference date for the cited resource.
+ * {@code   │   ├─abstract………………………………………} Brief narrative summary of the content of the resource(s).
+ * {@code   │   ├─extent……………………………………………} Bounding polygon, vertical, and temporal extent of the dataset.
+ * {@code   │   │   ├─description……………………} The spatial and temporal extent for the referring object.
+ * {@code   │   │   ├─geographicElement……} Geographic component of the extent of the referring object.
+ * {@code   │   │   ├─temporalElement…………} Temporal component of the extent of the referring object.
+ * {@code   │   │   └─verticalElement…………} Vertical component of the extent of the referring object.
+ * {@code   │   └─topicCategory…………………………} Main theme(s) of the dataset.
+ * {@code   ├─dateInfo…………………………………………………} Date(s) associated with the metadata.
+ * {@code   ├─metadataScope……………………………………} The scope or type of resource for which metadata is provided.
+ * {@code   │   └─resourceScope…………………………} Resource scope
+ * {@code   └─parentMetadata…………………………………} Identification of the parent metadata record.
+ * {@code       ├─title………………………………………………} Name by which the cited resource is known.
+ * {@code       └─date…………………………………………………} Reference date for the cited resource.</div>
  *
  * <div class="section">Localization</div>
  * When this object is marshalled as an ISO 19139 compliant XML document, the value
@@ -229,7 +257,7 @@ public class DefaultMetadata extends ISO
     private Collection<PortrayalCatalogueReference> portrayalCatalogueInfo;
 
     /**
-     * Provides restrictions on the access and use of data.
+     * Provides restrictions on the access and use of metadata.
      */
     private Collection<Constraints> metadataConstraints;
 
@@ -389,6 +417,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "fileIdentifier")
+    @Dependencies("getMetadataIdentifier")
     public String getFileIdentifier() {
         final Identifier identifier = getMetadataIdentifier();
         return (identifier != null) ? identifier.getCode() : null;
@@ -461,6 +490,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "language")
+    @Dependencies("getLanguages")
     public Locale getLanguage() {
         return CollectionsExt.first(getLanguages());
         /*
@@ -499,6 +529,7 @@ public class DefaultMetadata extends ISO
     @Deprecated
     @XmlElement(name = "locale")
     @XmlJavaTypeAdapter(PT_Locale.class)
+    @Dependencies("getLanguages")
     public Collection<Locale> getLocales() {
         return OtherLocales.filter(getLanguages());
     }
@@ -518,6 +549,9 @@ public class DefaultMetadata extends ISO
 
     /**
      * Returns the character coding standard used for the metadata set.
+     * ISO 19115:2014 represents character sets by references to the
+     * <a href="http://www.iana.org/assignments/character-sets">IANA Character Set register</a>,
+     * which is represented in Java by {@link java.nio.charset.Charset}.
      * Instances can be obtained by a call to {@link Charset#forName(String)}.
      *
      * <div class="note"><b>Examples:</b>
@@ -564,6 +598,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "characterSet")
+    @Dependencies("getCharacterSets")
     public CharacterSet getCharacterSet() {
         final Charset cs = LegacyPropertyAdapter.getSingleton(getCharacterSets(),
                 Charset.class, null, DefaultMetadata.class, "getCharacterSet");
@@ -628,6 +663,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "parentIdentifier")
+    @Dependencies("getParentMetadata")
     public String getParentIdentifier() {
         final Citation parentMetadata = getParentMetadata();
         if (parentMetadata != null) {
@@ -649,7 +685,8 @@ public class DefaultMetadata extends ISO
     @Deprecated
     public void setParentIdentifier(final String newValue) {
         checkWritePermission();
-        DefaultCitation parent = DefaultCitation.castOrCopy(parentMetadata); // See "Note about deprecated methods implementation"
+        // See "Note about deprecated methods implementation"
+        DefaultCitation parent = DefaultCitation.castOrCopy(parentMetadata);
         if (parent == null) {
             parent = new DefaultCitation();
         }
@@ -691,6 +728,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "hierarchyLevel")
+    @Dependencies("getMetadataScopes")
     public final Collection<ScopeCode> getHierarchyLevels() {
         return new MetadataScopeAdapter<ScopeCode>(getMetadataScopes()) {
             /** Stores a legacy value into the new kind of value. */
@@ -739,6 +777,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "hierarchyLevelName")
+    @Dependencies("getMetadataScopes")
     public final Collection<String> getHierarchyLevelNames() {
         return new MetadataScopeAdapter<String>(getMetadataScopes()) {
             /** Stores a legacy value into the new kind of value. */
@@ -834,6 +873,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "dateStamp", required = true)
+    @Dependencies("getDateInfo")
     public Date getDateStamp() {
         final Collection<CitationDate> dates = getDateInfo();
         if (dates != null) {
@@ -1015,6 +1055,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "metadataStandardName")
+    @Dependencies("getMetadataStandards")
     public String getMetadataStandardName() {
         return getMetadataStandard(false);
     }
@@ -1043,6 +1084,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "metadataStandardVersion")
+    @Dependencies("getMetadataStandards")
     public String getMetadataStandardVersion() {
         return getMetadataStandard(true);
     }
@@ -1094,6 +1136,7 @@ public class DefaultMetadata extends ISO
     @Override
     @Deprecated
     @XmlElement(name = "dataSetURI")
+    @Dependencies("getIdentificationInfo")
     public String getDataSetUri() {
         String linkage = null;
         final Collection<Identification> info = getIdentificationInfo();
@@ -1322,9 +1365,11 @@ public class DefaultMetadata extends ISO
     }
 
     /**
-     * Returns restrictions on the access and use of data.
+     * Returns restrictions on the access and use of metadata.
+     *
+     * @return restrictions on the access and use of metadata.
      *
-     * @return restrictions on the access and use of data.
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#getResourceConstraints()
      */
     @Override
     @XmlElement(name = "metadataConstraints")
@@ -1333,9 +1378,11 @@ public class DefaultMetadata extends ISO
     }
 
     /**
-     * Sets restrictions on the access and use of data.
+     * Sets restrictions on the access and use of metadata.
      *
      * @param  newValues  the new metadata constraints.
+     *
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#setResourceConstraints(Collection)
      */
     public void setMetadataConstraints(final Collection<? extends Constraints> newValues) {
         metadataConstraints = writeCollection(newValues, metadataConstraints, Constraints.class);
@@ -1385,6 +1432,8 @@ public class DefaultMetadata extends ISO
      * Returns information about the frequency of metadata updates, and the scope of those updates.
      *
      * @return the frequency of metadata updates and their scope, or {@code null}.
+     *
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#getResourceMaintenances()
      */
     @Override
     @XmlElement(name = "metadataMaintenance")
@@ -1396,6 +1445,8 @@ public class DefaultMetadata extends ISO
      * Sets information about the frequency of metadata updates, and the scope of those updates.
      *
      * @param  newValue  the new metadata maintenance.
+     *
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#setResourceMaintenances(Collection)
      */
     public void setMetadataMaintenance(final MaintenanceInformation newValue) {
         checkWritePermission();

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -27,6 +27,10 @@ import org.apache.sis.util.iso.Types;
 
 /**
  * Information about the scope of the resource.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_MetadataScope}
+ * {@code   └─resourceScope……} Resource scope</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -26,6 +26,12 @@ import org.opengis.metadata.PortrayalCat
 
 /**
  * Information identifying the portrayal catalogue used.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_PortrayalCatalogueReference}
+ * {@code   └─portrayalCatalogueCitation……} Bibliographic reference to the portrayal catalogue cited.
+ * {@code       ├─title…………………………………………………} Name by which the cited resource is known.
+ * {@code       └─date……………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,7 @@ import org.opengis.parameter.ParameterVa
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.iso.Types;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.internal.metadata.NameMeaning;
 import org.apache.sis.internal.metadata.WKTKeywords;
@@ -127,6 +128,7 @@ import static org.apache.sis.util.collec
  * @since 0.3
  * @module
  */
+@TitleProperty(name = "code")
 @XmlType(name = "RS_Identifier_Type", propOrder = {
     "authority",
     "code",

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,13 @@ import static org.apache.sis.internal.me
 
 /**
  * Information about the environmental conditions during the acquisition.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_EnvironmentalRecord}
+ * {@code   ├─averageAirTemperature……………} Average air temperature along the flight pass during the photo flight.
+ * {@code   ├─maxRelativeHumidity…………………} Maximum relative humidity along the flight pass during the photo flight.
+ * {@code   ├─maxAltitude………………………………………} Maximum altitude during the photo flight.
+ * {@code   └─meteorologicalConditions……} Meteorological conditions in the photo flight area, in particular clouds, snow and wind.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -38,6 +38,15 @@ import static org.apache.sis.internal.me
 
 /**
  * Identification of a significant collection point within an operation.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Event}
+ * {@code   ├─identifier……} Event name or number.
+ * {@code   │   └─code…………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─trigger……………} Initiator of the event.
+ * {@code   ├─context……………} Meaning of the event.
+ * {@code   ├─sequence…………} Relative time ordering of the event.
+ * {@code   └─time……………………} Time the event occurred.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,6 +31,12 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designations for the measuring instruments.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Instrument}
+ * {@code   ├─identifier……} Unique identification of the instrument.
+ * {@code   │   └─code…………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   └─type……………………} Name of the type of instrument.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -35,6 +35,18 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Describes the characteristics, spatial and temporal extent of the intended object to be observed.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Objective}
+ * {@code   ├─identifier…………………………} Code used to identify the objective.
+ * {@code   │   └─code………………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   └─objectiveOccurence……} Event or events associated with objective completion.
+ * {@code       ├─identifier………………} Event name or number.
+ * {@code       │   └─code……………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code       ├─trigger………………………} Initiator of the event.
+ * {@code       ├─context………………………} Meaning of the event.
+ * {@code       ├─sequence……………………} Relative time ordering of the event.
+ * {@code       └─time………………………………} Time the event occurred.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -36,6 +36,13 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designations for the operation used to acquire the dataset.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Operation}
+ * {@code   ├─identifier…………………} Unique identification of the operation.
+ * {@code   │   └─code………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─status……………………………} Status of the data acquisition.
+ * {@code   └─parentOperation……} Heritage of the operation.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,6 +31,13 @@ import org.apache.sis.metadata.iso.ISOMe
 
 /**
  * Designations for the planning information related to meeting the data acquisition requirements.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Plan}
+ * {@code   ├─status………………………………} Current status of the plan (pending, completed, etc.)
+ * {@code   └─citation…………………………} Identification of authority requesting target collection.
+ * {@code       ├─title………………………} Name by which the cited resource is known.
+ * {@code       └─date…………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -32,6 +32,15 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designation of the platform used to acquire the dataset.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Platform}
+ * {@code   ├─identifier………………} Unique identification of the platform.
+ * {@code   │   └─code……………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─description……………} Narrative description of the platform supporting the instrument.
+ * {@code   └─instrument………………} Instrument(s) mounted on a platform.
+ * {@code       ├─identifier……} Unique identification of the instrument.
+ * {@code       └─type……………………} Name of the type of instrument.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -30,6 +30,11 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Identification of collection coverage.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_PlatformPass}
+ * {@code   └─identifier……} Unique name of the pass.
+ * {@code       └─code…………} Alphanumeric value identifying an instance in the namespace.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Range of date validity.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_RequestedDate}
+ * {@code   ├─requestedDateOfCollection……} Preferred date and time of collection.
+ * {@code   └─latestAcceptableDate…………………} Latest date and time collection must be completed.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -37,6 +37,22 @@ import static org.apache.sis.internal.me
 
 /**
  * Requirement to be satisfied by the planned data acquisition.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Requirement}
+ * {@code   ├─identifier………………………………………………………} Unique name, or code, for the requirement.
+ * {@code   │   └─code……………………………………………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─requestor…………………………………………………………} Origin of requirement.
+ * {@code   │   ├─party…………………………………………………………} Information about the parties.
+ * {@code   │   │   └─name…………………………………………………} Name of the party.
+ * {@code   │   └─role……………………………………………………………} Function performed by the responsible party.
+ * {@code   ├─recipient…………………………………………………………} Person(s), or body(ies), to receive results of requirement.
+ * {@code   ├─priority……………………………………………………………} Relative ordered importance, or urgency, of the requirement.
+ * {@code   ├─requestedDate………………………………………………} Required or preferred acquisition date and time.
+ * {@code   │   ├─requestedDateOfCollection……} Preferred date and time of collection.
+ * {@code   │   └─latestAcceptableDate…………………} Latest date and time collection must be completed.
+ * {@code   └─expiryDate………………………………………………………} Date and time after which collection is no longer valid.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -27,11 +27,17 @@ import org.opengis.metadata.citation.Ind
 import org.opengis.metadata.citation.Organisation;
 import org.opengis.metadata.citation.Party;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.util.iso.Types;
 
 
 /**
  * Information about the individual and / or organization of the party.
+ * The following property is conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Party}
+ * {@code   └─name……} Name of the party.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -49,6 +55,7 @@ import org.apache.sis.util.iso.Types;
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "name")
 @XmlType(name = "AbstractCI_Party_Type", propOrder = {
     "name",
     "contactInfo"

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -348,7 +348,7 @@ public final class Citations extends Sta
      *
      * @since 0.4
      */
-    public static final IdentifierSpace<Integer> GEOTIFF = new CitationConstant.Authority<>("GeoTIFF");
+    public static final IdentifierSpace<Integer> GEOTIFF = new CitationConstant.Authority<>(Constants.GEOTIFF);
 
     /**
      * The authority for identifiers of objects defined by the <a href="http://trac.osgeo.org/proj/">Proj.4</a> project.
@@ -361,7 +361,7 @@ public final class Citations extends Sta
      *
      * @since 0.4
      */
-    public static final IdentifierSpace<String> PROJ4 = new CitationConstant.Authority<>("Proj4");
+    public static final IdentifierSpace<String> PROJ4 = new CitationConstant.Authority<>(Constants.PROJ4);
 
     /**
      * The authority for identifiers of objects defined by MapInfo.

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -32,6 +32,7 @@ import org.opengis.metadata.identificati
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.internal.jaxb.NonMarshalledAuthority;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.xml.IdentifierSpace;
 import org.apache.sis.xml.IdentifierMap;
@@ -43,6 +44,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Standardized resource reference.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Citation}
+ * {@code   ├─title………………………} Name by which the cited resource is known.
+ * {@code   └─date…………………………} Reference date for the cited resource.</div>
  *
  * <div class="section">Unified identifiers view</div>
  * The ISO 19115 model provides specific attributes for the {@linkplain #getISBN() ISBN} and
@@ -67,6 +73,7 @@ import static org.apache.sis.internal.me
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "title")
 @XmlType(name = "CI_Citation_Type", propOrder = {
     "title",
     "alternateTitles",

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlRoot
 import org.opengis.metadata.citation.CitationDate;
 import org.opengis.metadata.citation.DateType;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
 
 import static org.apache.sis.internal.metadata.MetadataUtilities.toDate;
 import static org.apache.sis.internal.metadata.MetadataUtilities.toMilliseconds;
@@ -30,6 +31,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Reference date and event used to describe it.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Date}
+ * {@code   ├─date………………} Reference date for the cited resource.
+ * {@code   └─dateType……} Event used for reference date.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -47,6 +53,7 @@ import static org.apache.sis.internal.me
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "date")
 @XmlType(name = "CI_Date_Type", propOrder = {
     "date",
     "dateType"

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,6 +31,7 @@ import org.opengis.metadata.citation.Tel
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.util.resources.Messages;
 import org.apache.sis.internal.jaxb.Context;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
@@ -217,6 +218,7 @@ public class DefaultContact extends ISOM
     @Override
     @Deprecated
     @XmlElement(name = "phone")
+    @Dependencies("getPhones")
     public Telephone getPhone() {
         Telephone phone = null;
         final Collection<Telephone> phones = getPhones();
@@ -301,6 +303,7 @@ public class DefaultContact extends ISOM
     @Override
     @Deprecated
     @XmlElement(name = "address")
+    @Dependencies("getAddresses")
     public Address getAddress() {
         return LegacyPropertyAdapter.getSingleton(getAddresses(), Address.class, null, DefaultContact.class, "getAddress");
     }
@@ -352,6 +355,7 @@ public class DefaultContact extends ISOM
     @Override
     @Deprecated
     @XmlElement(name = "onlineResource")
+    @Dependencies("getOnlineResources")
     public OnlineResource getOnlineResource() {
         return LegacyPropertyAdapter.getSingleton(getOnlineResources(), OnlineResource.class, null, DefaultContact.class, "getOnlineResource");
     }

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,10 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Information about on-line sources from which the dataset, specification, or
  * community profile name and extended metadata elements can be obtained.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_OnlineResource}
+ * {@code   └─linkage………………} Location (address) for on-line access using a Uniform Resource Locator address or similar addressing scheme.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -30,6 +30,13 @@ import org.apache.sis.metadata.iso.ISOMe
 
 /**
  * Information about the party and their role.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Responsibility}
+ * {@code   ├─party……………………} Information about the parties.
+ * {@code   │   └─name……………} Name of the party.
+ * {@code   └─role………………………} Function performed by the responsible party.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,12 +31,20 @@ import org.opengis.metadata.citation.Res
 import org.opengis.metadata.citation.Role;
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
 /**
  * Identification of, and means of communication with, person(s) and
  * organizations associated with the dataset.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_ResponsibleParty}
+ * {@code   ├─role……………………………} Function performed by the responsible party.
+ * {@code   └─party…………………………} Information about the parties.
+ * {@code       └─name…………………} Name of the party.</div>
  *
  * @deprecated As of ISO 19115:2014, the {@code ResponsibleParty} type has been replaced by {@code Responsibility}
  *             to allow more flexible associations of individuals, organizations, and roles.
@@ -158,7 +166,7 @@ public class DefaultResponsibleParty ext
             final Class<? extends Party> type, final boolean position)
     {
         InternationalString name = null;
-        if (parties != null) { // May be null on marshalling.
+        if (parties != null) {                              // May be null on marshalling.
             for (final Party party : parties) {
                 if (type.isInstance(party)) {
                     if (name != null) {
@@ -215,6 +223,7 @@ public class DefaultResponsibleParty ext
     @Override
     @Deprecated
     @XmlElement(name = "individualName")
+    @Dependencies("getParties")
     public String getIndividualName() {
         final InternationalString name = getIndividual(false);
         return (name != null) ? name.toString() : null;
@@ -254,6 +263,7 @@ public class DefaultResponsibleParty ext
     @Override
     @Deprecated
     @XmlElement(name = "organisationName")
+    @Dependencies("getParties")
     public InternationalString getOrganisationName() {
         return getName(getParties(), Organisation.class, false);
     }
@@ -293,6 +303,7 @@ public class DefaultResponsibleParty ext
     @Override
     @Deprecated
     @XmlElement(name = "positionName")
+    @Dependencies("getParties")
     public InternationalString getPositionName() {
         return getIndividual(true);
     }
@@ -329,6 +340,7 @@ public class DefaultResponsibleParty ext
     @Override
     @Deprecated
     @XmlElement(name = "contactInfo")
+    @Dependencies("getParties")
     public Contact getContactInfo() {
         final Collection<Party> parties = getParties();
         if (parties != null) { // May be null on marshalling.

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -26,10 +26,15 @@ import org.opengis.metadata.citation.Tel
 import org.opengis.metadata.citation.TelephoneType;
 import org.apache.sis.internal.util.CollectionsExt;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.internal.metadata.Dependencies;
 
 
 /**
  * Telephone numbers for contacting the responsible individual or organization.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Telephone}
+ * {@code   └─number……} Telephone number by which individuals can contact responsible organisation or individual.</div>
  *
  * <div class="section">Differences between versions 2003 and 2014 of ISO 19115</div>
  * For any contact having more than one telephone number, the way to organize the information
@@ -264,6 +269,7 @@ public class DefaultTelephone extends IS
     @Override
     @Deprecated
     @XmlElement(name = "voice")
+    @Dependencies({"getNumber", "getNumberType"})
     public final Collection<String> getVoices() {
         return new LegacyTelephones(getOwner(), TelephoneType.VOICE);
     }
@@ -296,6 +302,7 @@ public class DefaultTelephone extends IS
     @Override
     @Deprecated
     @XmlElement(name = "facsimile")
+    @Dependencies({"getNumber", "getNumberType"})
     public final Collection<String> getFacsimiles() {
         return new LegacyTelephones(getOwner(), TelephoneType.FACSIMILE);
     }

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -27,8 +27,14 @@ import org.opengis.metadata.constraint.L
 
 /**
  * Restrictions and legal prerequisites for accessing and using the resource.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_LegalConstraints}
+ * {@code   ├─accessConstraints……} Access constraints applied to assure the protection of privacy or intellectual property.
+ * {@code   ├─useConstraints……………} Constraints applied to assure the protection of privacy or intellectual property.
+ * {@code   └─otherConstraints………} Other restrictions and legal prerequisites for accessing and using the resource.</div>
  *
- * <div class="section">Relationship between properties</div>
  * The {@linkplain #getOtherConstraints() other constraints} collection shall be non-empty if
  * {@linkplain #getAccessConstraints() access constraints} and/or {@linkplain #getUseConstraints()
  * use constraints} elements have a value of {@link Restriction#OTHER_RESTRICTIONS}.

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -26,6 +26,10 @@ import org.opengis.metadata.constraint.S
 
 /**
  * Handling restrictions imposed on the resource for national security or similar security concerns.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_SecurityConstraints}
+ * {@code   └─classification…………} Name of the handling restrictions on the resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,10 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Information about content type for groups of attributes for a specific
  * {@linkplain DefaultRangeDimension range dimension}.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_AttributeGroup}
+ * {@code   └─contentType……} Content type</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -34,6 +34,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Range of wavelengths in the electromagnetic spectrum.
+ * The following property is conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Band}
+ * {@code   └─units……} Units of data in each dimension included in the resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultCoverageDescription.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultCoverageDescription.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultCoverageDescription.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultCoverageDescription.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,11 +31,16 @@ import org.opengis.metadata.content.Rang
 import org.opengis.metadata.content.RangeElementDescription;
 import org.opengis.util.RecordType;
 import org.apache.sis.xml.Namespaces;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
 /**
  * Information about the content of a grid data cell.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_CoverageDescription}
+ * {@code   └─attributeDescription……} Description of the attribute described by the measurement value.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -228,13 +233,14 @@ public class DefaultCoverageDescription
     @Override
     @Deprecated
     @XmlElement(name = "contentType", required = true)
+    @Dependencies("getAttributeGroups")
     public CoverageContentType getContentType() {
         CoverageContentType type = null;
         final Collection<AttributeGroup> groups = getAttributeGroups();
-        if (groups != null) { // May be null on marshalling.
+        if (groups != null) {                                               // May be null on marshalling.
             for (final AttributeGroup g : groups) {
                 final Collection<? extends CoverageContentType> contentTypes = g.getContentTypes();
-                if (contentTypes != null) { // May be null on marshalling.
+                if (contentTypes != null) {                                 // May be null on marshalling.
                     for (final CoverageContentType t : contentTypes) {
                         if (type == null) {
                             type = t;
@@ -292,6 +298,7 @@ public class DefaultCoverageDescription
     @Override
     @Deprecated
     @XmlElement(name = "dimension")
+    @Dependencies("getAttributeGroups")
     public final Collection<RangeDimension> getDimensions() {
         return new LegacyPropertyAdapter<RangeDimension,AttributeGroup>(getAttributeGroups()) {
             /** Stores a legacy value into the new kind of value. */

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -25,11 +25,19 @@ import org.opengis.util.GenericName;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.content.FeatureCatalogueDescription;
 import org.opengis.metadata.content.FeatureTypeInfo;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
 /**
  * Information identifying the feature catalogue or the conceptual schema.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_FeatureCatalogueDescription}
+ * {@code   ├─includedWithDataset…………………} Indication of whether or not the feature catalogue is included with the dataset.
+ * {@code   └─featureCatalogueCitation……} Complete bibliographic reference to one or more external feature catalogues.
+ * {@code       ├─title……………………………………………} Name by which the cited resource is known.
+ * {@code       └─date………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -239,6 +247,7 @@ public class DefaultFeatureCatalogueDesc
     @Override
     @Deprecated
     @XmlElement(name = "featureTypes")
+    @Dependencies("getFeatureTypeInfo")
     public final Collection<GenericName> getFeatureTypes() {
         return new LegacyPropertyAdapter<GenericName,FeatureTypeInfo>(getFeatureTypeInfo()) {
             /** Stores a legacy value into the new kind of value. */

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlType
 import org.opengis.util.GenericName;
 import org.opengis.metadata.content.FeatureTypeInfo;
 import org.apache.sis.measure.ValueRange;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 import static org.apache.sis.internal.metadata.MetadataUtilities.ensurePositive;
@@ -50,6 +51,7 @@ import static org.apache.sis.internal.me
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "featureTypeName")
 @XmlType(name = "MD_FeatureTypeInfo", propOrder = {
     "featureTypeName",
     "featureInstanceCount"

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultImageDescription.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultImageDescription.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultImageDescription.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultImageDescription.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -31,6 +31,10 @@ import static org.apache.sis.internal.me
 
 /**
  * Information about an image's suitability for use.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_ImageDescription}
+ * {@code   └─attributeDescription……} Description of the attribute described by the measurement value.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeDimension.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeDimension.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeDimension.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeDimension.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -27,6 +27,8 @@ import org.opengis.metadata.Identifier;
 import org.opengis.metadata.content.RangeDimension;
 import org.opengis.metadata.content.SampleDimension;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
+import org.apache.sis.internal.metadata.Dependencies;
 
 
 /**
@@ -50,6 +52,7 @@ import org.apache.sis.metadata.iso.ISOMe
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "sequenceIdentifier")
 @XmlType(name = "MD_RangeDimension_Type", propOrder = {
     "sequenceIdentifier",
     "descriptor",
@@ -146,7 +149,7 @@ public class DefaultRangeDimension exten
     }
 
     /**
-     * Sets the number that uniquely identifies instances of bands of wavelengths on which a sensor operates.
+     * Sets the name or number that uniquely identifies instances of bands of wavelengths on which a sensor operates.
      *
      * @param  newValue  the new sequence identifier.
      */
@@ -191,6 +194,7 @@ public class DefaultRangeDimension exten
     @Override
     @Deprecated
     @XmlElement(name = "descriptor")
+    @Dependencies("getDescription")
     public InternationalString getDescriptor() {
         return getDescription();
     }

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeElementDescription.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeElementDescription.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeElementDescription.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeElementDescription.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -24,11 +24,18 @@ import org.opengis.util.Record;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.content.RangeElementDescription;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.xml.Namespaces;
 
 
 /**
  * Description of specific range elements.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_RangeElementDescription}
+ * {@code   ├─name………………………………………………} Designation associated with a set of range elements.
+ * {@code   ├─definition………………………………} Description of a set of specific range elements.
+ * {@code   └─rangeElement…………………………} Specific range elements, i.e. range elements associated with a name and their definition.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -46,6 +53,7 @@ import org.apache.sis.xml.Namespaces;
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "name")
 @XmlType(name = "MI_RangeElementDescription_Type", propOrder = {
     "name",
     "definition"/*,

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -34,6 +34,11 @@ import static org.apache.sis.internal.me
 
 /**
  * The characteristic of each dimension (layer) included in the resource.
+ * The following property is conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_SampleDimension}
+ * {@code   └─units………………………} Units of data in each dimension included in the resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -73,6 +78,11 @@ public class DefaultSampleDimension exte
     private static final long serialVersionUID = 4517148689016920767L;
 
     /**
+     * Number of values used in a thematic classification resource.
+     */
+    private Integer numberOfValues;
+
+    /**
      * Minimum value of data values in each dimension included in the resource.
      */
     private Double minValue;
@@ -88,11 +98,6 @@ public class DefaultSampleDimension exte
     private Double meanValue;
 
     /**
-     * Number of values used in a thematicClassification resource.
-     */
-    private Integer numberOfValues;
-
-    /**
      * Standard deviation of data values in each dimension included in the resource.
      */
     private Double standardDeviation;
@@ -213,6 +218,31 @@ public class DefaultSampleDimension exte
     }
 
     /**
+     * Returns the number of values used in a thematic classification resource.
+     *
+     * @return the number of values used in a thematic classification resource, or {@code null} if none.
+     */
+    @Override
+    @ValueRange(minimum = 0)
+/// @XmlElement(name = "numberOfValues")
+    public Integer getNumberOfValues() {
+        return numberOfValues;
+    }
+
+    /**
+     * Sets the number of values used in a thematic classification resource.
+     *
+     * @param  newValue  the new number of values used in a thematic classification resource.
+     * @throws IllegalArgumentException if the given value is negative.
+     */
+    public void setNumberOfValues(final Integer newValue) {
+        checkWritePermission();
+        if (ensurePositive(DefaultSampleDimension.class, "numberOfValues", false, newValue)) {
+            numberOfValues = newValue;
+        }
+    }
+
+    /**
      * Returns the minimum value of data values in each dimension included in the resource.
      *
      * @return minimum value of data values in each dimension included in the resource, or {@code null} if unspecified.
@@ -276,31 +306,6 @@ public class DefaultSampleDimension exte
     }
 
     /**
-     * Returns the number of values used in a thematic classification resource.
-     *
-     * @return the number of values used in a thematic classification resource, or {@code null} if none.
-     */
-    @Override
-    @ValueRange(minimum = 0)
-/// @XmlElement(name = "numberOfValues")
-    public Integer getNumberOfValues() {
-        return numberOfValues;
-    }
-
-    /**
-     * Sets the number of values used in a thematic classification resource.
-     *
-     * @param  newValue  the new number of values used in a thematic classification resource.
-     * @throws IllegalArgumentException if the given value is negative.
-     */
-    public void setNumberOfValues(final Integer newValue) {
-        checkWritePermission();
-        if (ensurePositive(DefaultSampleDimension.class, "numberOfValues", false, newValue)) {
-            numberOfValues = newValue;
-        }
-    }
-
-    /**
      * Returns the standard deviation of data values in each dimension included in the resource.
      *
      * @return standard deviation of data values in each dimension included in the resource, or {@code null} if none.
@@ -377,7 +382,7 @@ public class DefaultSampleDimension exte
     /**
      * Sets the physical value corresponding to a cell value of zero.
      *
-     * @param  newValue  the new physical value corresponding to a cell value of zero, or {@code null} if none..
+     * @param  newValue  the new physical value corresponding to a cell value of zero.
      */
     public void setOffset(final Double newValue) {
         checkWritePermission();

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,13 @@ import org.apache.sis.metadata.iso.ISOMe
 
 /**
  * Description of a transfer data file.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MX_DataFile}
+ * {@code   └─fileFormat……………………………………………………………} Defines the format of the transfer data file.
+ * {@code       └─formatSpecificationCitation……} Citation/URL of the specification format.
+ * {@code           ├─title……………………………………………………} Name by which the cited resource is known.
+ * {@code           └─date………………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDigitalTransferOptions.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDigitalTransferOptions.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDigitalTransferOptions.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDigitalTransferOptions.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,7 @@ import org.opengis.metadata.distribution
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 import org.apache.sis.measure.ValueRange;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.internal.metadata.Dependencies;
 
 import static org.apache.sis.internal.metadata.MetadataUtilities.ensurePositive;
 
@@ -257,6 +258,7 @@ public class DefaultDigitalTransferOptio
     @Override
     @Deprecated
     @XmlElement(name = "offLine")
+    @Dependencies("getOffLines")
     public Medium getOffLine() {
         return LegacyPropertyAdapter.getSingleton(getOffLines(), Medium.class, null, DefaultDigitalTransferOptions.class, "getOffLine");
     }

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistribution.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistribution.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistribution.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistribution.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -26,10 +26,19 @@ import org.opengis.metadata.distribution
 import org.opengis.metadata.distribution.Distributor;
 import org.opengis.metadata.distribution.Format;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
 
 
 /**
  * Information about the distributor of and options for obtaining the resource.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Distribution}
+ * {@code   └─distributionFormat………………………………………} Description of the format of the data to be distributed.
+ * {@code       └─formatSpecificationCitation……} Citation/URL of the specification format.
+ * {@code           ├─title……………………………………………………} Name by which the cited resource is known.
+ * {@code           └─date………………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -48,6 +57,7 @@ import org.apache.sis.metadata.iso.ISOMe
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "description")
 @XmlType(name = "MD_Distribution_Type", propOrder = {
     "distributionFormats",
     "distributors",
@@ -159,6 +169,8 @@ public class DefaultDistribution extends
      * Provides a description of the format of the data to be distributed.
      *
      * @return description of the format of the data to be distributed.
+     *
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#getResourceFormats()
      */
     @Override
     @XmlElement(name = "distributionFormat")
@@ -170,6 +182,8 @@ public class DefaultDistribution extends
      * Sets a description of the format of the data to be distributed.
      *
      * @param  newValues  the new distribution formats.
+     *
+     * @see org.apache.sis.metadata.iso.identification.AbstractIdentification#setResourceFormats(Collection)
      */
     public void setDistributionFormats(final Collection<? extends Format> newValues) {
         distributionFormats = writeCollection(newValues, distributionFormats, Format.class);

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistributor.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistributor.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistributor.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistributor.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -30,6 +30,18 @@ import org.apache.sis.metadata.iso.ISOMe
 
 /**
  * Information about the distributor.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Distributor}
+ * {@code   ├─distributorContact………………………………………} Party from whom the resource may be obtained. This list need not be exhaustive.
+ * {@code   │   ├─party………………………………………………………………} Information about the parties.
+ * {@code   │   │   └─name………………………………………………………} Name of the party.
+ * {@code   │   └─role…………………………………………………………………} Function performed by the responsible party.
+ * {@code   └─distributorFormat…………………………………………} Information about the format used by the distributor.
+ * {@code       └─formatSpecificationCitation……} Citation/URL of the specification format.
+ * {@code           ├─title……………………………………………………} Name by which the cited resource is known.
+ * {@code           └─date………………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -26,6 +26,7 @@ import org.opengis.metadata.citation.Cit
 import org.opengis.metadata.distribution.Format;
 import org.opengis.metadata.distribution.Medium;
 import org.opengis.metadata.distribution.Distributor;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.iso.ISOMetadata;
@@ -38,6 +39,13 @@ import java.util.function.BiConsumer;
 /**
  * Description of the computer language construct that specifies the representation
  * of data objects in a record, file, message, storage device or transmission channel.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Format}
+ * {@code   └─formatSpecificationCitation……} Citation/URL of the specification format.
+ * {@code       ├─title……………………………………………………} Name by which the cited resource is known.
+ * {@code       └─date………………………………………………………} Reference date for the cited resource.</div>
+ *
  * Each {@code Format} instance should contain a {@linkplain #getFormatSpecificationCitation() reference
  * to the format specification}, for example <cite>"PNG (Portable Network Graphics) Specification"</cite>.
  * The specification often has an abbreviation (for example "PNG") which can be stored as an
@@ -246,6 +254,7 @@ public class DefaultFormat extends ISOMe
     @Override
     @Deprecated
     @XmlElement(name = "specification")
+    @Dependencies("getFormatSpecificationCitation")
     public InternationalString getSpecification() {
         final Citation citation = getFormatSpecificationCitation();
         return (citation != null) ? citation.getTitle() : null;
@@ -278,6 +287,7 @@ public class DefaultFormat extends ISOMe
     @Override
     @Deprecated
     @XmlElement(name = "name", required = true)
+    @Dependencies("getFormatSpecificationCitation")
     public InternationalString getName() {
         final Citation citation = getFormatSpecificationCitation();
         if (citation != null) {
@@ -315,6 +325,7 @@ public class DefaultFormat extends ISOMe
     @Override
     @Deprecated
     @XmlElement(name = "version", required = true)
+    @Dependencies("getFormatSpecificationCitation")
     public InternationalString getVersion() {
         final Citation citation = getFormatSpecificationCitation();
         return (citation != null) ? citation.getEdition() : null;

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,8 +29,10 @@ import org.opengis.metadata.distribution
 import org.opengis.metadata.distribution.MediumName;
 import org.opengis.metadata.distribution.MediumFormat;
 import org.apache.sis.measure.ValueRange;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.internal.jaxb.NonMarshalledAuthority;
+import org.apache.sis.internal.metadata.Dependencies;
 import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 import static org.apache.sis.internal.metadata.MetadataUtilities.ensurePositive;
@@ -38,6 +40,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Information about the media on which the resource can be distributed.
+ * The following property is mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Medium}
+ * {@code   └─densityUnits……} Units of measure for the recording density.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>
@@ -56,6 +63,7 @@ import static org.apache.sis.internal.me
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "name")
 @XmlType(name = "MD_Medium_Type", propOrder = {
     "name",
     "densities",
@@ -221,6 +229,7 @@ public class DefaultMedium extends ISOMe
     @Override
     @Deprecated
     @XmlElement(name = "density")
+    @Dependencies("getDensity")
     public Collection<Double> getDensities() {
         return new AbstractSet<Double>() {
             /** Returns 0 if empty, or 1 if a density has been specified. */

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultBoundingPolygon.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultBoundingPolygon.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultBoundingPolygon.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultBoundingPolygon.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -29,6 +29,11 @@ import org.opengis.metadata.extent.Bound
  * (<var>x</var>,<var>y</var>) coordinates of the polygon.
  * The last point replicates first point.
  *
+ * <p>The following property is mandatory in a well-formed metadata according ISO 19115:</p>
+ *
+ * <div class="preformat">{@code EX_BoundingPolygon}
+ * {@code   └─polygon…………………} The sets of points defining the bounding polygon.</div>
+ *
  * <p><b>Limitations:</b></p>
  * <ul>
  *   <li>Instances of this class are not synchronized for multi-threading.

Modified: sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultExtent.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultExtent.java?rev=1803070&r1=1803069&r2=1803070&view=diff
==============================================================================
--- sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultExtent.java [UTF-8] (original)
+++ sis/branches/JDK9/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultExtent.java [UTF-8] Wed Jul 26 16:14:09 2017
@@ -30,12 +30,26 @@ import org.opengis.referencing.operation
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.TitleProperty;
 import org.apache.sis.internal.metadata.ReferencingServices;
 
 
 /**
  * Information about spatial, vertical, and temporal extent.
- * This interface has four optional attributes:
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code EX_Extent}
+ * {@code   ├─description……………………} The spatial and temporal extent for the referring object.
+ * {@code   ├─geographicElement……} Geographic component of the extent of the referring object.
+ * {@code   ├─temporalElement…………} Temporal component of the extent of the referring object.
+ * {@code   │   └─extent………………………} The date and time for the content of the dataset.
+ * {@code   └─verticalElement…………} Vertical component of the extent of the referring object.
+ * {@code       ├─minimumValue………} The lowest vertical extent contained in the dataset.
+ * {@code       ├─maximumValue………} The highest vertical extent contained in the dataset.
+ * {@code       └─verticalCRS…………} Information about the vertical coordinate reference system.</div>
+ *
+ * This type has four conditional properties:
  * {@linkplain #getGeographicElements() geographic elements},
  * {@linkplain #getTemporalElements() temporal elements},
  * {@linkplain #getVerticalElements() vertical elements} and
@@ -70,6 +84,7 @@ import org.apache.sis.internal.metadata.
  * @module
  */
 @SuppressWarnings("CloneableClassWithoutClone")                 // ModifiableMetadata needs shallow clones.
+@TitleProperty(name = "description")
 @XmlType(name = "EX_Extent_Type", propOrder = {
     "description",
     "geographicElements",



Mime
View raw message