sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1626345 [8/14] - in /sis/trunk: ./ core/sis-feature/src/main/java/org/apache/sis/feature/ core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/ core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/ core/sis-metadat...
Date Fri, 19 Sep 2014 21:46:44 GMT
Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -22,12 +22,14 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
-import org.opengis.metadata.lineage.ProcessStepReport;
-import org.opengis.metadata.lineage.Processing;
 import org.opengis.util.InternationalString;
+import org.opengis.metadata.citation.Citation;
+import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.metadata.lineage.Source;
+import org.opengis.metadata.lineage.Processing;
 import org.opengis.metadata.lineage.ProcessStep;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.lineage.ProcessStepReport;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.xml.Namespaces;
@@ -37,13 +39,24 @@ import static org.apache.sis.internal.me
 
 
 /**
- * Description of the event, including related parameters or tolerances.
+ * Information about an event or transformation in the life of a resource.
+ * Includes the process used to maintain the resource.
+ *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @XmlType(name = "LI_ProcessStep_Type", propOrder = {
@@ -88,6 +101,16 @@ public class DefaultProcessStep extends 
     private Collection<ResponsibleParty> processors;
 
     /**
+     * Process step documentation.
+     */
+    private Collection<Citation> references;
+
+    /**
+     * Type of resource and / or extent to which the process step applies.
+     */
+    private Scope scope;
+
+    /**
      * Information about the source data used in creating the data specified by the scope.
      */
     private Collection<Source> sources;
@@ -144,6 +167,10 @@ public class DefaultProcessStep extends 
             outputs               = copyCollection(object.getOutputs(), Source.class);
             processingInformation = object.getProcessingInformation();
             reports               = copyCollection(object.getReports(), ProcessStepReport.class);
+            if (object instanceof DefaultProcessStep) {
+                references = copyCollection(((DefaultProcessStep) object).getReferences(), Citation.class);
+                scope      = ((DefaultProcessStep) object).getScope();
+            }
         }
     }
 
@@ -239,6 +266,11 @@ public class DefaultProcessStep extends 
      * Returns the identification of, and means of communication with, person(s) and
      * organization(s) associated with the process step.
      *
+     * <div class="warning"><b>Upcoming API change — generalization</b><br>
+     * As of ISO 19115:2014, {@code ResponsibleParty} is replaced by the {@link Responsibility} parent interface.
+     * This change may be applied in GeoAPI 4.0.
+     * </div>
+     *
      * @return Means of communication with person(s) and organization(s) associated with the process step.
      */
     @Override
@@ -251,6 +283,11 @@ public class DefaultProcessStep extends 
      * Identification of, and means of communication with, person(s) and
      * organization(s) associated with the process step.
      *
+     * <div class="warning"><b>Upcoming API change — generalization</b><br>
+     * As of ISO 19115:2014, {@code ResponsibleParty} is replaced by the {@link Responsibility} parent interface.
+     * This change may be applied in GeoAPI 4.0.
+     * </div>
+     *
      * @param newValues The new processors.
      */
     public void setProcessors(final Collection<? extends ResponsibleParty> newValues) {
@@ -258,6 +295,53 @@ public class DefaultProcessStep extends 
     }
 
     /**
+     * Returns the process step documentation.
+     *
+     * @return Process step documentation.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "reference")
+    public Collection<Citation> getReferences() {
+        return references = nonNullCollection(references, Citation.class);
+    }
+
+    /**
+     * Sets the process step documentation.
+     *
+     * @param newValues The new documentation.
+     *
+     * @since 0.5
+     */
+    public void setReferences(final Collection<? extends Citation> newValues){
+        references = writeCollection(newValues, references, Citation.class);
+    }
+
+    /**
+     * Returns the type of resource and / or extent to which the process step applies.
+     *
+     * @return Type of resource, or {@code null} if none.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "scope")
+    public Scope getScope() {
+        return scope;
+    }
+
+    /**
+     * Sets the type of resource and / or extent to which the process step applies.
+     *
+     * @param newValue The new type of resource.
+     *
+     * @since 0.5
+     */
+    public void setScope(final Scope newValue) {
+        checkWritePermission();
+        scope = newValue;
+    }
+
+    /**
      * Returns the information about the source data used in creating the data specified by the scope.
      *
      * @return Information about the source data used in creating the data.

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStepReport.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStepReport.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStepReport.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStepReport.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,6 +28,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Report of what occurred during the process step.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -31,8 +31,16 @@ import org.apache.sis.internal.jaxb.NonM
 
 
 /**
- * Comprehensive information about the procedure(s), process(es) and algorithm(s) applied
- * in the process step.
+ * Comprehensive information about the procedure(s), process(es) and algorithm(s) applied in the process step.
+ *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
  *
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -21,16 +21,20 @@ import javax.xml.bind.annotation.XmlElem
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.bind.annotation.XmlType;
+import org.opengis.util.InternationalString;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.extent.Extent;
 import org.opengis.metadata.lineage.NominalResolution;
 import org.opengis.metadata.lineage.Source;
 import org.opengis.metadata.lineage.ProcessStep;
+import org.opengis.metadata.identification.Resolution;
 import org.opengis.metadata.identification.RepresentativeFraction;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.referencing.ReferenceSystem;
-import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.metadata.iso.maintenance.DefaultScope;
+import org.apache.sis.metadata.iso.identification.DefaultResolution;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.xml.Namespaces;
 
@@ -42,11 +46,21 @@ import org.apache.sis.xml.Namespaces;
  * According ISO 19115, at least one of {@linkplain #getDescription() description} and
  * {@linkplain #getSourceExtents() source extents} shall be provided.
  *
+ * {@section Limitations}
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @XmlType(name = "LI_Source_Type", propOrder = {
@@ -64,7 +78,7 @@ public class DefaultSource extends ISOMe
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = -398526682785377249L;
+    private static final long serialVersionUID = -8444238043227180224L;
 
     /**
      * Detailed description of the level of the source data.
@@ -72,9 +86,9 @@ public class DefaultSource extends ISOMe
     private InternationalString description;
 
     /**
-     * Denominator of the representative fraction on a source map.
+     * Spatial resolution expressed as a scale factor, an angle or a level of detail.
      */
-    private RepresentativeFraction scaleDenominator;
+    private Resolution sourceSpatialResolution;
 
     /**
      * Spatial reference system used by the source data.
@@ -87,9 +101,14 @@ public class DefaultSource extends ISOMe
     private Citation sourceCitation;
 
     /**
-     * Information about the spatial, vertical and temporal extent of the source data.
+     * Reference to metadata for the source.
+     */
+    private Collection<Citation> sourceMetadata;
+
+    /**
+     * Type and / or extent of the source.
      */
-    private Collection<Extent> sourceExtents;
+    private Scope scope;
 
     /**
      * Information about an event in the creation process for the source data.
@@ -102,8 +121,7 @@ public class DefaultSource extends ISOMe
     private Identifier processedLevel;
 
     /**
-     * Distance between consistent parts (centre, left side, right side) of two adjacent
-     * pixels.
+     * Distance between consistent parts (centre, left side, right side) of two adjacent pixels.
      */
     private NominalResolution resolution;
 
@@ -134,14 +152,20 @@ public class DefaultSource extends ISOMe
     public DefaultSource(final Source object) {
         super(object);
         if (object != null) {
-            description           = object.getDescription();
-            scaleDenominator      = object.getScaleDenominator();
-            sourceCitation        = object.getSourceCitation();
-            sourceExtents         = copyCollection(object.getSourceExtents(), Extent.class);
-            sourceSteps           = copyCollection(object.getSourceSteps(), ProcessStep.class);
-            processedLevel        = object.getProcessedLevel();
-            resolution            = object.getResolution();
-            sourceReferenceSystem = object.getSourceReferenceSystem();
+            description             = object.getDescription();
+            sourceReferenceSystem   = object.getSourceReferenceSystem();
+            sourceCitation          = object.getSourceCitation();
+            sourceSteps             = copyCollection(object.getSourceSteps(), ProcessStep.class);
+            processedLevel          = object.getProcessedLevel();
+            resolution              = object.getResolution();
+            if (object instanceof DefaultSource) {
+                sourceSpatialResolution = ((DefaultSource) object).getSourceSpatialResolution();
+                sourceMetadata          = copyCollection(((DefaultSource) object).getSourceMetadata(), Citation.class);
+                scope                   = ((DefaultSource) object).getScope();
+            } else {
+                setScaleDenominator(object.getScaleDenominator());
+                setSourceExtents(object.getSourceExtents());
+            }
         }
     }
 
@@ -192,24 +216,64 @@ public class DefaultSource extends ISOMe
     }
 
     /**
+     * Returns the spatial resolution expressed as a scale factor, an angle or a level of detail.
+     *
+     * @return Spatial resolution expressed as a scale factor, an angle or a level of detail, or {@code null} if none.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "sourceSpatialResolution")
+    public Resolution getSourceSpatialResolution() {
+        return sourceSpatialResolution;
+    }
+
+    /**
+     * Sets the spatial resolution expressed as a scale factor, an angle or a level of detail.
+     *
+     * @param newValue The new spatial resolution.
+     *
+     * @since 0.5
+     */
+    public void setSourceSpatialResolution(final Resolution newValue) {
+        checkWritePermission();
+        sourceSpatialResolution = newValue;
+    }
+
+    /**
      * Returns the denominator of the representative fraction on a source map.
+     * This method fetches the value from the
+     * {@linkplain #getSourceSpatialResolution() source spatial resolution}.
      *
      * @return Representative fraction on a source map, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, moved to {@link DefaultResolution#getEquivalentScale()}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "scaleDenominator")
-    public RepresentativeFraction getScaleDenominator()  {
-        return scaleDenominator;
+    public final RepresentativeFraction getScaleDenominator() {
+        final Resolution resolution = getSourceSpatialResolution();
+        return (resolution != null) ? resolution.getEquivalentScale() : null;
     }
 
     /**
      * Sets the denominator of the representative fraction on a source map.
+     * This method stores the value in the
+     * {@linkplain #setSourceSpatialResolution(RepresentativeFraction) source spatial resolution}.
      *
      * @param newValue The new scale denominator.
+     *
+     * @deprecated As of ISO 19115:2014, moved to {@link DefaultResolution#setEquivalentScale(RepresentativeFraction)}.
      */
-    public void setScaleDenominator(final RepresentativeFraction newValue)  {
+    @Deprecated
+    public final void setScaleDenominator(final RepresentativeFraction newValue)  {
         checkWritePermission();
-        scaleDenominator = newValue;
+        Resolution resolution = getSourceSpatialResolution();
+        if (resolution instanceof DefaultResolution) {
+            ((DefaultResolution) resolution).setEquivalentScale(newValue);
+        } else if (newValue != null) {
+            setSourceSpatialResolution(new DefaultResolution(newValue));
+        }
     }
 
     /**
@@ -220,6 +284,7 @@ public class DefaultSource extends ISOMe
      * @todo We need to annotate the referencing module before we can annotate this method.
      */
     @Override
+/// @XmlElement(name = "sourceReferenceSystem")
     public ReferenceSystem getSourceReferenceSystem()  {
         return sourceReferenceSystem;
     }
@@ -256,29 +321,96 @@ public class DefaultSource extends ISOMe
     }
 
     /**
+     * Returns the references to metadata for the source.
+     *
+     * @return References to metadata for the source.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "sourceMetadata")
+    public Collection<Citation> getSourceMetadata() {
+        return sourceMetadata = nonNullCollection(sourceMetadata, Citation.class);
+    }
+
+    /**
+     * Sets the references to metadata for the source.
+     *
+     * @param newValues The new references.
+     *
+     * @since 0.5
+     */
+    public void setSourceMetadata(final Collection<? extends Citation> newValues) {
+        sourceMetadata = writeCollection(newValues, sourceMetadata, Citation.class);
+    }
+
+    /**
+     * Return the type and / or extent of the source.
+     *
+     * @return Type and / or extent of the source, or {@code null} if none.
+     *
+     * @condition Mandatory if the {@linkplain #getDescription() description} is not provided.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "scope")
+    public Scope getScope() {
+        return scope;
+    }
+
+    /**
+     * Sets the type and / or extent of the source.
+     *
+     * @param newValue The new type and / or extent of the source.
+     *
+     * @since 0.5
+     */
+    public void setScope(final Scope newValue){
+        checkWritePermission();
+        scope = newValue;
+    }
+
+    /**
      * Returns the information about the spatial, vertical and temporal extent of the source data.
+     * This method fetches the values from the {@linkplain #getScope() scope}.
      *
      * @return Information about the extent of the source data.
+     *
+     * @deprecated As of ISO 19115:2014, moved to {@link DefaultScope#getExtent()}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "sourceExtent")
-    public Collection<Extent> getSourceExtents()  {
-        return sourceExtents = nonNullCollection(sourceExtents, Extent.class);
+    public final Collection<Extent> getSourceExtents() {
+        Scope scope = getScope();
+        if (!(scope instanceof DefaultScope)) {
+            scope = new DefaultScope(scope);
+            setScope(scope);
+        }
+        return ((DefaultScope) scope).getExtents();
     }
 
     /**
      * Information about the spatial, vertical and temporal extent of the source data.
+     * This method stores the values in the {@linkplain #setScope(Scope) scope}.
      *
      * @param newValues The new source extents.
+     *
+     * @deprecated As of ISO 19115:2014, moved to {@link DefaultScope#setExtent(Extent)}.
      */
-    public void setSourceExtents(final Collection<? extends Extent> newValues) {
-        sourceExtents = writeCollection(newValues, sourceExtents, Extent.class);
+    @Deprecated
+    public final void setSourceExtents(final Collection<? extends Extent> newValues) {
+        Scope scope = getScope();
+        if (!(scope instanceof DefaultScope)) {
+            scope = new DefaultScope(scope);
+            setScope(scope);
+        }
+        ((DefaultScope) scope).setExtents(newValues);
     }
 
     /**
-     * Returns information about an event in the creation process for the source data.
+     * Returns information about process steps in which this source was used.
      *
-     * @return Information about an event in the creation process.
+     * @return Information about process steps in which this source was used.
      */
     @Override
     @XmlElement(name = "sourceStep")
@@ -287,9 +419,9 @@ public class DefaultSource extends ISOMe
     }
 
     /**
-     * Sets information about an event in the creation process for the source data.
+     * Sets information about process steps in which this source was used.
      *
-     * @param newValues The new source steps.
+     * @param newValues The new process steps.
      */
     public void setSourceSteps(final Collection<? extends ProcessStep> newValues) {
         sourceSteps = writeCollection(newValues, sourceSteps, ProcessStep.class);

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -49,7 +49,7 @@
  * </td></tr></table>
  *
  * {@section Null values, nil objects and collections}
- * All constructors (except the <cite>copy constructors</cite>) and setter methods accept {@code null} arguments.
+ * All constructors and setter methods accept {@code null} arguments.
  * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -21,28 +21,40 @@ import java.util.Collection;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
+import org.opengis.metadata.citation.DateType;
+import org.opengis.metadata.citation.CitationDate;
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.maintenance.MaintenanceFrequency;
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.maintenance.ScopeDescription;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.temporal.PeriodDuration;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
-
-import static org.apache.sis.internal.metadata.MetadataUtilities.toDate;
-import static org.apache.sis.internal.metadata.MetadataUtilities.toMilliseconds;
+import org.apache.sis.metadata.iso.citation.DefaultCitationDate;
+import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 
 
 /**
  * Information about the scope and frequency of updating.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @XmlType(name = "MD_MaintenanceInformation_Type", propOrder = {
@@ -59,7 +71,12 @@ public class DefaultMaintenanceInformati
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = -5134544727860361898L;
+    private static final long serialVersionUID = -8736825706141936429L;
+
+    /**
+     * New code list item defined in ISO 19115:2014.
+     */
+    private static final DateType NEXT_UPDATE = DateType.valueOf("NEXT_UPDATE");
 
     /**
      * Frequency with which changes and additions are made to the resource after the
@@ -68,11 +85,9 @@ public class DefaultMaintenanceInformati
     private MaintenanceFrequency maintenanceAndUpdateFrequency;
 
     /**
-     * Scheduled revision date for resource, in milliseconds elapsed
-     * since January 1st, 1970. If there is no such date, then this field
-     * is set to the special value {@link Long#MIN_VALUE}.
+     * Date information associated with maintenance of resource.
      */
-    private long dateOfNextUpdate = Long.MIN_VALUE;
+    private Collection<CitationDate> maintenanceDates;
 
     /**
      * Maintenance period other than those defined, in milliseconds.
@@ -80,14 +95,9 @@ public class DefaultMaintenanceInformati
     private PeriodDuration userDefinedMaintenanceFrequency;
 
     /**
-     * Scope of data to which maintenance is applied.
+     * Type of resource and / or extent to which the maintenance information applies.
      */
-    private Collection<ScopeCode> updateScopes;
-
-    /**
-     * Additional information about the range or extent of the resource.
-     */
-    private Collection<ScopeDescription> updateScopeDescriptions;
+    private Collection<Scope> maintenanceScopes;
 
     /**
      * Information regarding specific requirements for maintaining the resource.
@@ -95,8 +105,8 @@ public class DefaultMaintenanceInformati
     private Collection<InternationalString> maintenanceNotes;
 
     /**
-     * Identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata
+     * Identification of, and means of communicating with, person(s) and organization(s)
+     * with responsibility for maintaining the resource.
      */
     private Collection<ResponsibleParty> contacts;
 
@@ -129,12 +139,18 @@ public class DefaultMaintenanceInformati
         super(object);
         if (object != null) {
             maintenanceAndUpdateFrequency   = object.getMaintenanceAndUpdateFrequency();
-            dateOfNextUpdate                = toMilliseconds(object.getDateOfNextUpdate());
             userDefinedMaintenanceFrequency = object.getUserDefinedMaintenanceFrequency();
-            updateScopes                    = copyCollection(object.getUpdateScopes(), ScopeCode.class);
-            updateScopeDescriptions         = copyCollection(object.getUpdateScopeDescriptions(), ScopeDescription.class);
             maintenanceNotes                = copyCollection(object.getMaintenanceNotes(), InternationalString.class);
-            contacts                        = copyCollection(object.getContacts(), ResponsibleParty.class);
+            if (object instanceof DefaultMaintenanceInformation) {
+                final DefaultMaintenanceInformation c = (DefaultMaintenanceInformation) object;
+                maintenanceDates                = copyCollection(c.getMaintenanceDates(), CitationDate.class);
+                maintenanceScopes               = copyCollection(c.getMaintenanceScopes(), Scope.class);
+                contacts                        = copyCollection(c.getContacts(), ResponsibleParty.class);
+            } else {
+                setDateOfNextUpdate(object.getDateOfNextUpdate());
+                setUpdateScopes(object.getUpdateScopes());
+                setUpdateScopeDescriptions(object.getUpdateScopeDescriptions());
+            }
         }
     }
 
@@ -187,30 +203,78 @@ public class DefaultMaintenanceInformati
     }
 
     /**
+     * Return the date information associated with maintenance of resource.
+     *
+     * @return Date information associated with maintenance of resource.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "maintenanceDate", required = true)
+    public Collection<CitationDate> getMaintenanceDates() {
+        return maintenanceDates = nonNullCollection(maintenanceDates, CitationDate.class);
+    }
+
+    /**
+     * Sets the date information associated with maintenance of resource.
+     *
+     * @param newValues The new date information associated with maintenance of resource.
+     *
+     * @since 0.5
+     */
+    public void setMaintenanceDates(final Collection<? extends CitationDate> newValues) {
+        maintenanceDates = writeCollection(newValues, maintenanceDates, CitationDate.class);
+    }
+
+    /**
      * Returns the scheduled revision date for resource.
+     * This method fetches the value from the {@linkplain #getMaintenanceDates() maintenance dates}.
      *
      * @return Scheduled revision date, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #getMaintenanceDates()} in order to enable inclusion
+     *             of a {@link DateType} to describe the type of the date. The associated date type is
+     *             {@link DateType.valueOf("NEXT_UPDATE")}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "dateOfNextUpdate")
-    public Date getDateOfNextUpdate() {
-        return toDate(dateOfNextUpdate);
+    public final Date getDateOfNextUpdate() {
+        if (maintenanceDates != null) {
+            for (final CitationDate date : maintenanceDates) {
+                if (NEXT_UPDATE.equals(date.getDateType())) {
+                    return date.getDate();
+                }
+            }
+        }
+        return null;
     }
 
     /**
      * Sets the scheduled revision date for resource.
+     * This method stores the value in the {@linkplain #getMaintenanceDates() maintenance dates}.
      *
      * @param newValue The new date of next update.
      */
-    public void setDateOfNextUpdate(final Date newValue) {
+    @Deprecated
+    public final void setDateOfNextUpdate(final Date newValue) {
         checkWritePermission();
-        dateOfNextUpdate = toMilliseconds(newValue);
+        if (newValue != null) {
+            if (maintenanceDates != null) {
+                for (final CitationDate date : maintenanceDates) {
+                    if (date instanceof DefaultCitationDate && NEXT_UPDATE.equals(date.getDateType())) {
+                        ((DefaultCitationDate) date).setDate(newValue);
+                        return;
+                    }
+                }
+            }
+            getMaintenanceDates().add(new DefaultCitationDate(newValue, NEXT_UPDATE));
+        }
     }
 
     /**
      * Returns the maintenance period other than those defined.
      *
-     * @return The Maintenance period, or {@code null}.
+     * @return The maintenance period, or {@code null}.
      */
     @Override
     @XmlElement(name = "userDefinedMaintenanceFrequency")
@@ -229,43 +293,129 @@ public class DefaultMaintenanceInformati
     }
 
     /**
+     * Return the types of resource and / or extents to which the maintenance information applies.
+     *
+     * @return type of resource and / or extent to which the maintenance information applies.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "maintenanceScope")
+    public Collection<Scope> getMaintenanceScopes() {
+        return maintenanceScopes = nonNullCollection(maintenanceScopes, Scope.class);
+    }
+
+    /**
+     * Sets the types of resource and / or extents to which the maintenance information applies.
+     *
+     * @param newValues The types of resource and / or extents to which the maintenance information applies.
+     *
+     * @since 0.5
+     */
+    public void setMaintenanceScopes(final Collection<? extends Scope> newValues) {
+        maintenanceScopes = writeCollection(newValues, maintenanceScopes, Scope.class);
+    }
+
+    /**
      * Returns the scope of data to which maintenance is applied.
+     * This method fetches the values from the {@linkplain #getMaintenanceScopes() maintenance scopes}.
      *
      * @return Scope of data to which maintenance is applied.
+     *
+     * @deprecated As of ISO 19115:2014, {@code getUpdateScopes()} and {@link #getUpdateScopeDescriptions()}
+     *             were combined into {@link #getMaintenanceScopes()} in order to allow specifying a scope
+     *             that includes a spatial and temporal extent.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "updateScope")
-    public Collection<ScopeCode> getUpdateScopes() {
-        return updateScopes = nonNullCollection(updateScopes, ScopeCode.class);
+    public final Collection<ScopeCode> getUpdateScopes() {
+        return new LegacyPropertyAdapter<ScopeCode,Scope>(getMaintenanceScopes()) {
+            /** Stores a legacy value into the new kind of value. */
+            @Override protected Scope wrap(final ScopeCode value) {
+                return new DefaultScope(value);
+            }
+
+            /** Extracts the legacy value from the new kind of value. */
+            @Override protected ScopeCode unwrap(final Scope container) {
+                return container.getLevel();
+            }
+
+            /** Updates the legacy value in an existing new kind of value. */
+            @Override protected boolean update(final Scope container, final ScopeCode value) {
+                if (container instanceof DefaultScope) {
+                    ((DefaultScope) container).setLevel(value);
+                    return true;
+                }
+                return false;
+            }
+        }.validOrNull();
     }
 
     /**
      * Sets the scope of data to which maintenance is applied.
+     * This method stores the values in the {@linkplain #getMaintenanceScopes() maintenance scopes}.
      *
      * @param newValues The new update scopes.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #setMaintenanceScopes(Collection)}.
      */
-    public void setUpdateScopes(final Collection<? extends ScopeCode> newValues) {
-        updateScopes = writeCollection(newValues, updateScopes, ScopeCode.class);
+    @Deprecated
+    public final void setUpdateScopes(final Collection<? extends ScopeCode> newValues) {
+        checkWritePermission();
+        ((LegacyPropertyAdapter<ScopeCode,?>) getUpdateScopes()).setValues(newValues);
     }
 
     /**
      * Returns additional information about the range or extent of the resource.
+     * This method fetches the values from the {@linkplain #getMaintenanceScopes() maintenance scopes}.
      *
      * @return Additional information about the range or extent of the resource.
+     *
+     * @deprecated As of ISO 19115:2014, {@link #getUpdateScopes()} and {@code getUpdateScopeDescriptions()}
+     *             were combined into {@link #getMaintenanceScopes()} in order to allow specifying a scope
+     *             that includes a spatial and temporal extent.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "updateScopeDescription")
-    public Collection<ScopeDescription> getUpdateScopeDescriptions() {
-        return updateScopeDescriptions = nonNullCollection(updateScopeDescriptions, ScopeDescription.class);
+    public final Collection<ScopeDescription> getUpdateScopeDescriptions() {
+        return new LegacyPropertyAdapter<ScopeDescription,Scope>(getMaintenanceScopes()) {
+            /** Stores a legacy value into the new kind of value. */
+            @Override protected Scope wrap(final ScopeDescription value) {
+                final DefaultScope container = new DefaultScope();
+                container.setLevelDescription(asCollection(value));
+                return container;
+            }
+
+            /** Extracts the legacy value from the new kind of value. */
+            @Override protected ScopeDescription unwrap(final Scope container) {
+                return getSingleton(container.getLevelDescription(), ScopeDescription.class,
+                        this, DefaultMaintenanceInformation.class, "getUpdateScopeDescriptions");
+            }
+
+            /** Updates the legacy value in an existing instance of the new kind of value. */
+            @Override protected boolean update(final Scope container, final ScopeDescription value) {
+                if (container instanceof DefaultScope) {
+                    ((DefaultScope) container).setLevelDescription(asCollection(value));
+                    return true;
+                }
+                return false;
+            }
+        }.validOrNull();
     }
 
     /**
      * Sets additional information about the range or extent of the resource.
+     * This method stores the values in the {@linkplain #getMaintenanceScopes() maintenance scopes}.
      *
      * @param newValues The new update scope descriptions.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #setMaintenanceScopes(Collection)}.
      */
-    public void setUpdateScopeDescriptions(final Collection<? extends ScopeDescription> newValues) {
-        updateScopeDescriptions = writeCollection(newValues, updateScopeDescriptions, ScopeDescription.class);
+    @Deprecated
+    public final void setUpdateScopeDescriptions(final Collection<? extends ScopeDescription> newValues) {
+        checkWritePermission();
+        ((LegacyPropertyAdapter<ScopeDescription,?>) getUpdateScopeDescriptions()).setValues(newValues);
     }
 
     /**
@@ -290,10 +440,15 @@ public class DefaultMaintenanceInformati
 
     /**
      * Returns identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata.
+     * person(s) and organization(s) with responsibility for maintaining the resource.
+     *
+     * <div class="warning"><b>Upcoming API change — generalization</b><br>
+     * As of ISO 19115:2014, {@code ResponsibleParty} is replaced by the {@link Responsibility} parent interface.
+     * This change may be applied in GeoAPI 4.0.
+     * </div>
      *
      * @return Means of communicating with person(s) and organization(s) with responsibility
-     *         for maintaining the metadata.
+     *         for maintaining the resource.
      */
     @Override
     @XmlElement(name = "contact")
@@ -303,9 +458,15 @@ public class DefaultMaintenanceInformati
 
     /**
      * Sets identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata.
+     * person(s) and organization(s) with responsibility for maintaining the resource.
+     *
+     * <div class="warning"><b>Upcoming API change — generalization</b><br>
+     * As of ISO 19115:2014, {@code ResponsibleParty} is replaced by the {@link Responsibility} parent interface.
+     * This change may be applied in GeoAPI 4.0.
+     * </div>
      *
-     * @param newValues The new contacts
+     * @param newValues The new identification of person(s) and organization(s)
+     *                  with responsibility for maintaining the resource.
      */
     public void setContacts(final Collection<? extends ResponsibleParty> newValues) {
         contacts = writeCollection(newValues, contacts, ResponsibleParty.class);

Copied: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java (from r1625241, sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java)
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java?p2=sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java&p1=sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java&r1=1625241&r2=1626345&rev=1626345&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -21,9 +21,10 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.extent.Extent;
-import org.opengis.metadata.maintenance.Scope;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.maintenance.ScopeDescription;
+import org.apache.sis.internal.metadata.LegacyPropertyAdapter;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
@@ -100,8 +101,12 @@ public class DefaultScope extends ISOMet
         super(object);
         if (object != null) {
             level            = object.getLevel();
-            extents          = copyCollection(object.getExtents(), Extent.class);
             levelDescription = copyCollection(object.getLevelDescription(), ScopeDescription.class);
+            if (object instanceof DefaultScope) {
+                extents = copyCollection(((DefaultScope) object).getExtents(), Extent.class);
+            } else {
+                extents = singleton(object.getExtent(), Extent.class);
+            }
         }
     }
 
@@ -158,7 +163,6 @@ public class DefaultScope extends ISOMet
      *
      * @since 0.5
      */
-    @Override
     @XmlElement(name = "extent")
     public Collection<Extent> getExtents() {
         return extents = nonNullCollection(extents, Extent.class);
@@ -176,6 +180,33 @@ public class DefaultScope extends ISOMet
     }
 
     /**
+     * Information about the spatial, vertical and temporal extent of the data specified by the scope.
+     * This method fetches the value from the {@linkplain #getExtents() extents} collection.
+     *
+     * @return Information about the extent of the data, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #getExtents()}.
+     */
+    @Override
+    @Deprecated
+    public final Extent getExtent() {
+        return LegacyPropertyAdapter.getSingleton(getExtents(), Extent.class, null, DefaultScope.class, "getExtent");
+    }
+
+    /**
+     * Sets information about the spatial, vertical and temporal extent of the data specified by the scope.
+     * This method stores the value in the {@linkplain #setExtents(Collection) extents} collection.
+     *
+     * @param newValue The new extent.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #setExtents(Collection)}.
+     */
+    @Deprecated
+    public final void setExtent(final Extent newValue) {
+        setExtents(LegacyPropertyAdapter.asCollection(newValue));
+    }
+
+    /**
      * Returns detailed descriptions about the level of the data specified by the scope.
      *
      * @return Detailed description about the level of the data.

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScopeDescription.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScopeDescription.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScopeDescription.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScopeDescription.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -44,6 +44,15 @@ import org.opengis.feature.type.FeatureT
  * only one of the properties in this class can be set to a non-empty value.
  * Setting any property to a non-empty value discard all the other ones.
  *
+ * {@section Limitations}
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -31,6 +31,7 @@
  * </tr><tr><td style="width: 50%; white-space: nowrap">
  * {@linkplain org.apache.sis.metadata.iso.ISOMetadata ISO-19115 metadata}<br>
  * {@code  ├─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultMaintenanceInformation Maintenance information}<br>
+ * {@code  ├─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScope Scope}<br>
  * {@code  └─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription Scope description}<br>
  * {@linkplain org.opengis.util.CodeList Code list}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.maintenance.MaintenanceFrequency Maintenance frequency}<br>
@@ -38,12 +39,13 @@
  * </td><td class="sep" style="width: 50%; white-space: nowrap">
  *             {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultMaintenanceInformation Maintenance information}<br>
  * {@code  ├─} {@linkplain org.opengis.metadata.maintenance.MaintenanceFrequency                 Maintenance frequency} «code list»<br>
- * {@code  ├─} {@linkplain org.opengis.metadata.maintenance.ScopeCode                            Scope code} «code list»<br>
- * {@code  └─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription       Scope description}<br>
+ * {@code  └─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScope                  Scope}<br>
+ * {@code      ├─} {@linkplain org.opengis.metadata.maintenance.ScopeCode                        Scope code} «code list»<br>
+ * {@code      └─} {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription   Scope description}<br>
  * </td></tr></table>
  *
  * {@section Null values, nil objects and collections}
- * All constructors (except the <cite>copy constructors</cite>) and setter methods accept {@code null} arguments.
+ * All constructors and setter methods accept {@code null} arguments.
  * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
@@ -71,6 +73,7 @@
 })
 @XmlAccessorType(XmlAccessType.NONE)
 @XmlJavaTypeAdapters({
+    @XmlJavaTypeAdapter(EX_Extent.class),
     @XmlJavaTypeAdapter(CI_ResponsibleParty.class),
     @XmlJavaTypeAdapter(MD_MaintenanceFrequencyCode.class),
     @XmlJavaTypeAdapter(MD_MaintenanceInformation.class),

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -65,7 +65,7 @@
  * will have precedence. The later behavior is compliant with INSPIRE rules.
  *
  * {@section Null values, nil objects and collections}
- * All constructors (except the <cite>copy constructors</cite>) and setter methods accept {@code null} arguments.
+ * All constructors and setter methods accept {@code null} arguments.
  * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
@@ -95,6 +95,7 @@
 @XmlJavaTypeAdapters({
     @XmlJavaTypeAdapter(CI_Citation.class),
     @XmlJavaTypeAdapter(CI_OnlineResource.class),
+    @XmlJavaTypeAdapter(CI_Responsibility.class),
     @XmlJavaTypeAdapter(CI_ResponsibleParty.class),
     @XmlJavaTypeAdapter(DQ_DataQuality.class),
     @XmlJavaTypeAdapter(MD_ApplicationSchemaInformation.class),

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractCompleteness.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractCompleteness.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractCompleteness.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractCompleteness.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -27,6 +27,15 @@ import org.opengis.metadata.quality.Comp
 /**
  * Presence and absence of features, their attributes and their relationships.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)
@@ -70,7 +79,7 @@ public class AbstractCompleteness extend
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link CompletenessCommission} or
+     *   <li>Otherwise if the given object is an instance of {@link CompletenessCommission} or
      *       {@link CompletenessOmission}, then this method delegates to the {@code castOrCopy(…)}
      *       method of the corresponding SIS subclass. Note that if the given object implements
      *       more than one of the above-cited interfaces, then the {@code castOrCopy(…)} method

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -48,6 +48,15 @@ import static org.apache.sis.internal.ja
 /**
  * Type of test applied to the data specified by a data quality scope.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Guilhem Legal (Geomatys)
@@ -329,7 +338,7 @@ public class AbstractElement extends ISO
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link PositionalAccuracy},
+     *   <li>Otherwise if the given object is an instance of {@link PositionalAccuracy},
      *       {@link TemporalAccuracy}, {@link ThematicAccuracy}, {@link LogicalConsistency},
      *       {@link Completeness} or {@link Usability}, then this method delegates to the
      *       {@code castOrCopy(…)} method of the corresponding SIS subclass.

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractLogicalConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractLogicalConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractLogicalConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractLogicalConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -27,8 +27,17 @@ import org.opengis.metadata.quality.Conc
 
 
 /**
- * Degree of adherence to logical rules of data structure, attribution and relationships (data
- * structure can be conceptual, logical or physical).
+ * Degree of adherence to logical rules of data structure, attribution and relationships.
+ * Data structure can be conceptual, logical or physical.
+ *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
@@ -75,7 +84,7 @@ public class AbstractLogicalConsistency 
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link ConceptualConsistency},
+     *   <li>Otherwise if the given object is an instance of {@link ConceptualConsistency},
      *       {@link DomainConsistency}, {@link FormatConsistency} or {@link TopologicalConsistency},
      *       then this method delegates to the {@code castOrCopy(…)} method of the corresponding SIS subclass.
      *       Note that if the given object implements more than one of the above-cited interfaces,

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractPositionalAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractPositionalAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractPositionalAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractPositionalAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -29,6 +29,15 @@ import org.opengis.metadata.quality.Rela
 /**
  * Accuracy of the position of features.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)
@@ -83,7 +92,7 @@ public class AbstractPositionalAccuracy 
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link RelativeInternalPositionalAccuracy},
+     *   <li>Otherwise if the given object is an instance of {@link RelativeInternalPositionalAccuracy},
      *       {@link AbsoluteExternalPositionalAccuracy} or {@link GriddedDataPositionalAccuracy}, then this
      *       method delegates to the {@code castOrCopy(…)} method of the corresponding SIS subclass.
      *       Note that if the given object implements more than one of the above-cited interfaces,

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -29,6 +29,15 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Type of test applied to the data specified by a data quality scope.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)
@@ -73,7 +82,7 @@ public class AbstractResult extends ISOM
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link ConformanceResult},
+     *   <li>Otherwise if the given object is an instance of {@link ConformanceResult},
      *       {@link QuantitativeResult}or {@link CoverageResult}, then this method delegates to
      *       the {@code castOrCopy(…)} method of the corresponding SIS subclass.
      *       Note that if the given object implements more than one of the above-cited interfaces,

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,6 +28,15 @@ import org.opengis.metadata.quality.Accu
 /**
  * Accuracy of the temporal attributes and temporal relationships of features.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)
@@ -72,7 +81,7 @@ public class AbstractTemporalAccuracy ex
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link AccuracyOfATimeMeasurement},
+     *   <li>Otherwise if the given object is an instance of {@link AccuracyOfATimeMeasurement},
      *       {@link TemporalConsistency} or {@link TemporalValidity}, then this method delegates to
      *       the {@code castOrCopy(…)} method of the corresponding SIS subclass.
      *       Note that if the given object implements more than one of the above-cited interfaces,

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractThematicAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractThematicAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractThematicAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractThematicAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -29,6 +29,15 @@ import org.opengis.metadata.quality.Quan
  * Accuracy of quantitative attributes and the correctness of non-quantitative attributes
  * and of the classifications of features and their relationships.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)
@@ -73,7 +82,7 @@ public class AbstractThematicAccuracy ex
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
-     *   <li>Otherwise if the given object is is an instance of {@link QuantitativeAttributeAccuracy},
+     *   <li>Otherwise if the given object is an instance of {@link QuantitativeAttributeAccuracy},
      *       {@link NonQuantitativeAttributeAccuracy} or {@link ThematicClassificationCorrectness},
      *       then this method delegates to the {@code castOrCopy(…)} method of the corresponding
      *       SIS subclass. Note that if the given object implements more than one of the above-cited

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAbsoluteExternalPositionalAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAbsoluteExternalPositionalAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAbsoluteExternalPositionalAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAbsoluteExternalPositionalAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -25,6 +25,15 @@ import org.opengis.metadata.quality.Abso
 /**
  * Closeness of reported coordinate values to values accepted as or being true.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAccuracyOfATimeMeasurement.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAccuracyOfATimeMeasurement.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAccuracyOfATimeMeasurement.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAccuracyOfATimeMeasurement.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Accu
 /**
  * Correctness of the temporal references of an item (reporting of error in time measurement).
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessCommission.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessCommission.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessCommission.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessCommission.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Comp
 /**
  * Excess data present in the dataset, as described by the scope.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessOmission.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessOmission.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessOmission.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessOmission.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Comp
 /**
  * Data absent from the dataset, as described by the scope.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConceptualConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConceptualConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConceptualConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConceptualConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Conc
 /**
  * Adherence to rules of the conceptual schema.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -29,6 +29,15 @@ import org.apache.sis.util.iso.Types;
  * Information about the outcome of evaluating the obtained value (or set of values) against
  * a specified acceptable conformance quality level.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Guilhem Legal (Geomatys)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -31,6 +31,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Result of a data quality measure organising the measured values as a coverage.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.03)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -34,6 +34,15 @@ import org.apache.sis.metadata.iso.ISOMe
  * According ISO 19115, at least one of {@linkplain #getLineage() lineage} and
  * {@linkplain #getReports() reports} shall be provided.
  *
+ * {@section Limitations}
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Doma
 /**
  * Adherence of values to the value domains.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -22,8 +22,16 @@ import org.opengis.metadata.quality.Form
 
 
 /**
- * Degree to which data is stored in accordance with the physical structure of
- * the dataset, as described by the scope.
+ * Degree to which data is stored in accordance with the physical structure of the dataset, as described by the scope.
+ *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Grid
 /**
  * Closeness of gridded data position values to values accepted as or being true.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.NonQ
 /**
  * Accuracy of non-quantitative attributes.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.3

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Quan
 /**
  * Accuracy of quantitative attributes.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -30,6 +30,15 @@ import org.opengis.util.RecordType;
 /**
  * Information about the value (or set of values) obtained from applying a data quality measure.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -25,6 +25,15 @@ import org.opengis.metadata.quality.Rela
  * Closeness of the relative positions of features in the scope to their respective
  * relative positions accepted as or being true.
  *
+ * <p><b>Limitations:</b></p>
+ * <ul>
+ *   <li>Instances of this class are not synchronized for multi-threading.
+ *       Synchronization, if needed, is caller's responsibility.</li>
+ *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
+ *       Serialization support is appropriate for short term storage or RMI between applications running the
+ *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
+ * </ul>
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @since   0.3 (derived from geotk-2.1)



Mime
View raw message