sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1555664 - in /sis/trunk: ./ core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/ core/sis-referencing/src/main/java/org/apache/sis/referencing/ core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/ core...
Date Mon, 06 Jan 2014 05:30:27 GMT
Author: desruisseaux
Date: Mon Jan  6 05:30:26 2014
New Revision: 1555664

URL: http://svn.apache.org/r1555664
Log:
Merge from the JDK6 branch.

Added:
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_EngineeringDatum.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_EngineeringDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CylindricalCS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CylindricalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_LinearCS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_LinearCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_PolarCS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_PolarCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_SphericalCS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_SphericalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_UserDefinedCS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_UserDefinedCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/
      - copied from r1555663, sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/
    sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/
      - copied from r1555663, sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/
    sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level (GML 3.1).xml
      - copied unchanged from r1555663, sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level (GML 3.1).xml
Modified:
    sis/trunk/   (props changed)
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_Ellipsoid.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_GeodeticDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ImageDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_PrimeMeridian.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_TemporalDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_VerticalDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_AffineCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CartesianCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CoordinateSystemAxis.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_EllipsoidalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_TimeCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_VerticalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java   (props changed)
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java   (contents, props changed)
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
    sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
    sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/CartesianCS.xml
    sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/EllipsoidalCS.xml
    sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level.xml
    sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/XML.java

Propchange: sis/trunk/
------------------------------------------------------------------------------
  Merged /sis/branches/JDK7:r1555454-1555662
  Merged /sis/branches/JDK6:r1555456-1555663

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_Ellipsoid.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_Ellipsoid.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_Ellipsoid.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_Ellipsoid.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_Ellipsoid extends 
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_Ellipsoid(final Ellipsoid metadata) {
-        super(metadata);
+    private CD_Ellipsoid(final Ellipsoid ellipsoid) {
+        super(ellipsoid);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:Ellipsoid>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  ellipsoid The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_Ellipsoid wrap(final Ellipsoid value) {
-        return new CD_Ellipsoid(value);
+    protected CD_Ellipsoid wrap(final Ellipsoid ellipsoid) {
+        return new CD_Ellipsoid(ellipsoid);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_Ellipsoid extends 
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param ellipsoid The unmarshalled element.
      */
-    public void setElement(final DefaultEllipsoid element) {
-        this.metadata = element;
+    public void setElement(final DefaultEllipsoid ellipsoid) {
+        metadata = ellipsoid;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_GeodeticDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_GeodeticDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_GeodeticDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_GeodeticDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_GeodeticDatum exte
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_GeodeticDatum(final GeodeticDatum metadata) {
-        super(metadata);
+    private CD_GeodeticDatum(final GeodeticDatum datum) {
+        super(datum);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:GeodeticDatum>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  datum The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_GeodeticDatum wrap(final GeodeticDatum value) {
-        return new CD_GeodeticDatum(value);
+    protected CD_GeodeticDatum wrap(final GeodeticDatum datum) {
+        return new CD_GeodeticDatum(datum);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_GeodeticDatum exte
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param datum The unmarshalled element.
      */
-    public void setElement(final DefaultGeodeticDatum element) {
-        this.metadata = element;
+    public void setElement(final DefaultGeodeticDatum datum) {
+        metadata = datum;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ImageDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ImageDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ImageDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ImageDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_ImageDatum extends
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_ImageDatum(final ImageDatum metadata) {
-        super(metadata);
+    private CD_ImageDatum(final ImageDatum datum) {
+        super(datum);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:ImageDatum>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  datum The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_ImageDatum wrap(final ImageDatum value) {
-        return new CD_ImageDatum(value);
+    protected CD_ImageDatum wrap(final ImageDatum datum) {
+        return new CD_ImageDatum(datum);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_ImageDatum extends
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param datum The unmarshalled element.
      */
-    public void setElement(final DefaultImageDatum element) {
-        this.metadata = element;
+    public void setElement(final DefaultImageDatum datum) {
+        metadata = datum;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_PrimeMeridian.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_PrimeMeridian.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_PrimeMeridian.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_PrimeMeridian.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_PrimeMeridian exte
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_PrimeMeridian(final PrimeMeridian metadata) {
-        super(metadata);
+    private CD_PrimeMeridian(final PrimeMeridian datum) {
+        super(datum);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:PrimeMeridian>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  datum The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_PrimeMeridian wrap(final PrimeMeridian value) {
-        return new CD_PrimeMeridian(value);
+    protected CD_PrimeMeridian wrap(final PrimeMeridian datum) {
+        return new CD_PrimeMeridian(datum);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_PrimeMeridian exte
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param datum The unmarshalled element.
      */
-    public void setElement(final DefaultPrimeMeridian element) {
-        this.metadata = element;
+    public void setElement(final DefaultPrimeMeridian datum) {
+        metadata = datum;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_TemporalDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_TemporalDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_TemporalDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_TemporalDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_TemporalDatum exte
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_TemporalDatum(final TemporalDatum metadata) {
-        super(metadata);
+    private CD_TemporalDatum(final TemporalDatum datum) {
+        super(datum);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:TemporalDatum>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  datum The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_TemporalDatum wrap(final TemporalDatum value) {
-        return new CD_TemporalDatum(value);
+    protected CD_TemporalDatum wrap(final TemporalDatum datum) {
+        return new CD_TemporalDatum(datum);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_TemporalDatum exte
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param datum The unmarshalled element.
      */
-    public void setElement(final DefaultTemporalDatum element) {
-        this.metadata = element;
+    public void setElement(final DefaultTemporalDatum datum) {
+        metadata = datum;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_VerticalDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_VerticalDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_VerticalDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_VerticalDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CD_VerticalDatum exte
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CD_VerticalDatum(final VerticalDatum metadata) {
-        super(metadata);
+    private CD_VerticalDatum(final VerticalDatum datum) {
+        super(datum);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:VerticalDatum>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  datum The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CD_VerticalDatum wrap(final VerticalDatum value) {
-        return new CD_VerticalDatum(value);
+    protected CD_VerticalDatum wrap(final VerticalDatum datum) {
+        return new CD_VerticalDatum(datum);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CD_VerticalDatum exte
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param datum The unmarshalled element.
      */
-    public void setElement(final DefaultVerticalDatum element) {
-        this.metadata = element;
+    public void setElement(final DefaultVerticalDatum datum) {
+        metadata = datum;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_AffineCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_AffineCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_AffineCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_AffineCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -26,8 +26,8 @@ import org.apache.sis.internal.jaxb.gco.
  * JAXB adapter mapping implementing class to the GeoAPI interface. See
  * package documentation for more information about JAXB and interface.
  *
- * @author Cédric Briançon (Geomatys)
- * @author Martin Desruisseaux (Geomatys)
+ * @author  Cédric Briançon (Geomatys)
+ * @author  Martin Desruisseaux (Geomatys)
  * @since   0.4 (derived from geotk-3.04)
  * @version 0.4
  * @module
@@ -54,20 +54,20 @@ public final class CS_AffineCS extends P
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_AffineCS(final AffineCS metadata) {
-        super(metadata);
+    private CS_AffineCS(final AffineCS cs) {
+        super(cs);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:AffineCS>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  cs The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_AffineCS wrap(final AffineCS value) {
-        return new CS_AffineCS(value);
+    protected CS_AffineCS wrap(final AffineCS cs) {
+        return new CS_AffineCS(cs);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CS_AffineCS extends P
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param cs The unmarshalled element.
      */
-    public void setElement(final DefaultAffineCS element) {
-        this.metadata = element;
+    public void setElement(final DefaultAffineCS cs) {
+        metadata = cs;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CartesianCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CartesianCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CartesianCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CartesianCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CS_CartesianCS extend
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_CartesianCS(final CartesianCS metadata) {
-        super(metadata);
+    private CS_CartesianCS(final CartesianCS cs) {
+        super(cs);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:CartesianCS>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  cs The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_CartesianCS wrap(final CartesianCS value) {
-        return new CS_CartesianCS(value);
+    protected CS_CartesianCS wrap(final CartesianCS cs) {
+        return new CS_CartesianCS(cs);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CS_CartesianCS extend
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param cs The unmarshalled element.
      */
-    public void setElement(final DefaultCartesianCS element) {
-        this.metadata = element;
+    public void setElement(final DefaultCartesianCS cs) {
+        metadata = cs;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CoordinateSystemAxis.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CoordinateSystemAxis.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CoordinateSystemAxis.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_CoordinateSystemAxis.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -32,9 +32,7 @@ import org.apache.sis.internal.jaxb.gco.
  * @version 0.4
  * @module
  */
-public final class CS_CoordinateSystemAxis extends
-        PropertyType<CS_CoordinateSystemAxis, CoordinateSystemAxis>
-{
+public final class CS_CoordinateSystemAxis extends PropertyType<CS_CoordinateSystemAxis, CoordinateSystemAxis> {
     /**
      * Empty constructor for JAXB only.
      */
@@ -56,20 +54,20 @@ public final class CS_CoordinateSystemAx
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_CoordinateSystemAxis(final CoordinateSystemAxis metadata) {
-        super(metadata);
+    private CS_CoordinateSystemAxis(final CoordinateSystemAxis axis) {
+        super(axis);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:CoordinateSystemAxis>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  axis The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_CoordinateSystemAxis wrap(final CoordinateSystemAxis value) {
-        return new CS_CoordinateSystemAxis(value);
+    protected CS_CoordinateSystemAxis wrap(final CoordinateSystemAxis axis) {
+        return new CS_CoordinateSystemAxis(axis);
     }
 
     /**
@@ -87,9 +85,9 @@ public final class CS_CoordinateSystemAx
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param axis The unmarshalled element.
      */
-    public void setElement(final DefaultCoordinateSystemAxis element) {
-        this.metadata = element;
+    public void setElement(final DefaultCoordinateSystemAxis axis) {
+        metadata = axis;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_EllipsoidalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_EllipsoidalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_EllipsoidalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_EllipsoidalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CS_EllipsoidalCS exte
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_EllipsoidalCS(final EllipsoidalCS metadata) {
-        super(metadata);
+    private CS_EllipsoidalCS(final EllipsoidalCS cs) {
+        super(cs);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:EllipsoidalCS>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  cs The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_EllipsoidalCS wrap(final EllipsoidalCS value) {
-        return new CS_EllipsoidalCS(value);
+    protected CS_EllipsoidalCS wrap(final EllipsoidalCS cs) {
+        return new CS_EllipsoidalCS(cs);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CS_EllipsoidalCS exte
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param cs The unmarshalled element.
      */
-    public void setElement(final DefaultEllipsoidalCS element) {
-        this.metadata = element;
+    public void setElement(final DefaultEllipsoidalCS cs) {
+        metadata = cs;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_TimeCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_TimeCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_TimeCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_TimeCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CS_TimeCS extends Pro
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_TimeCS(final TimeCS metadata) {
-        super(metadata);
+    private CS_TimeCS(final TimeCS cs) {
+        super(cs);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:TimeCS>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  cs The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_TimeCS wrap(final TimeCS value) {
-        return new CS_TimeCS(value);
+    protected CS_TimeCS wrap(final TimeCS cs) {
+        return new CS_TimeCS(cs);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CS_TimeCS extends Pro
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param cs The unmarshalled element.
      */
-    public void setElement(final DefaultTimeCS element) {
-        this.metadata = element;
+    public void setElement(final DefaultTimeCS cs) {
+        metadata = cs;
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_VerticalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_VerticalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_VerticalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_VerticalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -54,20 +54,20 @@ public final class CS_VerticalCS extends
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CS_VerticalCS(final VerticalCS metadata) {
-        super(metadata);
+    private CS_VerticalCS(final VerticalCS cs) {
+        super(cs);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given value
      * in a {@code <gml:VerticalCS>} XML element.
      *
-     * @param  value The element to marshall.
+     * @param  cs The element to marshall.
      * @return A {@code PropertyType} wrapping the given the element.
      */
     @Override
-    protected CS_VerticalCS wrap(final VerticalCS value) {
-        return new CS_VerticalCS(value);
+    protected CS_VerticalCS wrap(final VerticalCS cs) {
+        return new CS_VerticalCS(cs);
     }
 
     /**
@@ -85,9 +85,9 @@ public final class CS_VerticalCS extends
     /**
      * Invoked by JAXB at unmarshalling time for storing the result temporarily.
      *
-     * @param element The unmarshalled element.
+     * @param cs The unmarshalled element.
      */
-    public void setElement(final DefaultVerticalCS element) {
-        this.metadata = element;
+    public void setElement(final DefaultVerticalCS cs) {
+        metadata = cs;
     }
 }

Propchange: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/SC_VerticalCRS.java
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Mon Jan  6 05:30:26 2014
@@ -1 +1 @@
-text/plain
+text/plain;charset=UTF-8

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -422,7 +422,10 @@ public class AbstractIdentifiedObject ex
             }
         }
         // In last ressort, append code without codespace since the name are often verbose.
-        return appendUnicodeIdentifier(id, '-', name.getCode(), ":", false) ? id.toString() : null;
+        if (name != null && appendUnicodeIdentifier(id, '-', name.getCode(), ":", false)) {
+            return id.toString();
+        }
+        return null;
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import org.opengis.referencing.datum.Datum;
+import org.opengis.referencing.cs.AffineCS;
+import org.opengis.referencing.cs.CartesianCS;
 import org.opengis.referencing.cs.CoordinateSystem;
 import org.opengis.referencing.crs.SingleCRS;
 import org.opengis.referencing.crs.CoordinateReferenceSystem;
@@ -72,8 +74,10 @@ import org.apache.sis.internal.jdk7.Obje
 @XmlType(name="AbstractCRSType")
 @XmlRootElement(name = "AbstractCRS")
 @XmlSeeAlso({
+    DefaultGeodeticCRS.class,
     DefaultVerticalCRS.class,
     DefaultTemporalCRS.class,
+    DefaultEngineeringCRS.class,
     DefaultImageCRS.class,
     DefaultCompoundCRS.class
 })
@@ -205,6 +209,22 @@ public class AbstractCRS extends Abstrac
     }
 
     /**
+     * Returns the coordinate system if it is of the given type, or {@code null} otherwise.
+     * This method is invoked by subclasses that can accept more than one CS type.
+     */
+    @SuppressWarnings("unchecked")
+    final <T extends CoordinateSystem> T getCoordinateSystem(final Class<T> type) {
+        final CoordinateSystem cs = coordinateSystem;
+        if (type.isInstance(cs)) {
+            // Special case for AfficeCS: must ensure that the cs is not the CartesianCS subtype.
+            if (type != AffineCS.class || !(cs instanceof CartesianCS)) {
+                return (T) cs;
+            }
+        }
+        return null;
+    }
+
+    /**
      * Sets the coordinate system to the given value. This method is invoked only by JAXB at
      * unmarshalling time and can be invoked only if the coordinate system has never been set.
      *
@@ -305,12 +325,13 @@ public class AbstractCRS extends Abstrac
         formatter.append(getDatum());
         final Unit<?> unit = getUnit();
         formatter.append(unit);
-        final int dimension = coordinateSystem.getDimension();
+        final CoordinateSystem cs = coordinateSystem;
+        final int dimension = cs.getDimension();
         for (int i=0; i<dimension; i++) {
-            formatter.append(coordinateSystem.getAxis(i));
+            formatter.append(cs.getAxis(i));
         }
         if (unit == null) {
-            formatter.setInvalidWKT(coordinateSystem);
+            formatter.setInvalidWKT(cs);
         }
     }
 }

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java [iso-8859-1] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -34,13 +34,10 @@ import static org.apache.sis.util.Argume
  * reference systems are treated as a separate sub-type because a separate user community exists
  * for images with its own terms of reference.
  *
- * <table class="sis">
- * <tr><th>Used with CS type(s)</th></tr>
- * <tr><td>
- *   {@linkplain org.apache.sis.referencing.cs.DefaultCartesianCS Cartesian CS}
- * </td></tr><tr><td>
- *   {@linkplain org.apache.sis.referencing.cs.DefaultAffineCS Affine CS}
- * </td></tr></table>
+ * <p><b>Used with coordinate system types:</b>
+ *   {@linkplain org.apache.sis.referencing.cs.DefaultCartesianCS Cartesian} or
+ *   {@linkplain org.apache.sis.referencing.cs.DefaultAffineCS Affine}.
+ * </p>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.4 (derived from geotk-1.2)
@@ -140,7 +137,7 @@ public class DefaultImageCRS extends Abs
      *
      * @param crs The coordinate reference system to copy.
      *
-     * @see #castOrCopy(TemporalCRS)
+     * @see #castOrCopy(ImageCRS)
      */
     protected DefaultImageCRS(final ImageCRS crs) {
         super(crs);
@@ -203,8 +200,7 @@ public class DefaultImageCRS extends Abs
      */
     @XmlElement(name = "affineCS")
     private AffineCS getAffineCS() {
-        final AffineCS cs = getCoordinateSystem();
-        return (cs instanceof CartesianCS) ? null : cs;
+        return getCoordinateSystem(AffineCS.class);
     }
 
     /**
@@ -212,9 +208,8 @@ public class DefaultImageCRS extends Abs
      * Only one of {@link #getAffineCS()} and {@code getCartesianCS()} can return a non-null value.
      */
     @XmlElement(name = "cartesianCS")
-    private AffineCS getCartesianCS() {
-        final AffineCS cs = getCoordinateSystem();
-        return (cs instanceof CartesianCS) ? (CartesianCS) cs : null;
+    private CartesianCS getCartesianCS() {
+        return getCoordinateSystem(CartesianCS.class);
     }
 
     /**
@@ -227,7 +222,7 @@ public class DefaultImageCRS extends Abs
     /**
      * Used by JAXB only (invoked by reflection).
      */
-    private void setCartesianCS(final AffineCS cs) {
+    private void setCartesianCS(final CartesianCS cs) {
         super.setCoordinateSystem("cartesianCS", cs);
     }
 }

Propchange: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
------------------------------------------------------------------------------
--- svn:mime-type (original)
+++ svn:mime-type Mon Jan  6 05:30:26 2014
@@ -1 +1 @@
-text/plain
+text/plain;charset=UTF-8

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -34,12 +34,16 @@ import static org.apache.sis.util.Argume
 
 /**
  * A 1D coordinate reference system used for the recording of time.
+ * The Apache SIS implementation provides the following methods in addition to the OGC/ISO properties:
  *
- * <table class="sis">
- * <tr><th>Used with CS type(s)</th></tr>
- * <tr><td>
- *   {@linkplain org.apache.sis.referencing.cs.DefaultTimeCS Time CS}
- * </td></tr></table>
+ * <ul>
+ *   <li>{@link #toDate(double)} for converting a temporal position to a {@link Date}.</li>
+ *   <li>{@link #toValue(Date)} for converting a {@link Date} to a temporal position.</li>
+ * </ul>
+ *
+ * <p><b>Used with coordinate system type:</b>
+ *   {@linkplain org.apache.sis.referencing.cs.DefaultTimeCS Time}.
+ * </p>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.4 (derived from geotk-1.2)

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -34,11 +34,9 @@ import static org.apache.sis.util.Argume
  * Vertical CRSs make use of the direction of gravity to define the concept of height or depth,
  * but the relationship with gravity may not be straightforward.
  *
- * <table class="sis">
- * <tr><th>Used with CS type(s)</th></tr>
- * <tr><td>
- *   {@linkplain org.apache.sis.referencing.cs.DefaultVerticalCS Vertical CS}
- * </td></tr></table>
+ * <p><b>Used with coordinate system type:</b>
+ *   {@linkplain org.apache.sis.referencing.cs.DefaultVerticalCS Vertical}.
+ * </p>
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @since   0.4 (derived from geotk-1.2)

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -21,26 +21,54 @@
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * <p>The root class for this package is {@link org.apache.sis.referencing.crs.AbstractCRS}.
- * Coordinate Reference System (CRS) can have various number of dimensions, but some restriction
+ * Coordinate Reference System (CRS) can have various number of dimensions, but some restrictions
  * apply depending on the CRS type:</p>
  *
+ * <table class="sis">
+ *   <tr><th>Dimension</th> <th>CRS type examples</th> <th>Remarks</th></tr>
+ *   <tr>
+ *     <td>3</td>
+ *     <td>{@linkplain org.apache.sis.referencing.crs.DefaultGeographicCRS Geographic},
+ *         {@linkplain org.apache.sis.referencing.crs.DefaultGeocentricCRS Geocentric}</td>
+ *     <td>ISO 19111 uses the same class, {@code GeodeticCRS}, for those two cases.</td>
+ *   </tr><tr>
+ *     <td>2</td>
+ *     <td>{@linkplain org.apache.sis.referencing.crs.DefaultGeographicCRS Geographic},
+ *         {@linkplain org.apache.sis.referencing.crs.DefaultProjectedCRS Projected}</td>
+ *     <td>{@code GeographicCRS} can also be 3D.</td>
+ *   </tr><tr>
+ *     <td>1</td>
+ *     <td>{@linkplain org.apache.sis.referencing.crs.DefaultVerticalCRS Vertical},
+ *         {@linkplain org.apache.sis.referencing.crs.DefaultTemporalCRS Temporal}.</td>
+ *     <td></td>
+ *   </tr><tr>
+ *     <td>Any</td>
+ *     <td>{@linkplain org.apache.sis.referencing.crs.DefaultCompoundCRS Compound}</td>
+ *     <td>Often used for adding a time axis to the above CRS.</td>
+ *   </tr>
+ * </table>
+ *
+ * {@section Apache SIS extensions}
+ * Some SIS implementations provide additional methods that are not part of OGC/ISO specifications:
+ *
  * <ul>
- *   <li>Three-dimensional:
- *       {@link org.apache.sis.referencing.crs.DefaultGeographicCRS GeographicCRS} and
- *       {@link org.apache.sis.referencing.crs.DefaultGeocentricCRS GeocentricCRS}
- *       (note: ISO 19111 uses the same class, {@code GeodeticCRS}, for those two cases).</li>
- *   <li>Two-dimensional:
- *       {@link org.apache.sis.referencing.crs.DefaultGeographicCRS GeographicCRS} and
- *       {@link org.apache.sis.referencing.crs.DefaultProjectedCRS ProjectedCRS}
- *       (note that {@code GeographicCRS} can also be 3D).</li>
- *   <li>One-dimensional:
- *       {@link org.apache.sis.referencing.crs.DefaultVerticalCRS VerticalCRS} and
- *       {@link org.apache.sis.referencing.crs.DefaultTemporalCRS TemporalCRS}.</li>
- *   <li>Any number of dimensions:
- *       {@link org.geotoolkit.referencing.crs.DefaultCompoundCRS CompoundCRS}
- *       (often used for adding a time axis to the above CRS).
+ *   <li>{@link org.apache.sis.referencing.crs.DefaultTemporalCRS#toDate(double)}</li>
+ *   <li>{@link org.apache.sis.referencing.crs.DefaultTemporalCRS#toValue DefaultTemporalCRS.toValue(Date)}</li>
  * </ul>
  *
+ * In addition Apache SIS provides two distinct classes for geographic and geocentric CRS where OGC/ISO defines
+ * a single {@code GeodeticCRS} type. OGC/ISO distinguishes the geographic/geocentric cases according the type
+ * of the coordinate system associated to that CRS:
+ *
+ * <ul>
+ *   <li>A geodetic CRS associated to an {@linkplain org.apache.sis.referencing.cs.DefaultEllipsoidalCS ellipsoidal CS}
+ *       is geographic.</li>
+ *   <li>A geodetic CRS associated to a {@linkplain org.apache.sis.referencing.cs.DefaultSphericalCS spherical} or
+ *       {@linkplain org.apache.sis.referencing.cs.DefaultCartesianCS Cartesian CS} is geocentric.</li>
+ * </ul>
+ *
+ * SIS keeps the geographic and geocentric CRS as distinct types since such distinction is in wide use.
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Cédric Briançon (Geomatys)
  * @since   0.4 (derived from geotk-1.2)
@@ -54,13 +82,19 @@
 @XmlAccessorType(XmlAccessType.NONE)
 @XmlJavaTypeAdapters({
     @XmlJavaTypeAdapter(CD_GeodeticDatum.class),
+    @XmlJavaTypeAdapter(CD_EngineeringDatum.class),
     @XmlJavaTypeAdapter(CD_ImageDatum.class),
     @XmlJavaTypeAdapter(CD_TemporalDatum.class),
     @XmlJavaTypeAdapter(CD_VerticalDatum.class),
     @XmlJavaTypeAdapter(CS_AffineCS.class),
     @XmlJavaTypeAdapter(CS_CartesianCS.class),
+    @XmlJavaTypeAdapter(CS_CylindricalCS.class),
     @XmlJavaTypeAdapter(CS_EllipsoidalCS.class),
+    @XmlJavaTypeAdapter(CS_LinearCS.class),
+    @XmlJavaTypeAdapter(CS_PolarCS.class),
+    @XmlJavaTypeAdapter(CS_SphericalCS.class),
     @XmlJavaTypeAdapter(CS_TimeCS.class),
+    @XmlJavaTypeAdapter(CS_UserDefinedCS.class),
     @XmlJavaTypeAdapter(CS_VerticalCS.class),
     @XmlJavaTypeAdapter(StringAdapter.class),
     @XmlJavaTypeAdapter(InternationalStringConverter.class)

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultAffineCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -32,13 +32,13 @@ import org.apache.sis.measure.Units;
  * A 2- or 3-dimensional coordinate system made of straight axes (not necessarily orthogonal).
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultImageCRS Image CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultImageCRS Image}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -31,19 +31,19 @@ import org.apache.sis.util.resources.Err
  * All axes shall have the same linear unit of measure.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultGeocentricCRS Geocentric CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultGeocentricCRS Geocentric}</td>
  *   <td>“Geocentric X”, “Geocentric Y”, “Geocentric Z”</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultProjectedCRS Projected CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultProjectedCRS Projected}</td>
  *   <td>“Easting” or “Westing”, “Northing” or “Southing”</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultImageCRS Image CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultImageCRS Image}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -33,10 +33,10 @@ import static org.apache.sis.util.Utilit
  * A coordinate system made of two or more independent coordinate systems.
  *
  * <table class="sis"><tr>
- *   <th>Used with CRS types</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultCompoundCRS Compound}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultCompoundCRS Compound}</td>
  *   <td>(not applicable)</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -32,10 +32,10 @@ import org.apache.sis.measure.Units;
  * {@linkplain DefaultPolarCS polar coordinate system} extended by a straight perpendicular axis.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -31,13 +31,13 @@ import org.apache.sis.measure.Units;
  * A 2- or 3-dimensional coordinate system for geodetic latitude and longitude, optionally with ellipsoidal height.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultGeocentricCRS Geographic CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultGeocentricCRS Geographic}</td>
  *   <td>“Geodetic latitude”, “Geodetic longitude”, “Ellipsoidal height” (if 3D)</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -33,10 +33,10 @@ import org.apache.sis.measure.Units;
  * A typical example is an axis for representing the points along a road.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -32,10 +32,10 @@ import org.apache.sis.measure.Units;
  * and an angle from a fixed direction.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -33,13 +33,13 @@ import org.apache.sis.measure.Units;
  * based on an ellipsoid "degenerated" into a sphere.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultGeocentricCRS Geocentric CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultGeocentricCRS Geocentric}</td>
  *   <td>“Spherical Latitude”, “ Spherical Longitude”, “Geocentric Radius”</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -32,10 +32,10 @@ import org.apache.sis.measure.Units;
  * A 1-dimensional coordinate system for time elapsed in the specified time units from a specified time origin.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultTemporalCRS Temporal CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultTemporalCRS Temporal}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -41,13 +41,13 @@ import org.apache.sis.internal.referenci
  * The above examples show the variety of units of measurement which can be associated to vertical positions.
  *
  * <table class="sis"><tr>
- *   <th>Used with</th>
+ *   <th>Used with CRS</th>
  *   <th>Permitted axis names</th>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultVerticalCRS Vertical CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultVerticalCRS Vertical}</td>
  *   <td>“Gravity-related height” or “Depth”</td>
  * </tr><tr>
- *   <td>{@linkplain org.geotoolkit.referencing.crs.DefaultEngineeringCRS Engineering CRS}</td>
+ *   <td>{@linkplain org.apache.sis.referencing.crs.DefaultEngineeringCRS Engineering}</td>
  *   <td>unspecified</td>
  * </tr></table>
  *

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -68,7 +68,12 @@ import org.apache.sis.internal.jdk7.Obje
  * @see org.apache.sis.referencing.cs.AbstractCS
  * @see org.apache.sis.referencing.crs.AbstractCRS
  */
-@XmlType(name = "AbstractDatumType")
+@XmlType(name = "AbstractDatumType", propOrder = {
+    "domainOfValidity",
+    "scope",
+    "anchorDefinition",
+    "realizationEpoch"
+})
 @XmlRootElement(name = "AbstractDatum")
 @XmlSeeAlso({
     DefaultGeodeticDatum.class,
@@ -92,8 +97,8 @@ public class AbstractDatum extends Abstr
      * Description, possibly including coordinates, of the point or points used to anchor the datum
      * to the Earth. Also known as the "origin", especially for Engineering and Image Datums.
      */
-    @XmlElement(name = "anchorDefinition")
-    private final InternationalString anchorPoint;
+    @XmlElement
+    private final InternationalString anchorDefinition;
 
     /**
      * The time after which this datum definition is valid. This time may be precise
@@ -124,7 +129,7 @@ public class AbstractDatum extends Abstr
      */
     AbstractDatum() {
         super(org.apache.sis.internal.referencing.NilReferencingObject.INSTANCE);
-        anchorPoint      = null;
+        anchorDefinition = null;
         realizationEpoch = Long.MIN_VALUE;
         domainOfValidity = null;
         scope            = null;
@@ -193,7 +198,7 @@ public class AbstractDatum extends Abstr
         super(properties);
         realizationEpoch = MetadataUtilities.toMilliseconds(property(properties, REALIZATION_EPOCH_KEY, Date.class));
         domainOfValidity = property(properties, DOMAIN_OF_VALIDITY_KEY, Extent.class);
-        anchorPoint      = Types.toInternationalString(properties, ANCHOR_POINT_KEY);
+        anchorDefinition = Types.toInternationalString(properties, ANCHOR_POINT_KEY);
         scope            = Types.toInternationalString(properties, SCOPE_KEY);
     }
 
@@ -211,7 +216,7 @@ public class AbstractDatum extends Abstr
         realizationEpoch = MetadataUtilities.toMilliseconds(datum.getRealizationEpoch());
         domainOfValidity = datum.getDomainOfValidity();
         scope            = datum.getScope();
-        anchorPoint      = datum.getAnchorPoint();
+        anchorDefinition = datum.getAnchorPoint();
     }
 
     /**
@@ -280,7 +285,7 @@ public class AbstractDatum extends Abstr
      */
     @Override
     public InternationalString getAnchorPoint() {
-        return anchorPoint;
+        return anchorDefinition;
     }
 
     /**
@@ -397,7 +402,7 @@ public class AbstractDatum extends Abstr
                 final AbstractDatum that = (AbstractDatum) object;
                 return this.realizationEpoch == that.realizationEpoch &&
                        Objects.equals(this.domainOfValidity, that.domainOfValidity) &&
-                       Objects.equals(this.anchorPoint,      that.anchorPoint) &&
+                       Objects.equals(this.anchorDefinition, that.anchorDefinition) &&
                        Objects.equals(this.scope,            that.scope);
             }
             case BY_CONTRACT: {
@@ -430,7 +435,7 @@ public class AbstractDatum extends Abstr
      */
     @Override
     protected long computeHashCode() {
-        return super.computeHashCode() + Objects.hash(anchorPoint, realizationEpoch, domainOfValidity, scope);
+        return super.computeHashCode() + Objects.hash(anchorDefinition, realizationEpoch, domainOfValidity, scope);
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -92,6 +92,9 @@ public class DefaultVerticalDatum extend
     /**
      * The type of this vertical datum.
      * If {@code null}, a value will be inferred from the name by {@link #type()}.
+     *
+     * @see #type()
+     * @see #getVerticalDatumType()
      */
     private VerticalDatumType type;
 
@@ -221,6 +224,9 @@ public class DefaultVerticalDatum extend
      *
      * <p>No synchronization needed; this is not a problem if this value is computed twice.
      * This method returns only existing immutable instances.</p>
+     *
+     * @see #getVerticalDatumType()
+     * @see #getTypeElement()
      */
     private VerticalDatumType type() {
         VerticalDatumType t = type;
@@ -253,6 +259,8 @@ public class DefaultVerticalDatum extend
     /**
      * Returns the type to be marshalled to XML.
      * This element was present in GML 3.0 and 3.1, but has been removed from GML 3.2.
+     *
+     * @see <a href="http://issues.apache.org/jira/browse/SIS-160">SIS-160: Need XSLT between GML 3.1 and 3.2</a>
      */
     @XmlElement(name = "verticalDatumType")
     private VerticalDatumType getTypeElement() {

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -26,11 +26,13 @@ import org.opengis.referencing.datum.Ell
 import org.opengis.referencing.datum.PrimeMeridian;
 import org.opengis.referencing.datum.GeodeticDatum;
 import org.opengis.referencing.datum.VerticalDatum;
+import org.opengis.referencing.cs.CoordinateSystem;
 import org.opengis.referencing.cs.CoordinateSystemAxis;
 import org.opengis.referencing.cs.AxisDirection;
 import org.opengis.referencing.cs.CartesianCS;
 import org.opengis.referencing.cs.EllipsoidalCS;
 import org.opengis.referencing.cs.RangeMeaning;
+import org.opengis.referencing.crs.GeodeticCRS;
 
 import static org.apache.sis.test.Assert.*;
 
@@ -211,6 +213,37 @@ public final strictfp class GeodeticObje
     }
 
     /**
+     * Asserts that the given CRS is the WGS 84 one.
+     * This method verifies the following properties:
+     *
+     * <table class="sis">
+     * <tr><th>Property</th> <th>Expected value</th></tr>
+     * <tr><td>{@linkplain ReferenceIdentifier#getCode() Code} of the {@linkplain GeodeticCRS#getName() name}</td>
+     *     <td>{@code "WGS 84"}</td></tr>
+     * <tr><td>{@linkplain GeodeticCRS#getDomainOfValidity() Domain of validity}</td>
+     *     <td>{@linkplain #assertIsWorld(GeographicBoundingBox) Is world} or absent</td></tr>
+     * <tr><td>{@linkplain GeodeticCRS#getDatum() Datum}</td>
+     *     <td>{@linkplain #assertIsWGS84(GeodeticDatum, boolean) Is WGS84}</td></tr>
+     * <tr><td>{@linkplain GeodeticCRS#getCoordinateSystem() Coordinate system}</td>
+     *     <td>{@linkplain #assertIsGeodetic2D(EllipsoidalCS, boolean) Is for a 2D geodetic CRS}</td></tr>
+     * </table>
+     *
+     * @param crs The coordinate reference system to verify.
+     * @param isExtentMandatory {@code true} if the CRS and datum domains of validity are required to contain an
+     *        {@code Extent} element for the world, or {@code false} if optional.
+     * @param isRangeMandatory {@code true} if the coordinate system axes range and range meaning properties
+     *        shall be defined, or {@code false} if they are optional.
+     */
+    public static void assertIsWGS84(final GeodeticCRS crs, final boolean isExtentMandatory, final boolean isRangeMandatory) {
+        assertEquals("name", "WGS 84", crs.getName().getCode());
+        assertIsWorld(crs.getDomainOfValidity(), isExtentMandatory);
+        assertIsWGS84(crs.getDatum(), isExtentMandatory);
+        final CoordinateSystem cs = crs.getCoordinateSystem();
+        assertInstanceOf("coordinateSystem", EllipsoidalCS.class, cs);
+        assertIsGeodetic2D((EllipsoidalCS) cs, isRangeMandatory);
+    }
+
+    /**
      * Asserts that the given datum is the Mean Sea Level one.
      * This method verifies the following properties:
      *
@@ -312,10 +345,10 @@ public final strictfp class GeodeticObje
      * </ul>
      *
      * @param cs The coordinate system to verify.
-     * @param rangeIsMandatory {@code true} if the axes range and range meaning properties shall be defined,
+     * @param isRangeMandatory {@code true} if the axes range and range meaning properties shall be defined,
      *        or {@code false} if they are optional.
      */
-    public static void assertIsGeodetic2D(final EllipsoidalCS cs, final boolean rangeIsMandatory) {
+    public static void assertIsGeodetic2D(final EllipsoidalCS cs, final boolean isRangeMandatory) {
         assertEquals("dimension", 2, cs.getDimension());
         final CoordinateSystemAxis latitude  = cs.getAxis(0);
         final CoordinateSystemAxis longitude = cs.getAxis(1);
@@ -327,8 +360,8 @@ public final strictfp class GeodeticObje
         assertEquals("axis[1].direction", AxisDirection.EAST,   longitude.getDirection());
         assertEquals("axis[0].unit",      NonSI.DEGREE_ANGLE,   latitude .getUnit());
         assertEquals("axis[1].unit",      NonSI.DEGREE_ANGLE,   longitude.getUnit());
-        verifyRange(latitude,   -90,  +90, RangeMeaning.EXACT, rangeIsMandatory);
-        verifyRange(longitude, -180, +180, RangeMeaning.WRAPAROUND, rangeIsMandatory);
+        verifyRange(latitude,   -90,  +90, RangeMeaning.EXACT, isRangeMandatory);
+        verifyRange(longitude, -180, +180, RangeMeaning.WRAPAROUND, isRangeMandatory);
     }
 
     /**

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultVerticalDatumTest.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -17,9 +17,15 @@
 package org.apache.sis.referencing.datum;
 
 import java.lang.reflect.Field;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
 import javax.xml.bind.JAXBException;
 import org.opengis.referencing.datum.VerticalDatumType;
 import org.apache.sis.internal.referencing.VerticalDatumTypes;
+import org.apache.sis.internal.jaxb.LegacyNamespaces;
+import org.apache.sis.util.Version;
+import org.apache.sis.xml.XML;
+import org.apache.sis.xml.MarshallerPool;
 import org.apache.sis.test.XMLTestCase;
 import org.apache.sis.test.DependsOn;
 import org.junit.Test;
@@ -45,6 +51,11 @@ public final strictfp class DefaultVerti
     private static final String XML_FILE = "Mean Sea Level.xml";
 
     /**
+     * An XML file with the same content than {@link #XML_FILE}, but written in an older GML format.
+     */
+    private static final String GML31_FILE = "Mean Sea Level (GML 3.1).xml";
+
+    /**
      * Tests the {@link DefaultVerticalDatum#getVerticalDatumType()} method in a state
      * simulating unmarshalling of GML 3.2 document.
      *
@@ -85,20 +96,74 @@ public final strictfp class DefaultVerti
     }
 
     /**
-     * Tests unmarshalling.
+     * Tests XML (un)marshalling.
      *
-     * @throws JAXBException If an error occurred during unmarshalling.
+     * @throws JAXBException If an error occurred during (un)marshalling.
      */
     @Test
-    public void testUnmarshalling() throws JAXBException {
+    public void testXML() throws JAXBException {
         final DefaultVerticalDatum datum = unmarshalFile(DefaultVerticalDatum.class, XML_FILE);
         assertIsMeanSeaLevel(datum, true);
         /*
+         * Following attribute does not exist in GML 3.2, so it has been inferred.
+         * Our datum name is "Mean Sea Level", which for now is not yet mapped to
+         * the geoidal type (this could change in any future SIS version).
+         */
+        assertEquals("vertDatumType", VerticalDatumType.OTHER_SURFACE, datum.getVerticalDatumType());
+        /*
          * Values in the following tests are specific to our XML file.
          * The actual texts in the EPSG database are more descriptive.
          */
         assertEquals("remarks",          "Approximates geoid.",             datum.getRemarks().toString());
         assertEquals("scope",            "Hydrography.",                    datum.getScope().toString());
         assertEquals("anchorDefinition", "Averaged over a 19-year period.", datum.getAnchorPoint().toString());
+        /*
+         * Test marshalling and compare with the original file.
+         */
+        assertMarshalEqualsFile(XML_FILE, datum, "xmlns:*", "xsi:schemaLocation");
+    }
+
+    /**
+     * Tests (un)marshalling of an older version, GML 3.1.
+     *
+     * @throws JAXBException If an error occurred during unmarshalling.
+     *
+     * @see <a href="http://issues.apache.org/jira/browse/SIS-160">SIS-160: Need XSLT between GML 3.1 and 3.2</a>
+     */
+    @Test
+    public void testGML31() throws JAXBException {
+        final Version version = new Version("3.1");
+        final MarshallerPool pool = getMarshallerPool();
+        final Unmarshaller unmarshaller = pool.acquireUnmarshaller();
+        unmarshaller.setProperty(XML.GML_VERSION, version);
+        final DefaultVerticalDatum datum =
+                (DefaultVerticalDatum) unmarshaller.unmarshal(getClass().getResource(GML31_FILE));
+        pool.recycle(unmarshaller);
+        /*
+         * Following attribute exists in GML 3.1 only.
+         */
+        assertEquals("vertDatumType", VerticalDatumType.GEOIDAL, datum.getVerticalDatumType());
+        /*
+         * The name, anchor definition and domain of validity are lost because
+         * those property does not have the same XML element name (SIS-160).
+         * Below is all we have.
+         */
+        assertEquals("remarks", "Approximates geoid.", datum.getRemarks().toString());
+        assertEquals("scope",   "Hydrography.",        datum.getScope().toString());
+        /*
+         * Test marshaling. We can not yet compare with the original XML file
+         * because of all the information lost. This may be fixed in a future
+         * SIS version (SIS-160).
+         */
+        final Marshaller marshaller = pool.acquireMarshaller();
+        marshaller.setProperty(XML.GML_VERSION, version);
+        final String xml = marshal(marshaller, datum);
+        pool.recycle(marshaller);
+        assertXmlEquals(
+                "<gml:VerticalDatum xmlns:gml=\"" + LegacyNamespaces.GML + "\">\n" +
+                "  <gml:remarks>Approximates geoid.</gml:remarks>\n" +
+                "  <gml:scope>Hydrography.</gml:scope>\n" +
+                "  <gml:verticalDatumType>geoidal</gml:verticalDatumType>\n" +
+                "</gml:VerticalDatum>", xml, "xmlns:*");
     }
 }

Modified: sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] (original)
+++ sis/trunk/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -66,6 +66,7 @@ import org.junit.BeforeClass;
     org.apache.sis.referencing.cs.DefaultCartesianCSTest.class,
     org.apache.sis.referencing.cs.DefaultEllipsoidalCSTest.class,
     org.apache.sis.referencing.cs.CoordinateSystemsTest.class,
+    org.apache.sis.referencing.crs.DefaultGeodeticCRSTest.class,
     org.apache.sis.referencing.StandardDefinitionsTest.class,
     org.apache.sis.referencing.GeodeticObjectsTest.class,
 

Modified: sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/CartesianCS.xml
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/CartesianCS.xml?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/CartesianCS.xml (original)
+++ sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/CartesianCS.xml Mon Jan  6 05:30:26 2014
@@ -22,6 +22,7 @@
                  xmlns:gml          = "http://www.opengis.net/gml/3.2"
                  xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"
                  gml:id             = "epsg-cs-4400">
+
   <gml:identifier codeSpace="OGP">urn:ogc:def:cs:EPSG::4400</gml:identifier>
   <gml:name>Easting, northing (E,N)</gml:name>
   <gml:remarks>Used in ProjectedCRS.</gml:remarks>

Modified: sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/EllipsoidalCS.xml
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/EllipsoidalCS.xml?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/EllipsoidalCS.xml (original)
+++ sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/cs/EllipsoidalCS.xml Mon Jan  6 05:30:26 2014
@@ -22,6 +22,7 @@
                    xmlns:gml          = "http://www.opengis.net/gml/3.2"
                    xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"
                    gml:id             = "epsg-cs-6422">
+
   <gml:identifier codeSpace="OGP">urn:ogc:def:cs:EPSG::6422</gml:identifier>
   <gml:name>Latitude (north), Longitude (east)</gml:name>
   <gml:remarks>Used in two-dimensional GeographicCRS.</gml:remarks>

Modified: sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level.xml
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean%20Sea%20Level.xml?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level.xml (original)
+++ sis/trunk/core/sis-referencing/src/test/resources/org/apache/sis/referencing/datum/Mean Sea Level.xml Mon Jan  6 05:30:26 2014
@@ -22,7 +22,7 @@
                    xmlns:gmd          = "http://www.isotc211.org/2005/gmd"
                    xmlns:gco          = "http://www.isotc211.org/2005/gco"
                    xmlns:xsi          = "http://www.w3.org/2001/XMLSchema-instance"
-                   gml:id             = "epsg-datum-6326">
+                   gml:id             = "epsg-datum-5100">
 
   <gml:identifier codeSpace="OGP">urn:ogc:def:datum:EPSG::5100</gml:identifier>
   <gml:name>Mean Sea Level</gml:name>

Modified: sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/XML.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/XML.java?rev=1555664&r1=1555663&r2=1555664&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/XML.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/main/java/org/apache/sis/xml/XML.java [UTF-8] Mon Jan  6 05:30:26 2014
@@ -158,6 +158,13 @@ public final class XML extends Static {
      *
      * <p>The value can be {@link String} or {@link Version} objects.
      * If no version is specified, then the most recent GML version is assumed.</p>
+     *
+     * {@section Supported GML versions}
+     * Apache SIS currently supports GML 3.2.1 by default. SIS can read and write GML 3.2
+     * if this property is set to "3.2". It is also possible to set this property to "3.1",
+     * but the marshalled XML is not GML 3.1.1 conformant because of the differences between the two schemas.
+     * See <a href="http://issues.apache.org/jira/browse/SIS-160">SIS-160: Need XSLT between GML 3.1 and 3.2</a>
+     * for information about the status of GML 3.1.1 support.
      */
     public static final String GML_VERSION = "org.apache.sis.gml.version";
 



Mime
View raw message