sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject [sis] 02/02: Move ImmutableIdentifier from org.apache.sis.metadata.iso package to org.apache.sis.referencing package. This is an anticipation for Jigsaw modularisation in a future version.
Date Mon, 09 Sep 2019 15:21:04 GMT
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 414235bf4cb7684c4702e67c72763f0c5952536a
Author: Martin Desruisseaux <martin.desruisseaux@geomatys.com>
AuthorDate: Mon Sep 9 17:13:37 2019 +0200

    Move ImmutableIdentifier from org.apache.sis.metadata.iso package to org.apache.sis.referencing package.
    This is an anticipation for Jigsaw modularisation in a future version.
---
 .../apache/sis/metadata/iso/DefaultIdentifier.java |   7 +-
 .../sis/metadata/iso/citation/Citations.java       |  20 +-
 .../java/org/apache/sis/xml/ReferenceResolver.java |   2 +-
 .../apache/sis/internal/jaxb/referencing/Code.java |   4 +-
 .../sis/internal/referencing/DeprecatedCode.java   |   2 +-
 .../sis/internal/referencing/WKTKeywords.java      |   2 +-
 .../internal/referencing/provider/EPSGName.java    |   2 +-
 .../referencing/provider/MapProjection.java        |   2 +-
 .../java/org/apache/sis/io/wkt/ElementKind.java    |   2 +-
 .../main/java/org/apache/sis/io/wkt/Formatter.java |   2 +-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    |   2 +-
 .../sis/metadata/iso/ImmutableIdentifier.java      | 448 +--------------------
 .../java/org/apache/sis/parameter/Parameters.java  |   4 +-
 .../sis/referencing/AbstractIdentifiedObject.java  |   5 +-
 .../java/org/apache/sis/referencing/Builder.java   |   1 -
 .../apache/sis/referencing/IdentifiedObjects.java  |   4 +-
 .../iso => referencing}/ImmutableIdentifier.java   |  36 +-
 .../apache/sis/referencing/NamedIdentifier.java    |   1 -
 .../sis/referencing/crs/DefaultGeographicCRS.java  |   2 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |   2 +-
 .../operation/InverseOperationMethod.java          |   2 +-
 .../transform/CoordinateSystemTransform.java       |   2 +-
 .../transform/EllipsoidToCentricTransform.java     |   2 +-
 .../sis/internal/jaxb/referencing/CodeTest.java    |   2 +-
 .../parameter/DefaultParameterDescriptorTest.java  |   2 +-
 .../referencing/AbstractIdentifiedObjectTest.java  |   1 -
 .../referencing/AbstractReferenceSystemTest.java   |   1 -
 .../org/apache/sis/referencing/BuilderTest.java    |   1 -
 .../ImmutableIdentifierTest.java                   |   2 +-
 .../apache/sis/referencing/cs/NormalizerTest.java  |   2 +-
 .../datum/DefaultTemporalDatumTest.java            |   2 +-
 .../operation/DefaultOperationMethodTest.java      |   2 +-
 .../apache/sis/test/integration/MetadataTest.java  |   4 +-
 .../sis/test/suite/ReferencingTestSuite.java       |   2 +-
 .../java/org/apache/sis/util/CharSequences.java    |   4 +-
 .../org/apache/sis/storage/gdal/Proj4Factory.java  |   2 +-
 36 files changed, 61 insertions(+), 522 deletions(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
index 36c2129..55e5be1 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
@@ -50,8 +50,9 @@ import org.apache.sis.xml.Namespaces;
  * {@linkplain org.apache.sis.referencing.cs.DefaultCoordinateSystemAxis coordinate system axis},
  * {@linkplain org.apache.sis.referencing.datum.DefaultGeodeticDatum geodetic datum},
  * {@linkplain org.apache.sis.referencing.crs.DefaultGeographicCRS geographic CRS} and more
- * rather use the {@link ImmutableIdentifier} implementation, which is a class unrelated to the usual
- * {@code org.apache.metadata} hierarchy because of the immutable nature of referencing objects.</p>
+ * rather use the {@link org.apache.sis.referencing.ImmutableIdentifier} implementation,
+ * which is a class unrelated to the usual {@code org.apache.metadata} hierarchy
+ * because of the immutable nature of referencing objects.</p>
  *
  * <div class="section">Text, URN and XML representations</div>
  * The XML representation of {@link DefaultIdentifier} is as the following example:
@@ -86,7 +87,7 @@ import org.apache.sis.xml.Namespaces;
  * @author  Cullen Rombach (Image Matters)
  * @version 1.0
  *
- * @see ImmutableIdentifier
+ * @see org.apache.sis.referencing.ImmutableIdentifier
  * @see org.apache.sis.referencing.IdentifiedObjects#toURN(Class, Identifier)
  *
  * @since 0.3
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
index 5eaf426..339120f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
@@ -66,7 +66,7 @@ import static org.apache.sis.internal.util.CollectionsExt.nonEmptyIterator;
  * The constants defined in this class are typically values returned by:
  * <ul>
  *   <li>{@link DefaultCitation#getIdentifiers()} for the {@link #ISBN} and {@link #ISSN} constants.</li>
- *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()} for other {@code IdentifierSpace} constants.</li>
+ *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()} for other {@code IdentifierSpace} constants.</li>
  *   <li>{@link org.apache.sis.metadata.iso.DefaultMetadata#getMetadataStandards()} for other {@code Citation} constants.</li>
  * </ul>
  *
@@ -184,7 +184,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      *   <li>{@link org.apache.sis.referencing.factory.sql.EPSGFactory#getAuthority()}
      *       with the addition of version information.</li>
      * </ul>
@@ -253,7 +253,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @see #EPSG
@@ -286,7 +286,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @see #OGC
@@ -321,7 +321,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @since 0.4
@@ -336,7 +336,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @since 0.4
@@ -349,7 +349,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @since 0.4
@@ -362,7 +362,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @since 0.6
@@ -376,7 +376,7 @@ public final class Citations extends Static {
      * <div class="section">Main usage</div>
      * This value can be returned by:
      * <ul>
-     *   <li>{@link org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()}</li>
+     *   <li>{@link org.apache.sis.referencing.ImmutableIdentifier#getAuthority()}</li>
      * </ul>
      *
      * @since 0.6
@@ -816,7 +816,7 @@ public final class Citations extends Static {
      * @return a non-empty Unicode identifier for the given citation without leading or trailing whitespaces,
      *         or {@code null} if the given citation is null or does not have any Unicode identifier or title.
      *
-     * @see org.apache.sis.metadata.iso.ImmutableIdentifier
+     * @see org.apache.sis.referencing.ImmutableIdentifier
      * @see org.apache.sis.referencing.IdentifiedObjects#getSimpleNameOrIdentifier(IdentifiedObject)
      * @see org.apache.sis.util.CharSequences#isUnicodeIdentifier(CharSequence)
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
index 1a77e45..af2db74 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
@@ -76,7 +76,7 @@ public class ReferenceResolver {
      * @param  context      context (GML version, locale, <i>etc.</i>) of the (un)marshalling process.
      * @param  type         the type of object to be unmarshalled, often as a GeoAPI interface.
      * @param  identifiers  an arbitrary amount of identifiers. For each identifier,
-     *         the {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority() authority}
+     *         the {@linkplain org.apache.sis.referencing.ImmutableIdentifier#getAuthority() authority}
      *         is typically (but not necessarily) one of the constants defined in {@link IdentifierSpace}.
      * @return an object of the given type for the given identifiers, or {@code null} if none.
      */
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
index 45dd1db..c461d72 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/Code.java
@@ -47,7 +47,7 @@ public final class Code {
      * The identifier code.
      *
      * <p><b>Note:</b> GML (the target of this class) represents that code as an XML value, while
-     * {@link org.apache.sis.metadata.iso.ImmutableIdentifier} represents it as an XML element.</p>
+     * {@link org.apache.sis.metadata.iso.DefaultIdentifier} represents it as an XML element.</p>
      */
     @XmlValue
     String code;
@@ -56,7 +56,7 @@ public final class Code {
      * The code space, which is often {@code "EPSG"} with the version in use.
      *
      * <p><b>Note:</b> GML (the target of this class) represents that code as an XML attribute, while
-     * {@link org.apache.sis.metadata.iso.ImmutableIdentifier} represents it as an XML element.</p>
+     * {@link org.apache.sis.metadata.iso.DefaultIdentifier} represents it as an XML element.</p>
      */
     @XmlAttribute
     String codeSpace;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
index 71f811c..dbfcaa3 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
@@ -18,7 +18,7 @@ package org.apache.sis.internal.referencing;
 
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Citation;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.util.Deprecable;
 
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WKTKeywords.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WKTKeywords.java
index 1b4dee2..241a6ce 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WKTKeywords.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/WKTKeywords.java
@@ -52,7 +52,7 @@ public final class WKTKeywords extends Static {
 
     /**
      * Related to {@link org.apache.sis.referencing.AbstractIdentifiedObject}
-     * (including {@link org.apache.sis.metadata.iso.ImmutableIdentifier}).
+     * (including {@link org.apache.sis.referencing.ImmutableIdentifier}).
      */
     public static final String
             Id        = "Id",
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/EPSGName.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/EPSGName.java
index 6da78f1..b209c61 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/EPSGName.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/EPSGName.java
@@ -22,7 +22,7 @@ import org.opengis.metadata.Identifier;
 import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
 import org.apache.sis.internal.util.Constants;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.referencing.NamedIdentifier;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
index f83a469..5efd1ea 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
@@ -42,7 +42,7 @@ import org.apache.sis.measure.Units;
 import org.apache.sis.referencing.NamedIdentifier;
 import org.apache.sis.referencing.IdentifiedObjects;
 import org.apache.sis.referencing.operation.projection.NormalizedProjection;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.parameter.DefaultParameterDescriptor;
 import org.apache.sis.parameter.ParameterBuilder;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java
index 1957aa5..d878dd5 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/ElementKind.java
@@ -106,7 +106,7 @@ public enum ElementKind {
     EXTENT,
 
     /**
-     * Citation (typically for the {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority()
+     * Citation (typically for the {@linkplain org.apache.sis.referencing.ImmutableIdentifier#getAuthority()
      * authority}), often represented by {@code CITATION[…]} elements.
      */
     CITATION,
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
index d117981..4533750 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
@@ -85,7 +85,7 @@ import org.apache.sis.geometry.AbstractEnvelope;
 import org.apache.sis.measure.UnitFormat;
 import org.apache.sis.measure.Range;
 import org.apache.sis.measure.MeasurementRange;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.extent.Extents;
 import org.apache.sis.math.Vector;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
index 6bc1a79..b982e2d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@ -65,7 +65,7 @@ import org.apache.sis.referencing.datum.BursaWolfParameters;
 import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 import org.apache.sis.internal.referencing.CoordinateOperations;
 import org.apache.sis.internal.referencing.Legacy;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.metadata.iso.extent.DefaultExtent;
 import org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java b/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
index bb92d69..fcc74cd 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
@@ -18,140 +18,23 @@ package org.apache.sis.metadata.iso;
 
 import java.util.Map;
 import java.util.Locale;
-import java.util.Objects;
-import java.io.Serializable;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
-import org.opengis.parameter.ParameterValue;
 import org.opengis.util.InternationalString;
-import org.apache.sis.util.resources.Errors;
-import org.apache.sis.util.iso.Types;
-import org.apache.sis.metadata.TitleProperty;
-import org.apache.sis.metadata.iso.citation.Citations;
-import org.apache.sis.internal.metadata.Identifiers;
-import org.apache.sis.internal.metadata.NameMeaning;
-import org.apache.sis.internal.referencing.WKTKeywords;
-import org.apache.sis.io.wkt.FormattableObject;
-import org.apache.sis.io.wkt.Formatter;
-import org.apache.sis.io.wkt.Convention;
-import org.apache.sis.io.wkt.ElementKind;
-
-import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
-import static org.apache.sis.util.CharSequences.trimWhitespaces;
-import static org.apache.sis.util.collection.Containers.property;
 
 
 /**
  * Immutable value uniquely identifying an object within a namespace, together with a version.
- * This kind of identifier is primarily used for identification of
- * {@link org.opengis.referencing.crs.CoordinateReferenceSystem} objects.
- *
- *
- * <div class="section">Immutability and thread safety</div>
- * This class is immutable and thus inherently thread-safe if the {@link Citation} and {@link InternationalString}
- * arguments given to the constructor are also immutable. It is caller's responsibility to ensure that those
- * conditions hold, for example by invoking {@link org.apache.sis.metadata.iso.citation.DefaultCitation#transition
- * DefaultCitation.transition(DefaultCitation.State.FINAL)} before passing the arguments to the constructor.
- * Subclasses shall make sure that any overridden methods remain safe to call from multiple threads and do not change
- * any public {@code ImmutableIdentifier} state.
- *
- *
- * <div class="section">Text, URN and XML representations</div>
- * Identifiers are represented in various ways depending on the context. In particular identifiers are
- * marshalled differently depending on whether they appear in a metadata object or a referencing object.
- * The following examples show an identifier for a Geographic Coordinate Reference System (CRS)
- * identified by code 4326 in the "EPSG" code space:
- *
- * <ul class="verbose"><li><b><cite>Well Known Text</cite> (WKT) version 1</b><br>
- * The WKT 1 format contains only the {@linkplain #getCodeSpace() code space} and the {@linkplain #getCode() code}.
- * If there is no code space, then the {@linkplain #getAuthority() authority} abbreviation is used as a fallback.
- * Example:
- *
- * {@preformat wkt
- *   AUTHORITY["EPSG", "4326"]
- * }
- *
- * </li><li><b><cite>Well Known Text</cite> (WKT) version 2</b><br>
- * The WKT 2 format contains the {@linkplain #getCodeSpace() code space}, the {@linkplain #getCode() code},
- * the {@linkplain #getVersion() version} and the {@linkplain #getAuthority() authority} citation if available.
- * The WKT can optionally provides a {@code URI} element, which expresses the same information in a different way
- * (the URN syntax is described in the next item below).
- * Example:
- *
- * {@preformat wkt
- *   ID["EPSG", 4326, URI["urn:ogc:def:crs:EPSG::4326"]]
- * }
- *
- * </li><li><b>XML in referencing objects</b><br>
- * The <cite>Definition identifier URNs in OGC namespace</cite> paper defines a syntax for identifiers commonly
- * found in Geographic Markup Language (GML) documents. Example:
- *
- * {@preformat xml
- *   <gml:identifier codeSpace="IOGP">urn:ogc:def:crs:EPSG::4326</gml:identifier>
- * }
- *
- * In Apache SIS, the GML {@code codeSpace} attribute - despite its name - is mapped to the identifier
- * {@linkplain #getAuthority() authority}. The components of the URN value are mapped as below:
- *
- * <blockquote><code>
- * urn:ogc:def:&lt;type&gt;:&lt;{@linkplain #getCodeSpace() codespace}&gt;:&lt;{@linkplain #getVersion() version}&gt;:&lt;{@linkplain #getCode() code}&gt;
- * </code></blockquote>
- *
- * </li><li><b>XML in metadata objects</b><br>
- * The XML representation of identifier in a metadata is defined by {@link DefaultIdentifier}.
- * </li></ul>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
- *
- * @see DefaultIdentifier
- * @see org.apache.sis.referencing.IdentifiedObjects#toURN(Class, Identifier)
- *
  * @since 0.3
  * @module
+ *
+ * @deprecated Moved to {@link org.apache.sis.referencing} for anticipation with Jigsaw modules.
  */
-@TitleProperty(name = "code")
-public class ImmutableIdentifier extends FormattableObject implements Identifier, Serializable {
-    /**
-     * For cross-version compatibility.
-     */
-    private static final long serialVersionUID = -7681717592582493409L;
-
-    /**
-     * The person or party responsible for maintenance of the namespace, or {@code null} if not available.
-     *
-     * @see #getAuthority()
-     */
-    private final Citation authority;
-
-    /**
-     * Alphanumeric value identifying an instance in the namespace.
-     *
-     * @see #getCode()
-     */
-    private final String code;
-
-    /**
-     * Identifier or namespace in which the code is valid, or {@code null} if not available.
-     * This is often an abbreviation of the authority name.
-     *
-     * @see #getCodeSpace()
-     */
-    private final String codeSpace;
-
-    /**
-     * Version identifier for the namespace, as specified by the code authority.
-     * This version is included only when the {@linkplain #getCode code} uses versions.
-     * When appropriate, the edition is identified by the effective date, coded using ISO 8601 date format.
-     *
-     * @see #getVersion()
-     */
-    private final String version;
-
-    /**
-     * Natural language description of the meaning of the code value.
-     */
-    private final InternationalString description;
+@Deprecated
+public class ImmutableIdentifier extends org.apache.sis.referencing.ImmutableIdentifier {
 
     /**
      * Creates a new identifier from the specified one. This is a copy constructor which
@@ -162,13 +45,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
      * @see #castOrCopy(Identifier)
      */
     public ImmutableIdentifier(final Identifier identifier) {
-        ensureNonNull("identifier", identifier);
-        code        = identifier.getCode();
-        codeSpace   = identifier.getCodeSpace();
-        authority   = identifier.getAuthority();
-        version     = identifier.getVersion();
-        description = identifier.getDescription();
-        validate(null);
+        super(identifier);
     }
 
     /**
@@ -180,7 +57,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
      * @param code       alphanumeric value identifying an instance in the namespace. The code can not be null.
      */
     public ImmutableIdentifier(final Citation authority, final String codeSpace, final String code) {
-        this(authority, codeSpace, code, null, null);
+        super(authority, codeSpace, code);
     }
 
     /**
@@ -197,12 +74,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
     public ImmutableIdentifier(final Citation authority, final String codeSpace,
             final String code, final String version, final InternationalString description)
     {
-        this.code        = code;
-        this.codeSpace   = codeSpace;
-        this.authority   = authority;
-        this.version     = version;
-        this.description = description;
-        validate(null);
+        super(authority, codeSpace, code, version, description);
     }
 
     /**
@@ -264,57 +136,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
      * @throws IllegalArgumentException if a property has an illegal value.
      */
     public ImmutableIdentifier(final Map<String,?> properties) throws IllegalArgumentException {
-        ensureNonNull("properties", properties);
-        code        = trimWhitespaces(  property (properties, CODE_KEY,    String.class));
-        version     = trimWhitespaces(  property (properties, VERSION_KEY, String.class));
-        description = Types.toInternationalString(properties, DESCRIPTION_KEY);
-        /*
-         * Map String authority to one of the pre-defined constants (typically EPSG or OGC).
-         */
-        Object value = properties.get(AUTHORITY_KEY);
-        if (value instanceof String) {
-            authority = Citations.fromName((String) value);
-        } else if (value == null || value instanceof Citation) {
-            authority = (Citation) value;
-        } else {
-            throw illegalPropertyType(properties, AUTHORITY_KEY, value);
-        }
-        /*
-         * Complete the code space if it was not explicitly set. We take a short identifier (preferred) or title
-         * (as a fallback), with precedence given to Unicode identifier (see Citations.getIdentifier(…) for more
-         * information). Then the getCodeSpace(…) method applies additional restrictions in order to reduce the
-         * risk of false code space.
-         */
-        value = properties.get(CODESPACE_KEY);
-        if (value == null) {
-            codeSpace = Citations.toCodeSpace(authority);
-        } else if (value instanceof String) {
-            codeSpace = trimWhitespaces((String) value);
-        } else {
-            throw illegalPropertyType(properties, CODESPACE_KEY, value);
-        }
-        validate(properties);
-    }
-
-    /**
-     * Ensures that the properties of this {@code ImmutableIdentifier} are valid.
-     */
-    private void validate(final Map<String,?> properties) {
-        if (code == null || code.isEmpty()) {
-            throw new IllegalArgumentException(Errors.getResources(properties)
-                    .getString((code == null) ? Errors.Keys.MissingValueForProperty_1
-                                              : Errors.Keys.EmptyProperty_1, CODE_KEY));
-        }
-    }
-
-    /**
-     * Returns the exception to be thrown when a property if of illegal type.
-     */
-    private static IllegalArgumentException illegalPropertyType(
-            final Map<String,?> properties, final String key, final Object value)
-    {
-        return new IllegalArgumentException(Errors.getResources(properties)
-                .getString(Errors.Keys.IllegalPropertyValueClass_2, key, value.getClass()));
+        super(properties);
     }
 
     /**
@@ -341,258 +163,4 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
         }
         return new ImmutableIdentifier(object);
     }
-
-    /**
-     * The person or party responsible for maintenance of the namespace.
-     * The organization's abbreviation is often the same than this identifier {@linkplain #getCodeSpace() code space},
-     * but not necessarily.
-     *
-     * @return the authority, or {@code null} if not available.
-     */
-    @Override
-    public Citation getAuthority() {
-        return authority;
-    }
-
-    /**
-     * Alphanumeric value identifying an instance in the namespace.
-     *
-     * <div class="note"><b>Example:</b> {@code "4326"}.</div>
-     *
-     * @return value identifying an instance in the namespace (never {@code null}).
-     *
-     * @see org.apache.sis.referencing.NamedIdentifier#tip()
-     */
-    @Override
-    public String getCode() {
-        return code;
-    }
-
-    /**
-     * Identifier or namespace in which the code is valid.
-     * This is often the {@linkplain #getAuthority() authority}'s abbreviation, but not necessarily.
-     *
-     * <div class="note"><b>Example:</b> {@code "EPSG"}.</div>
-     *
-     * @return identifier or namespace in which the code is valid, or {@code null} if not available.
-     *
-     * @see org.apache.sis.referencing.NamedIdentifier#head()
-     * @see org.apache.sis.referencing.NamedIdentifier#scope()
-     */
-    @Override
-    public String getCodeSpace() {
-        return codeSpace;
-    }
-
-    /**
-     * The version identifier for the namespace, as specified by the code authority.
-     * This version is included only when the {@linkplain #getCode() code} uses versions.
-     * When appropriate, the edition is identified by the effective date, coded using ISO 8601 date format.
-     *
-     * <div class="note"><b>Example:</b> the version of the underlying EPSG database.</div>
-     *
-     * @return the version identifier for the namespace, or {@code null} if none.
-     */
-    @Override
-    public String getVersion() {
-        return version;
-    }
-
-    /**
-     * Natural language description of the meaning of the code value.
-     *
-     * <div class="note"><b>Example:</b> "World Geodetic System 1984".</div>
-     *
-     * @return the natural language description, or {@code null} if none.
-     *
-     * @since 0.5
-     */
-    @Override
-    public InternationalString getDescription() {
-        return description;
-    }
-
-    /**
-     * Returns a hash code value for this object.
-     */
-    @Override
-    public int hashCode() {
-        int hash = (int) serialVersionUID;
-        if (code != null) {
-            hash ^= code.hashCode();
-        }
-        if (codeSpace != null) {
-            hash = hash*31 + codeSpace.hashCode();
-        }
-        return hash;
-    }
-
-    /**
-     * Compares this object with the given one for equality.
-     *
-     * @param  object  the object to compare with this identifier.
-     * @return {@code true} if both objects are equal.
-     */
-    @Override
-    public boolean equals(final Object object) {
-        if (object == this) {
-            return true;
-        }
-        if (object != null && object.getClass() == getClass()) {
-            final ImmutableIdentifier that = (ImmutableIdentifier) object;
-            return Objects.equals(code,        that.code)      &&
-                   Objects.equals(codeSpace,   that.codeSpace) &&
-                   Objects.equals(authority,   that.authority) &&
-                   Objects.equals(version,     that.version)   &&
-                   Objects.equals(description, that.description);
-        }
-        return false;
-    }
-
-    /**
-     * Formats this identifier as a <cite>Well Known Text</cite> {@code Id[…]} element.
-     * See class javadoc for more information on the WKT format.
-     *
-     * @param  formatter  the formatter where to format the inner content of this WKT element.
-     * @return {@code "Id"} (WKT 2) or {@code "Authority"} (WKT 1).
-     *
-     * @see <a href="http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#33">WKT 2 specification §7.3.4</a>
-     */
-    @Override
-    protected String formatTo(final Formatter formatter) {
-        String keyword = null;
-        /*
-         * The code, codeSpace, authority and version local variables in this method usually have the exact same
-         * value than the fields of the same name in this class.  But we get those values by invoking the public
-         * methods in order to give to users a chance to override those properties.  The intent is also to use a
-         * consistent approach for all 'formatTo' implementations, since some other classes have no choice other
-         * than using the public methods.
-         */
-        final String code = getCode();
-        if (code != null) {
-            final String   codeSpace = getCodeSpace();
-            final Citation authority = getAuthority();
-            final String cs = (codeSpace != null) ? codeSpace : Identifiers.getIdentifier(authority, true);
-            if (cs != null) {
-                final Convention convention = formatter.getConvention();
-                if (convention.majorVersion() == 1) {
-                    keyword = WKTKeywords.Authority;
-                    formatter.append(cs,   ElementKind.IDENTIFIER);
-                    formatter.append(code, ElementKind.IDENTIFIER);
-                } else {
-                    keyword = WKTKeywords.Id;
-                    formatter.append(cs, ElementKind.IDENTIFIER);
-                    appendCode(formatter, code);
-                    final String version = getVersion();
-                    if (version != null) {
-                        appendCode(formatter, version);
-                    }
-                    /*
-                     * In order to simplify the WKT, format the citation only if it is different than the code space.
-                     * We will also omit the citation if this identifier is for a parameter value, because parameter
-                     * values are handled in a special way by the international standard:
-                     *
-                     *   - ISO 19162 explicitly said that we shall format the identifier for the root element only,
-                     *     and omit the identifier for all inner elements EXCEPT parameter values and operation method.
-                     *   - Exclusion of identifier for inner elements is performed by the Formatter class, so it does
-                     *     not need to be checked here.
-                     *   - Parameter values are numerous, while operation methods typically appear only once in a WKT
-                     *     document. So we will simplify the parameter values only (not the operation methods) except
-                     *     if the parameter value is the root element (in which case we will format full identifier).
-                     */
-                    final FormattableObject enclosing = formatter.getEnclosingElement(1);
-                    final boolean              isRoot = formatter.getEnclosingElement(2) == null;
-                    if (isRoot || !(enclosing instanceof ParameterValue<?>)) {
-                        final String citation = Identifiers.getIdentifier(authority, false);
-                        if (citation != null && !citation.equals(cs)) {
-                            formatter.append(new Cite(citation));
-                        }
-                    }
-                    /*
-                     * Do not format the optional URI element for internal convention,
-                     * because this property is currently computed rather than stored.
-                     * Other conventions format only for the ID[…] of root element.
-                     */
-                    if (isRoot && enclosing != null && convention != Convention.INTERNAL) {
-                        final String urn = NameMeaning.toURN(enclosing.getClass(), cs, version, code);
-                        if (urn != null) {
-                            formatter.append(new FormattableObject() {
-                                @Override protected String formatTo(final Formatter formatter) {
-                                    formatter.append(urn, null);
-                                    return WKTKeywords.URI;
-                                }
-                            });
-                        }
-                    }
-                }
-            }
-        }
-        return keyword;
-    }
-
-    /**
-     * Appends the given code or version number as an integer if possible, or as a text otherwise.
-     *
-     * <div class="note"><b>Implementation note:</b>
-     * ISO 19162 specifies "number or text". In Apache SIS, we restrict the numbers to integers
-     * because handling version numbers like "8.2" as floating point numbers can be confusing.</div>
-     */
-    private static void appendCode(final Formatter formatter, final String text) {
-        if (text != null) {
-            final long n;
-            try {
-                n = Long.parseLong(text);
-            } catch (NumberFormatException e) {
-                formatter.append(text, ElementKind.IDENTIFIER);
-                return;
-            }
-            formatter.append(n);
-        }
-    }
-
-    /**
-     * The {@code CITATION[…]} element inside an {@code ID[…]}.
-     */
-    private static final class Cite extends FormattableObject {
-        /** The value of the citation to format. */
-        private final String identifier;
-
-        /** Creates a new citation with the given value. */
-        Cite(final String identifier) {
-            this.identifier = identifier;
-        }
-
-        /** Formats the citation. */
-        @Override
-        protected String formatTo(final Formatter formatter) {
-            formatter.append(identifier, ElementKind.CITATION);
-            return WKTKeywords.Citation;
-        }
-    }
-
-
-
-
-    //////////////////////////////////////////////////////////////////////////////////////////////////
-    ////////                                                                                  ////////
-    ////////                               XML support with JAXB                              ////////
-    ////////                                                                                  ////////
-    ////////        The following methods are invoked by JAXB using reflection (even if       ////////
-    ////////        they are private) or are helpers for other methods invoked by JAXB.       ////////
-    ////////        Those methods can be safely removed if Geographic Markup Language         ////////
-    ////////        (GML) support is not needed.                                              ////////
-    ////////                                                                                  ////////
-    //////////////////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * Empty constructor for JAXB.
-     */
-    @SuppressWarnings("unused")
-    private ImmutableIdentifier() {
-        code        = null;
-        codeSpace   = null;
-        authority   = null;
-        version     = null;
-        description = null;
-    }
 }
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
index 2d4a2b7..ce0c72f 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
@@ -76,7 +76,7 @@ import org.apache.sis.util.Debug;
  * instead than a {@code String} argument. Those descriptors provide additional information like the various
  * {@linkplain DefaultParameterDescriptor#getAlias() aliases} under which the same parameter may be known.
  * By using this information, {@code Parameters} can choose the most appropriate parameter name or alias
- * (by searching for a common {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority() authority})
+ * (by searching for a common {@linkplain org.apache.sis.referencing.ImmutableIdentifier#getAuthority() authority})
  * when it delegates its work to the {@code parameter(String)} method.
  *
  * <div class="note"><b>Example:</b>
@@ -467,7 +467,7 @@ public abstract class Parameters implements ParameterValueGroup, Cloneable {
      *       in this {@code ParameterValueGroup}, chosen as below:
      *     <ul>
      *       <li>a name or alias defined by the same
-     *           {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier#getAuthority() authority}, if any;</li>
+     *           {@linkplain org.apache.sis.referencing.ImmutableIdentifier#getAuthority() authority}, if any;</li>
      *       <li>an arbitrary name or alias otherwise.</li>
      *     </ul>
      *   </li>
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
index 1e606f0..f501ddb 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
@@ -513,13 +513,12 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident
      * Returns a narrative explanation of the role of this object.
      *
      * <div class="section">Default value</div>
-     * The default implementation returns the
-     * {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier#getDescription() description}
+     * The default implementation returns the {@linkplain ImmutableIdentifier#getDescription() description}
      * provided by this object's {@linkplain #getName() name}.
      *
      * @return a narrative explanation of the role of this object, or {@code null} if none.
      *
-     * @see org.apache.sis.metadata.iso.ImmutableIdentifier#getDescription()
+     * @see ImmutableIdentifier#getDescription()
      *
      * @since 0.6
      */
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
index cdce1fa..2357abe 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
@@ -30,7 +30,6 @@ import org.opengis.util.InternationalString;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.referencing.IdentifiedObject;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.internal.referencing.DeprecatedCode;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
index 117c21d..353d086 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
@@ -344,7 +344,7 @@ public final class IdentifiedObjects extends Static {
      * @param  object  the identified object, or {@code null}.
      * @return the first name, alias or identifier which is a valid Unicode identifier, or {@code null} if none.
      *
-     * @see org.apache.sis.metadata.iso.ImmutableIdentifier
+     * @see ImmutableIdentifier
      * @see Citations#getUnicodeIdentifier(Citation)
      * @see CharSequences#isUnicodeIdentifier(CharSequence)
      *
@@ -759,7 +759,7 @@ public final class IdentifiedObjects extends Static {
      * @param  identifier  the identifier, or {@code null}.
      * @return a string representation of the given identifier, or {@code null}.
      *
-     * @see org.apache.sis.metadata.iso.ImmutableIdentifier#toString()
+     * @see ImmutableIdentifier#toString()
      * @see NamedIdentifier#toString()
      */
     public static String toString(final Identifier identifier) {
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
similarity index 94%
copy from core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
copy to core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
index bb92d69..72d2ac5 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.metadata.iso;
+package org.apache.sis.referencing;
 
 import java.util.Map;
 import java.util.Locale;
@@ -98,16 +98,16 @@ import static org.apache.sis.util.collection.Containers.property;
  * </code></blockquote>
  *
  * </li><li><b>XML in metadata objects</b><br>
- * The XML representation of identifier in a metadata is defined by {@link DefaultIdentifier}.
+ * The XML representation of identifier in a metadata is defined by {@link org.apache.sis.metadata.iso.DefaultIdentifier}.
  * </li></ul>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
  *
- * @see DefaultIdentifier
+ * @see org.apache.sis.metadata.iso.DefaultIdentifier
  * @see org.apache.sis.referencing.IdentifiedObjects#toURN(Class, Identifier)
  *
- * @since 0.3
+ * @since 1.0
  * @module
  */
 @TitleProperty(name = "code")
@@ -115,7 +115,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
     /**
      * For cross-version compatibility.
      */
-    private static final long serialVersionUID = -7681717592582493409L;
+    private static final long serialVersionUID = 1804606250548055829L;
 
     /**
      * The person or party responsible for maintenance of the namespace, or {@code null} if not available.
@@ -569,30 +569,4 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
             return WKTKeywords.Citation;
         }
     }
-
-
-
-
-    //////////////////////////////////////////////////////////////////////////////////////////////////
-    ////////                                                                                  ////////
-    ////////                               XML support with JAXB                              ////////
-    ////////                                                                                  ////////
-    ////////        The following methods are invoked by JAXB using reflection (even if       ////////
-    ////////        they are private) or are helpers for other methods invoked by JAXB.       ////////
-    ////////        Those methods can be safely removed if Geographic Markup Language         ////////
-    ////////        (GML) support is not needed.                                              ////////
-    ////////                                                                                  ////////
-    //////////////////////////////////////////////////////////////////////////////////////////////////
-
-    /**
-     * Empty constructor for JAXB.
-     */
-    @SuppressWarnings("unused")
-    private ImmutableIdentifier() {
-        code        = null;
-        codeSpace   = null;
-        authority   = null;
-        version     = null;
-        description = null;
-    }
 }
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
index 521921d..4de3338 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
@@ -36,7 +36,6 @@ import org.opengis.parameter.InvalidParameterValueException;
 import org.apache.sis.internal.metadata.NameToIdentifier;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.metadata.iso.citation.Citations;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.util.ArgumentChecks;
 
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
index a8fcd20..b82b997 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
@@ -28,7 +28,7 @@ import org.opengis.referencing.cs.EllipsoidalCS;
 import org.opengis.referencing.cs.CoordinateSystem;
 import org.opengis.referencing.cs.CoordinateSystemAxis;
 import org.apache.sis.metadata.iso.citation.Citations;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.cs.AxesConvention;
 import org.apache.sis.referencing.AbstractReferenceSystem;
 import org.apache.sis.io.wkt.Formatter;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
index 05dde98..7285714 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
@@ -84,7 +84,6 @@ import org.apache.sis.internal.system.Semaphores;
 import org.apache.sis.internal.util.Constants;
 import org.apache.sis.internal.util.CollectionsExt;
 import org.apache.sis.internal.util.StandardDateFormat;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.iso.citation.DefaultOnlineResource;
 import org.apache.sis.metadata.iso.extent.DefaultExtent;
@@ -92,6 +91,7 @@ import org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox;
 import org.apache.sis.parameter.DefaultParameterDescriptor;
 import org.apache.sis.parameter.DefaultParameterDescriptorGroup;
 import org.apache.sis.referencing.NamedIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.AbstractIdentifiedObject;
 import org.apache.sis.referencing.cs.CoordinateSystems;
 import org.apache.sis.referencing.datum.BursaWolfParameters;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
index c59806a..fe59da1 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
@@ -34,7 +34,7 @@ import org.opengis.referencing.operation.SingleOperation;
 import org.apache.sis.internal.referencing.CoordinateOperations;
 import org.apache.sis.internal.referencing.SignReversalComment;
 import org.apache.sis.internal.referencing.provider.AbstractProvider;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.util.collection.Containers;
 import org.apache.sis.util.Deprecable;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CoordinateSystemTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CoordinateSystemTransform.java
index f363e2e..ece34a9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CoordinateSystemTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CoordinateSystemTransform.java
@@ -33,11 +33,11 @@ import org.apache.sis.internal.referencing.Resources;
 import org.apache.sis.internal.referencing.WKTUtilities;
 import org.apache.sis.internal.system.DefaultFactories;
 import org.apache.sis.internal.util.Constants;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.parameter.DefaultParameterDescriptorGroup;
 import org.apache.sis.referencing.cs.AxesConvention;
 import org.apache.sis.referencing.cs.CoordinateSystems;
+import org.apache.sis.referencing.ImmutableIdentifier;
 
 
 /**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
index f756550..5e6c8d9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
@@ -49,7 +49,7 @@ import org.apache.sis.internal.referencing.provider.GeographicToGeocentric;
 import org.apache.sis.internal.referencing.provider.Geographic3Dto2D;
 import org.apache.sis.internal.metadata.ReferencingServices;
 import org.apache.sis.parameter.DefaultParameterDescriptorGroup;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.operation.matrix.Matrix3;
 import org.apache.sis.referencing.operation.matrix.Matrices;
 import org.apache.sis.referencing.operation.matrix.MatrixSIS;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java b/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
index 0df3a17..79b2b2a 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
@@ -21,7 +21,7 @@ import org.opengis.referencing.crs.GeographicCRS;
 import org.opengis.metadata.Identifier;
 import org.apache.sis.internal.util.Constants;
 import org.apache.sis.internal.simple.SimpleCitation;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.test.DependsOnMethod;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
index 8ec3dae..6aef74b 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java
@@ -24,7 +24,7 @@ import org.opengis.parameter.ParameterDescriptor;
 import org.apache.sis.measure.Range;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.measure.MeasurementRange;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.internal.util.Constants;
 import org.apache.sis.io.wkt.Convention;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
index 04b92b8..ad448a4 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractIdentifiedObjectTest.java
@@ -24,7 +24,6 @@ import java.util.Locale;
 import java.util.Collections;
 import org.opengis.test.Validators;
 import org.opengis.metadata.Identifier;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.referencing.datum.AbstractDatum;
 import org.apache.sis.internal.jaxb.referencing.Code;
 import org.apache.sis.internal.jaxb.Context;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
index e378d7a..f2a2e13 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/AbstractReferenceSystemTest.java
@@ -21,7 +21,6 @@ import java.util.HashMap;
 import java.util.Locale;
 import org.opengis.test.Validators;
 import org.apache.sis.io.wkt.Convention;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.metadata.iso.extent.DefaultExtent;
 import org.apache.sis.metadata.iso.extent.DefaultTemporalExtent;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/BuilderTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/BuilderTest.java
index 092441c..f00a858 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/BuilderTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/BuilderTest.java
@@ -27,7 +27,6 @@ import org.opengis.metadata.Identifier;
 import org.apache.sis.internal.simple.SimpleCitation;
 import org.apache.sis.internal.simple.SimpleIdentifier;
 import org.apache.sis.internal.system.DefaultFactories;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/ImmutableIdentifierTest.java
similarity index 99%
rename from core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
rename to core/sis-referencing/src/test/java/org/apache/sis/referencing/ImmutableIdentifierTest.java
index 6ec6251..297e5b6 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/metadata/iso/ImmutableIdentifierTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/ImmutableIdentifierTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.metadata.iso;
+package org.apache.sis.referencing;
 
 import java.util.Map;
 import java.util.HashMap;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java
index ce3d249..de68ede 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/NormalizerTest.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.Collections;
 import org.opengis.referencing.cs.AxisDirection;
 import org.opengis.referencing.cs.CoordinateSystemAxis;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.IdentifiedObjects;
 import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.measure.Units;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java
index 714ab64..ac4f8b7 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/DefaultTemporalDatumTest.java
@@ -21,7 +21,7 @@ import java.util.Map;
 import java.util.HashMap;
 import javax.xml.bind.JAXBException;
 import org.apache.sis.io.wkt.Convention;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.HardCodedCitations;
 import org.apache.sis.test.xml.TestCase;
 import org.junit.Test;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
index 9ac9504..ef0aa2f 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
@@ -24,7 +24,7 @@ import org.opengis.parameter.ParameterDescriptorGroup;
 import org.opengis.referencing.operation.OperationMethod;
 import org.apache.sis.io.wkt.Convention;
 import org.apache.sis.util.ComparisonMode;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.parameter.DefaultParameterDescriptorGroup;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java b/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
index 67cc8ee..27b3458 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
@@ -55,6 +55,8 @@ import org.apache.sis.metadata.iso.distribution.*;
 import org.apache.sis.metadata.iso.extent.*;
 import org.apache.sis.metadata.iso.identification.*;
 import org.apache.sis.metadata.iso.spatial.*;
+import org.apache.sis.referencing.NamedIdentifier;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.datum.DefaultVerticalDatum;
 import org.apache.sis.referencing.cs.DefaultCoordinateSystemAxis;
 import org.apache.sis.referencing.cs.DefaultVerticalCS;
@@ -63,7 +65,6 @@ import org.apache.sis.internal.jaxb.metadata.replace.ReferenceSystemMetadata;
 import org.apache.sis.internal.xml.LegacyNamespaces;
 import org.apache.sis.internal.jaxb.gcx.Anchor;
 import org.apache.sis.internal.system.Loggers;
-import org.apache.sis.referencing.NamedIdentifier;
 import org.apache.sis.util.iso.SimpleInternationalString;
 import org.apache.sis.util.ComparisonMode;
 import org.apache.sis.xml.Namespaces;
@@ -77,6 +78,7 @@ import static java.util.Collections.singleton;
 import static java.util.Collections.singletonMap;
 
 // Test dependencies
+
 import org.apache.sis.test.LoggingWatcher;
 import org.apache.sis.test.TestUtilities;
 import org.apache.sis.test.xml.DocumentComparator;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java b/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
index f46a2db..a5f8691 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
@@ -50,9 +50,9 @@ import org.junit.BeforeClass;
     org.apache.sis.io.wkt.ColorsTest.class,
     org.apache.sis.io.wkt.FormatterTest.class,
     org.apache.sis.io.wkt.ElementTest.class,
-    org.apache.sis.metadata.iso.ImmutableIdentifierTest.class,
 
     // Identification of objects, needed by large parts of sis-referencing.
+    org.apache.sis.referencing.ImmutableIdentifierTest.class,
     org.apache.sis.referencing.NamedIdentifierTest.class,
     org.apache.sis.referencing.IdentifiedObjectsTest.class,
     org.apache.sis.referencing.AbstractIdentifiedObjectTest.class,
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
index 223dd63..9ea0e55 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
@@ -1532,7 +1532,7 @@ cmp:    while (ia < lga) {
      * ‘{@code !}’, ‘{@code #}’, ‘{@code *}’, ‘{@code /}’, ‘{@code ?}’ and most other punctuation characters are not.
      *
      * <div class="section">Usage in Apache SIS</div>
-     * In its handling of {@linkplain org.apache.sis.metadata.iso.ImmutableIdentifier identifiers}, Apache SIS favors
+     * In its handling of {@linkplain org.apache.sis.referencing.ImmutableIdentifier identifiers}, Apache SIS favors
      * Unicode identifiers without {@linkplain Character#isIdentifierIgnorable(int) ignorable} characters since those
      * identifiers are legal XML identifiers except for the above-cited rarely used characters. As a side effect,
      * this policy excludes ‘{@code :}’, ‘{@code -}’ and ‘{@code .}’ which would normally be legal XML identifiers.
@@ -1543,7 +1543,7 @@ cmp:    while (ia < lga) {
      * @param  identifier  the character sequence to test, or {@code null}.
      * @return {@code true} if the given character sequence is a legal Unicode identifier.
      *
-     * @see org.apache.sis.metadata.iso.ImmutableIdentifier
+     * @see org.apache.sis.referencing.ImmutableIdentifier
      * @see org.apache.sis.metadata.iso.citation.Citations#getUnicodeIdentifier(Citation)
      * @see org.apache.sis.referencing.IdentifiedObjects#getSimpleNameOrIdentifier(IdentifiedObject)
      */
diff --git a/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java b/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java
index 50674f3..efbf468 100644
--- a/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java
+++ b/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4Factory.java
@@ -37,6 +37,7 @@ import org.opengis.referencing.datum.*;
 import org.opengis.referencing.operation.*;
 import org.opengis.referencing.IdentifiedObject;
 import org.apache.sis.referencing.IdentifiedObjects;
+import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.operation.DefaultConversion;
 import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 import org.apache.sis.referencing.factory.InvalidGeodeticParameterException;
@@ -46,7 +47,6 @@ import org.apache.sis.referencing.CommonCRS;
 import org.apache.sis.internal.util.Constants;
 import org.apache.sis.metadata.iso.citation.Citations;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
-import org.apache.sis.metadata.iso.ImmutableIdentifier;
 import org.apache.sis.internal.referencing.LazySet;
 import org.apache.sis.internal.referencing.AxisDirections;
 import org.apache.sis.internal.referencing.ReferencingFactoryContainer;


Mime
View raw message