sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1626345 [9/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/quality/DefaultScope.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultScope.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -16,52 +16,39 @@
  */
 package org.apache.sis.metadata.iso.quality;
 
-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.extent.Extent;
+import javax.xml.bind.annotation.XmlTransient;
 import org.opengis.metadata.quality.Scope;
 import org.opengis.metadata.maintenance.ScopeCode;
-import org.opengis.metadata.maintenance.ScopeDescription;
-import org.apache.sis.metadata.iso.ISOMetadata;
 
 
 /**
  * Description of the data specified 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)
- * @version 0.3
+ * @version 0.5
  * @module
+ *
+ * @deprecated As of ISO 19115:2014, {@code DQ_Scope} has been replaced by {@code MD_Scope}.
+ *             The later is defined in the {@link org.apache.sis.metadata.iso.maintenance} package.
  */
-@XmlType(name = "DQ_Scope_Type", propOrder = {
-   "level",
-   "extent",
-   "levelDescription"
-})
-@XmlRootElement(name = "DQ_Scope")
-public class DefaultScope extends ISOMetadata implements Scope {
+@Deprecated
+@XmlTransient
+public class DefaultScope extends org.apache.sis.metadata.iso.maintenance.DefaultScope implements Scope {
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = -1152756005841712646L;
-
-    /**
-     * Hierarchical level of the data specified by the scope.
-     */
-    private ScopeCode level;
-
-    /**
-     * Information about the spatial, vertical and temporal extent of the data specified by the scope.
-     */
-    private Extent extent;
-
-    /**
-     * Detailed description about the level of the data specified by the scope.
-     */
-    private Collection<ScopeDescription> levelDescription;
+    private static final long serialVersionUID = 7517784393752337009L;
 
     /**
      * Constructs an initially empty scope.
@@ -75,7 +62,7 @@ public class DefaultScope extends ISOMet
      * @param level The hierarchical level of the data specified by the scope.
      */
     public DefaultScope(final ScopeCode level) {
-        this.level = level;
+        super(level);
     }
 
     /**
@@ -89,11 +76,6 @@ public class DefaultScope extends ISOMet
      */
     public DefaultScope(final Scope object) {
         super(object);
-        if (object != null) {
-            level            = object.getLevel();
-            extent           = object.getExtent();
-            levelDescription = copyCollection(object.getLevelDescription(), ScopeDescription.class);
-        }
     }
 
     /**
@@ -120,67 +102,4 @@ public class DefaultScope extends ISOMet
         }
         return new DefaultScope(object);
     }
-
-    /**
-     * Returns the hierarchical level of the data specified by the scope.
-     *
-     * @return Hierarchical level of the data, or {@code null}.
-     */
-    @Override
-    @XmlElement(name = "level", required = true)
-    public ScopeCode getLevel() {
-        return level;
-    }
-
-    /**
-     * Sets the hierarchical level of the data specified by the scope.
-     *
-     * @param newValue The new level.
-     */
-    public void setLevel(final ScopeCode newValue) {
-        checkWritePermission();
-        level = newValue;
-    }
-
-    /**
-     * Returns detailed descriptions about the level of the data specified by the scope.
-     *
-     * @return Detailed description about the level of the data.
-     */
-    @Override
-    @XmlElement(name = "levelDescription")
-    public Collection<ScopeDescription> getLevelDescription() {
-        return levelDescription = nonNullCollection(levelDescription, ScopeDescription.class);
-    }
-
-    /**
-     * Sets detailed descriptions about the level of the data specified by the scope.
-     *
-     * @param newValues The new level description.
-     */
-    public void setLevelDescription(final Collection<? extends ScopeDescription> newValues) {
-        levelDescription = writeCollection(newValues, levelDescription, ScopeDescription.class);
-    }
-
-    /**
-     * Information about the spatial, vertical and temporal extent of the data specified by the scope.
-     *
-     * @return Information about the extent of the data, or {@code null}.
-     */
-    @Override
-    @XmlElement(name = "extent")
-    public Extent getExtent() {
-        return extent;
-    }
-
-    /**
-     * Sets information about the spatial, vertical and temporal extent of the data specified
-     * by the scope.
-     *
-     * @param newValue The new extent.
-     */
-    public void setExtent(final Extent newValue) {
-        checkWritePermission();
-        extent = newValue;
-    }
 }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Temp
 /**
  * Correctness of ordered events or sequences, if reported.
  *
+ * <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/DefaultTemporalValidity.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Temp
 /**
  * Validity of data specified by the scope with respect to time.
  *
+ * <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/DefaultThematicClassificationCorrectness.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -24,6 +24,15 @@ import org.opengis.metadata.quality.Them
 /**
  * Comparison of the classes assigned to features or their attributes to a universe of discourse.
  *
+ * <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/DefaultTopologicalConsistency.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -22,8 +22,16 @@ import org.opengis.metadata.quality.Topo
 
 
 /**
- * Correctness of the explicitly encoded topological characteristics of the dataset as
- * described by the scope.
+ * Correctness of the explicitly encoded topological characteristics 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/DefaultUsability.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -25,6 +25,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Degree of adherence of a dataset to a specific set of user requirements.
  *
+ * <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/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -53,16 +53,15 @@
  * {@code  │   │   ├─} {@linkplain org.apache.sis.metadata.iso.quality.DefaultNonQuantitativeAttributeAccuracy   Non quantitative attribute accuracy}<br>
  * {@code  │   │   └─} {@linkplain org.apache.sis.metadata.iso.quality.DefaultThematicClassificationCorrectness  Thematic classification correctness}<br>
  * {@code  │   └─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultUsability                          Usability}<br>
- * {@code  ├─}         {@linkplain org.apache.sis.metadata.iso.quality.AbstractResult                            Result} «abstract»<br>
- * {@code  │   ├─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultConformanceResult                  Conformance result}<br>
- * {@code  │   ├─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultQuantitativeResult                 Quantitative result}<br>
- * {@code  │   └─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultCoverageResult                     Coverage result}<br>
- * {@code  └─}         {@linkplain org.apache.sis.metadata.iso.quality.DefaultScope                              Scope}<br>
+ * {@code  └─}         {@linkplain org.apache.sis.metadata.iso.quality.AbstractResult                            Result} «abstract»<br>
+ * {@code      ├─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultConformanceResult                  Conformance result}<br>
+ * {@code      ├─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultQuantitativeResult                 Quantitative result}<br>
+ * {@code      └─}     {@linkplain org.apache.sis.metadata.iso.quality.DefaultCoverageResult                     Coverage result}<br>
  * {@linkplain org.opengis.util.CodeList Code list}<br>
  * {@code  └─} {@linkplain org.opengis.metadata.quality.EvaluationMethodType Evaluation method type}<br>
  * </td><td class="sep" style="width: 50%; white-space: nowrap">
  *                     {@linkplain org.apache.sis.metadata.iso.quality.DefaultDataQuality                        Data quality}<br>
- * {@code  ├─}         {@linkplain org.apache.sis.metadata.iso.quality.DefaultScope                              Scope}<br>
+ * {@code  ├─}         {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultScope                          Scope}<br>
  * {@code  └─}         {@linkplain org.apache.sis.metadata.iso.quality.AbstractElement                           Element} «abstract»<br>
  * {@code      ├─}     {@linkplain org.opengis.metadata.quality.EvaluationMethodType                             Evaluation method type} «code list»<br>
  * {@code      └─}     {@linkplain org.apache.sis.metadata.iso.quality.AbstractResult                            Result} «abstract»<br>
@@ -93,7 +92,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)}.
@@ -127,12 +126,12 @@
     @XmlJavaTypeAdapter(DQ_Element.class),
     @XmlJavaTypeAdapter(DQ_EvaluationMethodTypeCode.class),
     @XmlJavaTypeAdapter(DQ_Result.class),
-    @XmlJavaTypeAdapter(DQ_Scope.class),
     @XmlJavaTypeAdapter(EX_Extent.class),
     @XmlJavaTypeAdapter(LI_Lineage.class),
     @XmlJavaTypeAdapter(MD_ContentInformation.class),
     @XmlJavaTypeAdapter(MD_Format.class),
     @XmlJavaTypeAdapter(MD_Identifier.class),
+    @XmlJavaTypeAdapter(MD_Scope.class),
     @XmlJavaTypeAdapter(MD_ScopeCode.class),
     @XmlJavaTypeAdapter(MD_ScopeDescription.class),
     @XmlJavaTypeAdapter(MD_SpatialRepresentation.class),

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractGeolocationInformation.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -31,6 +31,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Information used to determine geographic location corresponding to image location.
  *
+ * <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)
@@ -79,7 +88,7 @@ public class AbstractGeolocationInformat
      *
      * <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 GCPCollection}, then this method
+     *   <li>Otherwise if the given object is an instance of {@link GCPCollection}, then this method
      *       delegates to the {@code castOrCopy(…)} method of the corresponding SIS subclass.</li>
      *   <li>Otherwise if the given object is already an instance of
      *       {@code AbstractGeolocationInformation}, then it is returned unchanged.</li>

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/AbstractSpatialRepresentation.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,6 +28,15 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Method used to represent geographic information in the dataset.
  *
+ * <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)
@@ -72,7 +81,7 @@ public class AbstractSpatialRepresentati
      *
      * <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 VectorSpatialRepresentation} or
+     *   <li>Otherwise if the given object is an instance of {@link VectorSpatialRepresentation} or
      *       {@link GridSpatialRepresentation}, 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/spatial/DefaultDimension.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -20,6 +20,7 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.opengis.util.InternationalString;
 import org.opengis.metadata.spatial.Dimension;
 import org.opengis.metadata.spatial.DimensionNameType;
 import org.apache.sis.internal.jaxb.gco.GO_Measure;
@@ -30,17 +31,29 @@ import org.apache.sis.measure.ValueRange
 /**
  * Axis properties.
  *
+ * <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 = "MD_Dimension_Type", propOrder = {
     "dimensionName",
     "dimensionSize",
-    "resolution"
+    "resolution",
+/// "dimensionTitle",
+/// "dimensionDescription"
 })
 @XmlRootElement(name = "MD_Dimension")
 public class DefaultDimension extends ISOMetadata implements Dimension {
@@ -65,6 +78,18 @@ public class DefaultDimension extends IS
     private Double resolution;
 
     /**
+     * Enhancement/ modifier of the dimension name.
+     * Example: dimensionName = "column",
+     *          dimensionTitle = "longitude"
+     */
+    private InternationalString dimensionTitle;
+
+    /**
+     * Description of the axis.
+     */
+    private InternationalString dimensionDescription;
+
+    /**
      * Constructs an initially empty dimension.
      */
     public DefaultDimension() {
@@ -93,9 +118,13 @@ public class DefaultDimension extends IS
     public DefaultDimension(final Dimension object) {
         super(object);
         if (object != null) {
-            dimensionName = object.getDimensionName();
-            dimensionSize = object.getDimensionSize();
-            resolution    = object.getResolution();
+            dimensionName        = object.getDimensionName();
+            dimensionSize        = object.getDimensionSize();
+            resolution           = object.getResolution();
+            if (object instanceof DefaultDimension) {
+                dimensionTitle       = ((DefaultDimension) object).getDimensionTitle();
+                dimensionDescription = ((DefaultDimension) object).getDimensionDescription();
+            }
         }
     }
 
@@ -189,4 +218,55 @@ public class DefaultDimension extends IS
         checkWritePermission();
         resolution = newValue;
     }
+
+    /**
+     * Returns the enhancement/ modifier of the dimension name.
+     *
+     * <div class="note"><b>Example:</b>
+     * dimensionName = "column", dimensionTitle = "longitude"</div>
+     *
+     * @return The enhancement/ modifier of the dimension name.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "dimensionTitle")
+    public InternationalString getDimensionTitle() {
+        return dimensionTitle;
+    }
+
+    /**
+     * Sets the enhancement/ modifier of the dimension name.
+     *
+     * @param newValue The new enhancement/ modifier of the dimension name.
+     *
+     * @since 0.5
+     */
+    public void setDimensionTitle(final InternationalString newValue) {
+        checkWritePermission();
+        dimensionTitle = newValue;
+    }
+
+    /**
+     * Return the axis dimension description.
+     *
+     * @return The axis dimension description.
+     *
+     * @since 0.5
+     */
+/// @XmlElement(name = "dimensionDescription")
+    public InternationalString getDimensionDescription() {
+        return dimensionDescription;
+    }
+
+    /**
+     * Sets the axis dimension description.
+     *
+     * @param newValue The new axis dimension description.
+     *
+     * @since 0.5
+     */
+    public void setDimensionDescription(final InternationalString newValue) {
+        checkWritePermission();
+        dimensionDescription = newValue;
+    }
 }

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -30,6 +30,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Information on ground control point.
  *
+ * <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/spatial/DefaultGCPCollection.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -30,6 +30,15 @@ import org.apache.sis.xml.Namespaces;
 /**
  * Information about a control point collection.
  *
+ * <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/spatial/DefaultGeometricObjects.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,6 +28,15 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Number of objects, listed by geometric object type, used in the dataset.
  *
+ * <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)
@@ -141,7 +150,7 @@ public class DefaultGeometricObjects ext
      * @return Total number of the point or vector object type, or {@code null}.
      */
     @Override
-    @ValueRange(minimum=0)
+    @ValueRange(minimum = 1)
     @XmlElement(name = "geometricObjectCount")
     public Integer getGeometricObjectCount() {
         return geometricObjectCount;

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -42,6 +42,15 @@ import org.apache.sis.xml.Namespaces;
  * {@linkplain #isCheckPointAvailable() check point availability} is {@code true}. The setter
  * methods will ensure that this condition is not violated.
  *
+ * {@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)
@@ -242,9 +251,7 @@ public class DefaultGeorectified extends
 
     /**
      * Returns the Earth location in the coordinate system defined by the Spatial Reference System
-     * and the grid coordinate of the cells at opposite ends of grid coverage along two
-     * diagonals in the grid spatial dimensions. There are four corner points in a
-     * georectified grid; at least two corner points along one diagonal are required.
+     * and the grid coordinate of the cells at opposite ends of grid coverage along two diagonals.
      *
      * @return The corner points.
      */
@@ -257,6 +264,12 @@ public class DefaultGeorectified extends
     /**
      * Sets the corner points.
      *
+     * The {@linkplain List#size() list size} should be 2 or 4.
+     * The list should contain at least two corner points along one diagonal.
+     * or may contains the 4 corner points of the georectified grid.
+     *
+     * <p>The first corner point shall correspond to the origin of the grid.</p>
+     *
      * @param newValues The new corner points.
      */
     public void setCornerPoints(final List<? extends Point> newValues) {
@@ -308,9 +321,9 @@ public class DefaultGeorectified extends
     }
 
     /**
-     * Returns a description of the information about which grid dimensions are the spatial dimensions.
+     * Returns a general description of the transformation.
      *
-     * @return Description of the information about grid dimensions, or {@code null}.
+     * @return General description of the transformation, or {@code null}.
      */
     @Override
     @XmlElement(name = "transformationDimensionDescription")
@@ -319,9 +332,9 @@ public class DefaultGeorectified extends
     }
 
     /**
-     * Sets the description of the information about which grid dimensions are the spatial dimensions.
+     * Sets a general description of the transformation.
      *
-     * @param newValue The new transformation dimension description.
+     * @param newValue The new general description.
      */
     public void setTransformationDimensionDescription(final InternationalString newValue) {
         checkWritePermission();
@@ -341,6 +354,7 @@ public class DefaultGeorectified extends
 
     /**
      * Sets information about which grid dimensions are the spatial dimensions.
+     * The given list should contain at most 2 elements.
      *
      * @param newValues The new transformation mapping.
      */

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -34,6 +34,15 @@ import org.apache.sis.xml.Namespaces;
  * Individual cells can be geolocated using geolocation information supplied with the data but cannot be
  * geolocated from the grid properties alone.
  *
+ * <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)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -32,6 +32,15 @@ import org.apache.sis.measure.ValueRange
 /**
  * Basic information required to uniquely identify a resource or resources.
  *
+ * <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)
@@ -126,7 +135,7 @@ public class DefaultGridSpatialRepresent
      *
      * <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 Georectified} or
+     *   <li>Otherwise if the given object is an instance of {@link Georectified} or
      *       {@link Georeferenceable}, 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/spatial/DefaultVectorSpatialRepresentation.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultVectorSpatialRepresentation.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,6 +28,15 @@ import org.opengis.metadata.spatial.Vect
 /**
  * Information about the vector spatial objects in the dataset.
  *
+ * <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)

Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -67,7 +67,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)}.

Added: sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties?rev=1626345&view=auto
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties (added)
+++ sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties [ISO-8859-1] Fri Sep 19 21:46:39 2014
@@ -0,0 +1,39 @@
+#
+# Methods added or deprecated by the API upgrade from ISO 19115:2003 to 19115:2014.
+# Those changes are not present in GeoAPI 3.0.0, so we apply them as a patch on top
+# of the GeoAPI interfaces.
+#
+org.opengis.metadata.citation.Citation=-getCollectiveTitle +getOnlineResources:onlineResource +getGraphics:graphic
+org.opengis.metadata.citation.Contact=-getPhone -getOnlineResource -getAddress +getAddresses:address +getPhones:phone +getContactType:contactType +getOnlineResources:onlineResource
+org.opengis.metadata.citation.OnlineResource=+getProtocolRequest:protocolRequest
+org.opengis.metadata.citation.ResponsibleParty=-getPositionName -getContactInfo -getOrganisationName -getIndividualName +getParties:party +getExtents:extent
+org.opengis.metadata.citation.Telephone=-getVoices -getFacsimiles +getNumberType:numberType +getNumber:number
+org.opengis.metadata.constraint.Constraints=+getGraphics:graphic +getConstraintApplicationScope:constraintApplicationScope +getReferences:reference +getReleasability:releasability +getResponsibleParties:responsibleParty
+org.opengis.metadata.constraint.LegalConstraints=+getGraphics:graphic +getConstraintApplicationScope:constraintApplicationScope +getReferences:reference +getReleasability:releasability +getResponsibleParties:responsibleParty
+org.opengis.metadata.constraint.SecurityConstraints=+getGraphics:graphic +getConstraintApplicationScope:constraintApplicationScope +getReferences:reference +getReleasability:releasability +getResponsibleParties:responsibleParty
+org.opengis.metadata.content.Band=-getDescriptor +getBoundMin:boundMin +getBoundUnits:boundUnits +getBoundMax:boundMax +getMeanValue:meanValue +getNumberOfValues:numberOfValues +getStandardDeviation:standardDeviation +getOtherPropertyType:otherPropertyType +getOtherProperty:otherProperty +getDescription:description +getNames:name
+org.opengis.metadata.content.CoverageDescription=-getDimensions -getContentType +getProcessingLevelCode:processingLevelCode +getAttributeGroups:attributeGroup
+org.opengis.metadata.content.FeatureCatalogueDescription=-getFeatureTypes +getFeatureTypeInfo:featureTypes
+org.opengis.metadata.content.ImageDescription=-getDimensions -getContentType +getAttributeGroups:attributeGroup
+org.opengis.metadata.content.RangeDimension=-getDescriptor +getDescription:description +getNames:name
+org.opengis.metadata.distribution.DigitalTransferOptions=-getOffLine +getOffLines:offLine +getTransferFrequency:transferFrequency +getDistributionFormats:distributionFormat
+org.opengis.metadata.distribution.Distribution=+getDescription:description
+org.opengis.metadata.distribution.Format=-getName -getSpecification -getVersion +getMedia:medium +getFormatSpecificationCitation:formatSpecificationCitation
+org.opengis.metadata.distribution.Medium=-getDensities +getDensity:density +getIdentifier:identifier
+org.opengis.metadata.distribution.StandardOrderProcess=+getOrderOptionType:orderOptionType +getOrderOptions:orderOptions
+org.opengis.metadata.ExtendedElementInformation=-getShortName -getDomainCode -getRationales +getRationale:rationale
+org.opengis.metadata.extent.SpatialTemporalExtent=+getVerticalExtent:verticalExtent
+org.opengis.metadata.identification.AggregateInformation=-getAggregateDataSetIdentifier -getAggregateDataSetName +getName:name +getMetadataReference:metadataReference
+org.opengis.metadata.identification.BrowseGraphic=+getImageConstraints:imageContraints +getLinkages:linkage
+org.opengis.metadata.identification.DataIdentification=-getAggregationInfo +getTemporalResolutions:temporalResolution +getAdditionalDocumentations:additionalDocumentation +getProcessingLevel:processingLevel +getAssociatedResources:associatedResource
+org.opengis.metadata.identification.Identification=-getAggregationInfo +getSpatialRepresentationTypes:spatialRepresentationType +getSpatialResolutions:spatialResolution +getTemporalResolutions:temporalResolution +getTopicCategories:topicCategory +getAdditionalDocumentations:additionalDocumentation +getProcessingLevel:processingLevel +getAssociatedResources:associatedResource +getExtents:extent
+org.opengis.metadata.identification.Keywords=+getKeywordClass:keywordClass
+org.opengis.metadata.identification.Resolution=+getVertical:vertical +getAngularDistance:angularDistance +getLevelOfDetail:levelOfDetail
+org.opengis.metadata.identification.ServiceIdentification=-getAggregationInfo +getServiceTypeVersions:serviceTypeVersion +getServiceType:serviceType +getAccessProperties:accessProperties +getCouplingType:couplingType +getCoupledResources:coupledResource +getOperatedDatasets:operatedDataset +getProfiles:profile +getServiceStandards:serviceStandard +getContainsOperations:containsOperations +getOperatesOn:operatesOn +getContainsChain:containsChain +getSpatialRepresentationTypes:spatialRepresentationType +getSpatialResolutions:spatialResolution +getTemporalResolutions:temporalResolution +getTopicCategories:topicCategory +getAdditionalDocumentations:additionalDocumentation +getProcessingLevel:processingLevel +getAssociatedResources:associatedResource +getExtents:extent
+org.opengis.metadata.identification.Usage=+getResponses:response +getAdditionalDocumentation:additionalDocumentation +getIdentifiedIssues:identifiedIssues
+org.opengis.metadata.lineage.Lineage=+getAdditionalDocumentation:additionalDocumentation +getScope:scope
+org.opengis.metadata.lineage.ProcessStep=+getReferences:reference +getScope:scope
+org.opengis.metadata.lineage.Source=-getScaleDenominator -getSourceExtents +getSourceSpatialResolution:sourceSpatialResolution +getSourceMetadata:sourceMetadata +getScope:scope
+org.opengis.metadata.maintenance.MaintenanceInformation=-getDateOfNextUpdate -getUpdateScopes -getUpdateScopeDescriptions +getMaintenanceDates:maintenanceDate +getMaintenanceScopes:maintenanceScope
+org.opengis.metadata.quality.Scope=-getExtent +getExtents:extent
+org.opengis.metadata.spatial.Dimension=+getDimensionTitle:dimensionTitle +getDimensionDescription:dimensionDescription

Propchange: sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/trunk/core/sis-metadata/src/main/resources/org/apache/sis/metadata/api-changes.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=ISO-8859-1

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java?rev=1626345&r1=1625241&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameterTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -18,7 +18,6 @@ package org.apache.sis.internal.jaxb.met
 
 import javax.xml.bind.JAXBException;
 import org.opengis.util.MemberName;
-import org.opengis.parameter.ParameterDirection;
 import org.apache.sis.util.iso.Names;
 import org.apache.sis.xml.Namespaces;
 import org.apache.sis.test.XMLTestCase;
@@ -47,7 +46,6 @@ public final strictfp class ServiceParam
         param.memberName    = paramName;
         param.optionality   = true;
         param.repeatability = false;
-        param.direction     = ParameterDirection.IN;
         return param;
     }
 

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/InformationMapTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/InformationMapTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/InformationMapTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/InformationMapTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -40,7 +40,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.05)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn({PropertyAccessorTest.class, PropertyInformationTest.class})
@@ -87,7 +87,7 @@ public final strictfp class InformationM
                 descriptions.get("cloudCoverPercentage").getDefinition().toString(Locale.ENGLISH));
 
         assertEquals("Testing a property inherited from the CoverageDescription parent.",
-                "Type of information represented by the cell value.",
-                descriptions.get("contentType").getDefinition().toString(Locale.ENGLISH));
+                "Description of the attribute described by the measurement value.",
+                descriptions.get("attributeDescription").getDefinition().toString(Locale.ENGLISH));
     }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -45,7 +45,7 @@ import static org.opengis.test.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.4)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(PropertyAccessorTest.class)
@@ -79,9 +79,9 @@ public abstract strictfp class MetadataT
     @Override
     protected <T> Class<? extends T> getImplementation(final Class<T> type) {
         assertTrue(standard.isMetadata(type));
-        final Class<?> impl = standard.getImplementation(type);
+        final Class<? extends T> impl = standard.getImplementation(type);
         assertNotNull(type.getName(), impl);
-        return impl.asSubclass(type);
+        return impl;
     }
 
     /**
@@ -128,7 +128,7 @@ public abstract strictfp class MetadataT
             return new Date(random.nextInt() * 1000L);
         }
         if (CodeList.class.isAssignableFrom(type)) try {
-            final CodeList[] codes = (CodeList[]) type.getMethod("values", (Class[]) null).invoke(null, (Object[]) null);
+            final CodeList<?>[] codes = (CodeList<?>[]) type.getMethod("values", (Class[]) null).invoke(null, (Object[]) null);
             return codes[random.nextInt(codes.length)];
         } catch (Exception e) { // (ReflectiveOperationException) on JDK7 branch.
             fail(e.toString());
@@ -185,7 +185,7 @@ public abstract strictfp class MetadataT
                 final Class<?> impl = getImplementation(type);
                 if (impl != null) {
                     assertTrue(type.isAssignableFrom(impl));
-                    testPropertyValues(new PropertyAccessor(standard.getCitation(), type, impl));
+                    testPropertyValues(new PropertyAccessor(standard.getCitation(), type, impl, false));
                 }
             }
         }
@@ -218,6 +218,9 @@ public abstract strictfp class MetadataT
         final int count = accessor.count();
         for (int i=0; i<count; i++) {
             testingMethod = accessor.name(i, KeyNamePolicy.METHOD_NAME);
+            if (skipTest(accessor.implementation, testingMethod)) {
+                continue;
+            }
             final String property = accessor.name(i, KeyNamePolicy.JAVABEANS_PROPERTY);
             assertNotNull("Missing method name.", testingMethod);
             assertNotNull("Missing property name.", property);
@@ -228,6 +231,8 @@ public abstract strictfp class MetadataT
              */
             final Class<?> propertyType = Numbers.primitiveToWrapper(accessor.type(i, TypeValuePolicy.PROPERTY_TYPE));
             final Class<?>  elementType = Numbers.primitiveToWrapper(accessor.type(i, TypeValuePolicy.ELEMENT_TYPE));
+            assertNotNull(testingMethod, propertyType);
+            assertNotNull(testingMethod, elementType);
             final boolean isCollection = Collection.class.isAssignableFrom(propertyType);
             assertFalse("Element type can not be Collection.", Collection.class.isAssignableFrom(elementType));
             assertEquals("Property and element types shall be the same if and only if not a collection.",
@@ -253,7 +258,9 @@ public abstract strictfp class MetadataT
              * Try to write a value.
              */
             final boolean isWritable = isWritable(accessor.implementation, property);
-            assertEquals("isWritable", isWritable, accessor.isWritable(i));
+            if (isWritable != accessor.isWritable(i)) {
+                fail("Non writable property: " + accessor + '.' + property);
+            }
             if (isWritable) {
                 final Object newValue = valueFor(property, elementType);
                 final Object oldValue = accessor.set(i, instance, newValue, PropertyAccessor.RETURN_PREVIOUS);
@@ -273,4 +280,25 @@ public abstract strictfp class MetadataT
             }
         }
     }
+
+    /**
+     * Returns {@code true} if test for the given property should be skipped.
+     * Reasons for skipping a test are:
+     *
+     * <ul>
+     *   <li>Class which is a union (those classes behave differently than non-union classes).</li>
+     *   <li>Method which is the delegate of many legacy ISO 19115:2003 methods.
+     *       Having a property that can be modified by many other properties confuse the tests.</li>
+     * </ul>
+     */
+    @SuppressWarnings("deprecation")
+    private static boolean skipTest(final Class<?> implementation, final String method) {
+        return implementation == org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription.class ||
+              (implementation == org.apache.sis.metadata.iso.citation.DefaultContact.class &&
+               method.equals("getPhone")) || // Deprecated method replaced by 'getPhones()'.
+              (implementation == org.apache.sis.metadata.iso.lineage.DefaultSource.class &&
+               method.equals("getScaleDenominator")) || // Deprecated method replaced by 'getSourceSpatialResolution()'.
+              (implementation == org.apache.sis.metadata.iso.citation.DefaultResponsibleParty.class &&
+               method.equals("getParties"));
+    }
 }

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -33,6 +33,8 @@ import org.opengis.metadata.citation.Pre
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.distribution.Format;
 import org.opengis.metadata.constraint.Constraints;
+import org.opengis.metadata.content.CoverageContentType;
+import org.opengis.metadata.content.CoverageDescription;
 import org.opengis.metadata.identification.*; // Really using almost everything.
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.spatial.SpatialRepresentationType;
@@ -50,6 +52,8 @@ import org.apache.sis.util.ComparisonMod
 import org.apache.sis.util.iso.SimpleInternationalString;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.iso.citation.HardCodedCitations;
+import org.apache.sis.metadata.iso.content.DefaultAttributeGroup;
+import org.apache.sis.metadata.iso.content.DefaultCoverageDescription;
 import org.apache.sis.metadata.iso.identification.DefaultDataIdentification;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
@@ -76,7 +80,7 @@ import static org.apache.sis.metadata.Pr
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.4)
- * @version 0.4
+ * @version 0.5
  * @module
  */
 @DependsOn(PropertyInformationTest.class)
@@ -85,7 +89,7 @@ public final strictfp class PropertyAcce
      * Creates a new property accessor for the {@link DefaultCitation} class.
      */
     private static PropertyAccessor createPropertyAccessor() {
-        return new PropertyAccessor(HardCodedCitations.ISO_19115, Citation.class, DefaultCitation.class);
+        return new PropertyAccessor(HardCodedCitations.ISO_19115, Citation.class, DefaultCitation.class, false);
     }
 
     /**
@@ -183,11 +187,15 @@ public final strictfp class PropertyAcce
      * Tests the constructor with the {@link DefaultDataIdentification} implementation.
      * The purpose of this test is to ensure that the properties defined in the parent
      * class are sorted first.
+     *
+     * <div class="note"><b>Note:</b> if there is any element not declared as JAXB elements,
+     * those ones will be last in alphabetical order. Such situation is usually temporary
+     * until the JAXB annotations are completed.</div>
      */
     @Test
     @DependsOnMethod("testConstructor")
     public void testConstructorWithInheritance() {
-        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO_19115, DataIdentification.class, DefaultDataIdentification.class),
+        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO_19115, DataIdentification.class, DefaultDataIdentification.class, false),
         //……Declaring type………………………Method………………………………………………………………………JavaBeans………………………………………………………UML identifier………………………………………Sentence……………………………………………………………Type………………………………………………………………
             Identification.class, "getCitation",                   "citation",                   "citation",                  "Citation",                     Citation.class,
             Identification.class, "getAbstract",                   "abstract",                   "abstract",                  "Abstract",                     InternationalString.class,
@@ -223,7 +231,7 @@ public final strictfp class PropertyAcce
     @DependsOnMethod("testConstructorWithInheritance")
     public void testConstructorWithCovariantReturnType() {
         final Class<?> type = GeographicCRS.class;
-        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO, type, type),
+        assertMappingEquals(new PropertyAccessor(HardCodedCitations.ISO, type, type, false),
         //……Declaring type……………………………Method……………………………………………JavaBeans……………………………UML identifier………………Sentence…………………………………Type…………………………………………………………
             GeographicCRS.class,    "getCoordinateSystem", "coordinateSystem", "coordinateSystem", "Coordinate system",  EllipsoidalCS.class,       // Covariant return type
             GeodeticCRS.class,      "getDatum",            "datum",            "datum",            "Datum",              GeodeticDatum.class,       // Covariant return type
@@ -346,6 +354,41 @@ public final strictfp class PropertyAcce
     }
 
     /**
+     * Tests setting a deprecated properties. This properties should not be visible in the map,
+     * but still be accepted by the map views.
+     */
+    @Test
+    @DependsOnMethod("testSet")
+    @org.junit.Ignore("Pending completion of ISO 19115:2014 upgrade.")
+    public void testSetDeprecated() {
+        final PropertyAccessor accessor = new PropertyAccessor(HardCodedCitations.ISO_19115,
+                CoverageDescription.class, DefaultCoverageDescription.class, false);
+        final int indexOfDeprecated  = accessor.indexOf("contentType", true);
+        final int indexOfReplacement = accessor.indexOf("attributeGroup", true);
+        assertTrue("Deprecated elements shall be sorted after non-deprecated ones.",
+                indexOfDeprecated > indexOfReplacement);
+        /*
+         * Writes a value using the deprecated property.
+         */
+        final DefaultCoverageDescription instance = new DefaultCoverageDescription();
+        assertNull("Shall be initially empty.", accessor.set(indexOfDeprecated, instance,
+                CoverageContentType.IMAGE, PropertyAccessor.RETURN_PREVIOUS));
+        assertEquals(CoverageContentType.IMAGE, accessor.get(indexOfDeprecated, instance));
+        /*
+         * Compares with the non-deprecated property.
+         */
+        final Collection<DefaultAttributeGroup> groups = instance.getAttributeGroups();
+        assertSame(groups, accessor.get(indexOfReplacement, instance));
+        assertEquals(CoverageContentType.IMAGE, getSingleton(getSingleton(groups).getContentTypes()));
+        /*
+         * While we can read/write the value through two properties,
+         * only one should be visible.
+         */
+        assertEquals("Deprecated property shall not be visible.", 1, accessor.count(
+                instance, ValueExistencePolicy.NON_EMPTY, PropertyAccessor.COUNT_SHALLOW));
+    }
+
+    /**
      * Tests the {@link PropertyAccessor#set(int, Object, Object, int)} method
      * with a value that will need to be converted. The conversion will be from
      * {@link String} to {@link InternationalString}. The created metadata object is:

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -28,7 +28,9 @@ import org.apache.sis.metadata.iso.citat
 import org.apache.sis.metadata.iso.citation.DefaultContact;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
-import org.apache.sis.util.iso.SimpleInternationalString;
+import org.apache.sis.metadata.iso.citation.DefaultOrganisation;
+import org.apache.sis.metadata.iso.citation.DefaultIndividual;
+import org.apache.sis.metadata.iso.citation.AbstractParty;
 import org.apache.sis.util.collection.TableColumn;
 import org.apache.sis.util.collection.TreeTable;
 import org.apache.sis.test.DependsOnMethod;
@@ -37,6 +39,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
+import static java.util.Collections.singleton;
 
 
 /**
@@ -45,7 +48,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(TreeNodeChildrenTest.class)
@@ -56,39 +59,42 @@ public final strictfp class TreeNodeTest
      *
      * {@preformat text
      *   Citation
-     *     ├─Title…………………………………………………………………………………… Some title
-     *     ├─Alternate title (1 of 2)………………………………… First alternate title
-     *     ├─Alternate title (2 of 2)………………………………… Second alternate title
-     *     ├─Edition……………………………………………………………………………… Some edition
+     *     ├─Title…………………………………………………………………………………………… Some title
+     *     ├─Alternate title (1 of 2)………………………………………… First alternate title
+     *     ├─Alternate title (2 of 2)………………………………………… Second alternate title
+     *     ├─Edition……………………………………………………………………………………… Some edition
      *     ├─Cited responsible party (1 of 2)
-     *     │   ├─Organisation name………………………………………… Some organisation
-     *     │   └─Role…………………………………………………………………………… Distributor
+     *     │   └─Party (Organisation)
+     *     │      ├─Name…………………………………………………………………………… Some organisation
+     *     │      └─Role…………………………………………………………………………… Distributor
      *     ├─Cited responsible party (2 of 2)
-     *     │   ├─Individual name……………………………………………… Some person of contact
-     *     │   ├─Contact info
-     *     │   │   └─Address
-     *     │   │       └─Electronic mail address…… Some email
-     *     │   └─Role…………………………………………………………………………… Point of contact
-     *     ├─Presentation form (1 of 2)…………………………… Map digital
-     *     ├─Presentation form (2 of 2)…………………………… map hardcopy
-     *     └─Other citation details……………………………………… Some other details
+     *     │   └─Party (Individual)
+     *     │      ├─Name…………………………………………………………………………… Some person of contact
+     *     │      ├─Contact info
+     *     │      │   └─Address
+     *     │      │       └─Electronic mail address…… Some email
+     *     │      └─Role…………………………………………………………………………… Point of contact
+     *     ├─Presentation form (1 of 2)…………………………………… Map digital
+     *     ├─Presentation form (2 of 2)…………………………………… map hardcopy
+     *     └─Other citation details……………………………………………… Some other details
      * }
      */
     static DefaultCitation metadataWithHierarchy() {
         final DefaultCitation citation = TreeNodeChildrenTest.metadataWithMultiOccurrences();
-        DefaultResponsibleParty party = new DefaultResponsibleParty(Role.DISTRIBUTOR);
-        party.setOrganisationName(new SimpleInternationalString("Some organisation"));
-        citation.getCitedResponsibleParties().add(party);
+        AbstractParty party = new DefaultOrganisation("Some organisation", null, null, null);
+        DefaultResponsibleParty responsibility = new DefaultResponsibleParty(Role.DISTRIBUTOR);
+        responsibility.setParties(singleton(party));
+        citation.getCitedResponsibleParties().add(responsibility);
 
         // Add a second responsible party with deeper hierarchy.
-        party = new DefaultResponsibleParty(Role.POINT_OF_CONTACT);
-        party.setIndividualName("Some person of contact");
         final DefaultContact contact = new DefaultContact();
         final DefaultAddress address = new DefaultAddress();
         address.getElectronicMailAddresses().add("Some email");
-        contact.setAddress(address);
-        party.setContactInfo(contact);
-        citation.getCitedResponsibleParties().add(party);
+        contact.getAddresses().add(address);
+        party = new DefaultIndividual("Some person of contact", null, contact);
+        responsibility = new DefaultResponsibleParty(Role.POINT_OF_CONTACT);
+        responsibility.setParties(singleton(party));
+        citation.getCitedResponsibleParties().add(responsibility);
         return citation;
     }
 

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -17,7 +17,6 @@
 package org.apache.sis.metadata;
 
 import java.util.Arrays;
-import java.util.Collections;
 import javax.measure.unit.SI;
 import org.opengis.metadata.citation.Role;
 import org.opengis.metadata.citation.PresentationForm;
@@ -29,7 +28,9 @@ import org.apache.sis.util.iso.SimpleInt
 import org.apache.sis.metadata.iso.content.DefaultBand;
 import org.apache.sis.metadata.iso.content.DefaultImageDescription;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
+import org.apache.sis.metadata.iso.citation.DefaultIndividual;
 import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
+import org.apache.sis.metadata.iso.content.DefaultAttributeGroup;
 import org.apache.sis.metadata.iso.identification.DefaultKeywords;
 import org.apache.sis.metadata.iso.identification.DefaultDataIdentification;
 import org.apache.sis.metadata.iso.lineage.DefaultProcessing;
@@ -38,6 +39,7 @@ import org.apache.sis.test.TestCase;
 import org.junit.Test;
 
 import static org.apache.sis.test.Assert.*;
+import static java.util.Collections.singleton;
 
 
 /**
@@ -45,7 +47,7 @@ import static org.apache.sis.test.Assert
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(TreeTableViewTest.class)
@@ -87,12 +89,11 @@ public final strictfp class TreeTableFor
         citation.getAlternateTitles().add(new SimpleInternationalString("Alt A"));
         citation.getAlternateTitles().add(new SimpleInternationalString("Alt B"));
 
-        final DefaultResponsibleParty author = new DefaultResponsibleParty();
-        author.setIndividualName("Testsuya Toyoda");
-        author.setRole(Role.AUTHOR);
+        final DefaultResponsibleParty author = new DefaultResponsibleParty(Role.AUTHOR);
+        author.setParties(singleton(new DefaultIndividual("Testsuya Toyoda", null, null)));
         citation.getCitedResponsibleParties().add(author);
         final DefaultResponsibleParty duplicated = new DefaultResponsibleParty();
-        duplicated.setIndividualName("A japanese author");
+        duplicated.setParties(singleton(new DefaultIndividual("A japanese author", null, null)));
         citation.getCitedResponsibleParties().add(duplicated);
         return citation;
     }
@@ -157,8 +158,10 @@ public final strictfp class TreeTableFor
     @Test
     public void testImageDescription() {
         final DefaultImageDescription image = new DefaultImageDescription();
-        image.getDimensions().add(createBand(0.25, 0.26));
-        image.getDimensions().add(createBand(0.28, 0.29));
+        image.setAttributeGroups(Arrays.asList(
+            new DefaultAttributeGroup(null, createBand(0.25, 0.26)),
+            new DefaultAttributeGroup(null, createBand(0.28, 0.29))
+        ));
         final String text = format.format(image.asTreeTable());
         assertMultilinesEquals(
             "Image description\n" +
@@ -186,7 +189,7 @@ public final strictfp class TreeTableFor
                 new SimpleInternationalString("Kiwi")));
 
         final DefaultDataIdentification identification = new DefaultDataIdentification();
-        identification.setDescriptiveKeywords(Collections.singleton(keywords));
+        identification.setDescriptiveKeywords(singleton(keywords));
         identification.setTopicCategories(Arrays.asList(
                 TopicCategory.HEALTH,
                 TopicCategory.valueOf("OCEANS"), // Existing category

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -23,6 +23,7 @@ import org.opengis.metadata.Identifier;
 import org.apache.sis.xml.NilReason;
 import org.apache.sis.util.iso.SimpleInternationalString;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
+import org.apache.sis.metadata.iso.citation.DefaultIndividual;
 import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
@@ -91,7 +92,7 @@ public final strictfp class ValueMapTest
         title    = new SimpleInternationalString("Undercurrent");
         author   = new DefaultResponsibleParty();
         citation = new DefaultCitation(title);
-        author.setIndividualName("Testsuya Toyoda");
+        author.setParties(singleton(new DefaultIndividual("Testsuya Toyoda", null, null)));
         citation.getCitedResponsibleParties().add(author);
         citation.setISBN("9782505004509");
         citation.setEdition(NilReason.UNKNOWN.createNilObject(InternationalString.class));

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -22,7 +22,11 @@ import org.opengis.annotation.UML;
 import org.opengis.annotation.Specification;
 import org.apache.sis.metadata.MetadataStandard;
 import org.apache.sis.metadata.MetadataTestCase;
+import org.apache.sis.metadata.iso.identification.DefaultCoupledResource;
+import org.apache.sis.metadata.iso.identification.DefaultOperationChainMetadata;
+import org.apache.sis.metadata.iso.identification.DefaultOperationMetadata;
 import org.apache.sis.metadata.iso.identification.DefaultRepresentativeFraction;
+import org.apache.sis.metadata.iso.identification.DefaultServiceIdentification;
 import org.apache.sis.test.DependsOn;
 import org.apache.sis.xml.Namespaces;
 import org.junit.Rule;
@@ -152,7 +156,7 @@ public final strictfp class AllMetadataT
             org.opengis.metadata.maintenance.MaintenanceFrequency.class,
             org.opengis.metadata.maintenance.MaintenanceInformation.class,
             org.opengis.metadata.maintenance.ScopeCode.class,
-//          org.opengis.metadata.maintenance.ScopeDescription.class,  // Excluded because this is an union.
+            org.opengis.metadata.maintenance.ScopeDescription.class,
             org.opengis.metadata.quality.AbsoluteExternalPositionalAccuracy.class,
             org.opengis.metadata.quality.AccuracyOfATimeMeasurement.class,
             org.opengis.metadata.quality.Completeness.class,
@@ -206,11 +210,44 @@ public final strictfp class AllMetadataT
     @Test
     @Override
     public void testPropertyValues() {
-        listener.maximumLogCount = 3;
+        listener.maximumLogCount = 4;
         super.testPropertyValues();
     }
 
     /**
+     * Returns the name of the XML element for the given UML element.
+     * This method checks for the special cases which are known to have different UML and XML names.
+     *
+     * @return {@inheritDoc}
+     */
+    @Override
+    protected String getExpectedXmlElementName(final UML uml) {
+        String name = uml.identifier();
+        if (name.equals("distributedComputingPlatform")) {
+            name = "DCP";
+        }
+        if (name.equals("stepDateTime")) {
+            name = "dateTime";
+        }
+        return name;
+    }
+
+    /**
+     * Returns the name of the XML element for the given UML element.
+     * This method checks for the special cases which are known to have different UML and XML names.
+     *
+     * @return {@inheritDoc}
+     */
+    @Override
+    protected String getExpectedXmlRootElementName(final UML uml) {
+        String name = uml.identifier();
+        if (name.equals("MD_Scope")) {  // ISO 19115:2014
+            name = "DQ_Scope";          // ISO 19115:2003
+        }
+        return name;
+    }
+
+    /**
      * Returns the expected namespace for an element defined by the given specification.
      * For example the namespace of any type defined by {@link Specification#ISO_19115}
      * is {@code "http://www.isotc211.org/2005/gmd"}.
@@ -219,7 +256,12 @@ public final strictfp class AllMetadataT
      */
     @Override
     protected String getExpectedNamespace(final Class<?> impl, final Specification specification) {
-        if (impl == org.apache.sis.metadata.iso.identification.DefaultServiceIdentification.class) {
+        if (impl == DefaultCoupledResource.class ||
+            impl == DefaultOperationChainMetadata.class ||
+            impl == DefaultOperationMetadata.class ||
+            impl == DefaultServiceIdentification.class)
+        {
+            assertEquals(Specification.ISO_19115, specification);
             return Namespaces.SRV;
         }
         return super.getExpectedNamespace(impl, specification);
@@ -232,7 +274,7 @@ public final strictfp class AllMetadataT
      * @return {@inheritDoc}
      */
     @Override
-    protected String getExpectedTypeForElement(final Class<?> type, final Class<?> impl) {
+    protected String getExpectedXmlTypeForElement(final Class<?> type, final Class<?> impl) {
         final String rootName = type.getAnnotation(UML.class).identifier();
         /* switch (rootName) */ { // "String in switch" on the JDK7 branch.
             // We don't know yet what is the type of this one.
@@ -244,6 +286,11 @@ public final strictfp class AllMetadataT
             if (rootName.equals("SV_ServiceIdentification")) {
                 return "MD_ServiceIdentification_Type";
             }
+            // Following prefix was changed in ISO 19115:2014,
+            // but ISO 19139 still use the old prefix.
+            if (rootName.equals("MD_Scope")) {
+                return "DQ_Scope_Type";
+            }
         }
         final StringBuilder buffer = new StringBuilder(rootName.length() + 13);
         if (impl.getSimpleName().startsWith("Abstract")) {
@@ -257,6 +304,7 @@ public final strictfp class AllMetadataT
      * or {@code null} if no adapter is expected for the given type.
      *
      * @return {@inheritDoc}
+     * @throws ClassNotFoundException {@inheritDoc}
      */
     @Override
     protected Class<?> getWrapperFor(final Class<?> type) throws ClassNotFoundException {
@@ -268,9 +316,12 @@ public final strictfp class AllMetadataT
              */
             return null;
         }
+        String identifier = type.getAnnotation(UML.class).identifier();
+        if (identifier.equals("DQ_Scope")) {  // Old name in ISO 19115:2003
+            identifier = "MD_Scope";          // New name in ISO 19115:2014
+        }
         final String classname = "org.apache.sis.internal.jaxb." +
-              (CodeList.class.isAssignableFrom(type) ? "code" : "metadata") +
-              '.' + type.getAnnotation(UML.class).identifier();
+              (CodeList.class.isAssignableFrom(type) ? "code" : "metadata") + '.' + identifier;
         final Class<?> wrapper = Class.forName(classname);
         assertTrue("Expected a final class for " + wrapper.getName(), Modifier.isFinal(wrapper.getModifiers()));
         return wrapper;

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -50,7 +50,7 @@ import static org.junit.Assert.*;
  * @author  Damiano Albani (for code snippet on the mailing list)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.14)
- * @version 0.4
+ * @version 0.5
  * @module
  */
 public final strictfp class CustomMetadataTest extends XMLTestCase {
@@ -128,7 +128,7 @@ public final strictfp class CustomMetada
             @Override public Collection<Keywords>                  getDescriptiveKeywords()        {return null;}
             @Override public Collection<Usage>                     getResourceSpecificUsages()     {return null;}
             @Override public Collection<Constraints>               getResourceConstraints()        {return null;}
-            @Override public Collection<AggregateInformation>      getAggregationInfo()            {return null;}
+@Deprecated @Override public Collection<AggregateInformation>      getAggregationInfo()            {return null;}
         };
         final DefaultMetadata data = new DefaultMetadata();
         assertTrue(data.getIdentificationInfo().add(identification));

Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java?rev=1626345&r1=1626344&r2=1626345&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/DefaultMetadataTest.java [UTF-8] Fri Sep 19 21:46:39 2014
@@ -38,6 +38,10 @@ import static org.apache.sis.test.Assert
  *   <li>{@code "core/sis-metadata/src/test/resources/org/apache/sis/metadata/iso"}</li>
  * </ul>
  *
+ * Metadata tested by this class do not include Coordinate Reference System (CRS) information. A metadata
+ * object with CRS information is tested by {@code org.apache.sis.test.integration.DefaultMetadataTest}
+ * in the {@code sis-referencing} module.
+ *
  * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.5)
@@ -57,7 +61,7 @@ public final strictfp class DefaultMetad
     private Object[] parameters;
 
     /**
-     * For internal {@code DefaultLegalConstraints} usage.
+     * For internal {@code DefaultMetadata} usage.
      *
      * @return {@code Object.class}.
      */



Mime
View raw message