You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2015/01/26 20:12:27 UTC
svn commit: r1654875 [1/2] - in /sis/branches/JDK6: ./
core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/
core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/
core/sis-metadata/src/test/java/org/apache/sis/metadata/ core...
Author: desruisseaux
Date: Mon Jan 26 19:12:25 2015
New Revision: 1654875
URL: http://svn.apache.org/r1654875
Log:
Merge from the JDK7 branch.
Added:
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/OperationMethods.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/OperationMethods.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/
- copied from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java
- copied, changed from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
- copied, changed from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/
- copied from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java
- copied, changed from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultFormulaTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
- copied, changed from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/builder/
- copied from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/builder/
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformsTest.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformsTest.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/math/CompoundDirectPositions.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/CompoundDirectPositions.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/math/Line.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/Line.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/math/Plane.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/Plane.java
sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/math/LineTest.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/math/LineTest.java
sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/math/PlaneTest.java
- copied unchanged from r1654869, sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/math/PlaneTest.java
Removed:
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/provider/
Modified:
sis/branches/JDK6/ (props changed)
sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java
sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/HardCoded.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/GeneralMatrix.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CopyTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/IdentityTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java
sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ProjectiveTransform.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueGroupTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParametersTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/datum/HardCodedDatum.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransformTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CopyTransformTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ProjectiveTransformTest.java
sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/Citations.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/math/package-info.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/Characters.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/util/iso/AbstractNameTest.java
sis/branches/JDK6/src/main/javadoc/stylesheet.css
Propchange: sis/branches/JDK6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 26 19:12:25 2015
@@ -1,4 +1,4 @@
/sis/branches/Android:1430670-1480699
-/sis/branches/JDK7:1394913-1652466
-/sis/branches/JDK8:1584960-1652464
+/sis/branches/JDK7:1394913-1654869
+/sis/branches/JDK8:1584960-1654866
/sis/trunk:1394364-1508466,1519089-1519674
Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -23,6 +23,7 @@ import org.opengis.referencing.crs.*;
import org.opengis.referencing.datum.*;
import org.opengis.referencing.operation.*;
import org.apache.sis.util.Static;
+import org.apache.sis.internal.util.Citations;
/**
@@ -90,7 +91,7 @@ public final class NameMeaning extends S
* @return {@code true} if the given code space is known to use the URN syntax.
*/
public static boolean usesURN(final String codeSpace) {
- return (codeSpace != null) && codeSpace.equalsIgnoreCase("EPSG");
+ return (codeSpace != null) && codeSpace.equalsIgnoreCase(Citations.EPSG);
}
/**
Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -38,6 +38,9 @@ import org.apache.sis.util.resources.Err
* This class searches for the {@link org.apache.sis.internal.referencing.ServicesForMetadata}
* implementation using Java reflection.
*
+ * <p>This class also opportunistically defines some constants related to "referencing by coordinates"
+ * but needed by metadata.</p>
+ *
* @author Martin Desruisseaux (Geomatys)
* @since 0.3 (derived from geotk-3.18)
* @version 0.5
@@ -45,12 +48,13 @@ import org.apache.sis.util.resources.Err
*/
public abstract class ReferencingServices extends SystemListener {
/**
- * The length of one nautical mile, in metres.
+ * The length of one nautical mile, which is {@value} metres.
*/
public static final double NAUTICAL_MILE = 1852;
/**
- * The GRS80 {@linkplain org.apache.sis.referencing.datum.DefaultEllipsoid#getAuthalicRadius() authalic radius}.
+ * The GRS80 {@linkplain org.apache.sis.referencing.datum.DefaultEllipsoid#getAuthalicRadius() authalic radius},
+ * which is {@value} metres.
*/
public static final double AUTHALIC_RADIUS = 6371007;
Modified: sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -18,9 +18,10 @@ package org.apache.sis.metadata.iso.cita
import org.opengis.metadata.citation.Citation;
import org.apache.sis.util.Static;
+import org.apache.sis.util.CharSequences;
import org.apache.sis.xml.IdentifierSpace;
import org.apache.sis.internal.simple.SimpleCitation;
-import org.apache.sis.util.CharSequences;
+import org.apache.sis.metadata.iso.DefaultIdentifier; // For javadoc
/**
@@ -37,7 +38,7 @@ import org.apache.sis.util.CharSequences
*
* @author Martin Desruisseaux (IRD, Geomatys)
* @since 0.3 (derived from geotk-2.2)
- * @version 0.4
+ * @version 0.5
* @module
*/
public final class Citations extends Static {
@@ -125,11 +126,17 @@ public final class Citations extends Sta
public static final IdentifierSpace<String> PROJ4 = new Authority<String>("Proj.4", "PROJ4");
/**
- * The <a href="http://www.epsg.org">European Petroleum Survey Group</a> authority.
- * This citation is used as an authority for
+ * The <a href="http://www.epsg.org">EPSG</a> dataset. This citation is used as an authority for
* {@linkplain org.opengis.referencing.crs.CoordinateReferenceSystem coordinate reference system}
* identifiers.
*
+ * <div class="note"><b>Historical note:</b>
+ * The EPSG acronym meaning was <cite>European Petroleum Survey Group</cite>.
+ * But this meaning does not apply anymore since the European and American associations merged
+ * into the <cite>International Association of Oil & Gas producers</cite> (IOGP).
+ * The legacy acronym now applies only to the database Coordinate Reference System definitions,
+ * known as <cite>EPSG dataset</cite>.</div>
+ *
* @see #OGP
* @see #AUTO
* @see #AUTO2
@@ -138,7 +145,9 @@ public final class Citations extends Sta
*
* @since 0.4
*/
- public static final IdentifierSpace<Integer> EPSG = new Authority<Integer>("EPSG", "EPSG");
+ public static final IdentifierSpace<Integer> EPSG = new Authority<Integer>(
+ org.apache.sis.internal.util.Citations.EPSG,
+ org.apache.sis.internal.util.Citations.EPSG);
/**
* <cite>International Standard Book Number</cite> (ISBN) defined by ISO-2108.
@@ -180,8 +189,8 @@ public final class Citations extends Sta
*
* <ul>
* <li>If the given title is {@code null} or empty (ignoring spaces), then this method returns {@code null}.</li>
- * <li>Otherwise if the given name matches a {@linkplain Citation#getTitle() title} or an
- * {@linkplain Citation#getAlternateTitles() alternate titles} of one of the pre-defined
+ * <li>Otherwise if the given name matches a {@linkplain DefaultCitation#getTitle() title} or an
+ * {@linkplain DefaultCitation#getAlternateTitles() alternate titles} of one of the pre-defined
* constants ({@link #EPSG}, {@link #GEOTIFF}, <i>etc.</i>), then that constant is returned.</li>
* <li>Otherwise, a new citation is created with the specified name as the title.</li>
* </ul>
@@ -202,8 +211,8 @@ public final class Citations extends Sta
}
/**
- * Returns {@code true} if at least one {@linkplain Citation#getTitle() title} or
- * {@linkplain Citation#getAlternateTitles() alternate title} in {@code c1} is leniently
+ * Returns {@code true} if at least one {@linkplain DefaultCitation#getTitle() title} or
+ * {@linkplain DefaultCitation#getAlternateTitles() alternate title} in {@code c1} is leniently
* equal to a title or alternate title in {@code c2}. The comparison is case-insensitive
* and ignores every character which is not a {@linkplain Character#isLetterOrDigit(int)
* letter or a digit}. The titles ordering is not significant.
@@ -218,8 +227,8 @@ public final class Citations extends Sta
}
/**
- * Returns {@code true} if the {@linkplain Citation#getTitle() title} or any
- * {@linkplain Citation#getAlternateTitles() alternate title} in the given citation
+ * Returns {@code true} if the {@linkplain DefaultCitation#getTitle() title} or any
+ * {@linkplain DefaultCitation#getAlternateTitles() alternate title} in the given citation
* matches the given string. The comparison is case-insensitive and ignores every character
* which is not a {@linkplain Character#isLetterOrDigit(int) letter or a digit}.
*
@@ -233,42 +242,49 @@ public final class Citations extends Sta
}
/**
- * Returns {@code true} if at least one {@linkplain Citation#getIdentifiers() identifier} in
- * {@code c1} is equal to an identifier in {@code c2}. The comparison is case-insensitive
- * and ignores every character which is not a {@linkplain Character#isLetterOrDigit(int)
- * letter or a digit}. The identifier ordering is not significant.
+ * Returns {@code true} if at least one {@linkplain DefaultCitation#getIdentifiers() identifier}
+ * {@linkplain DefaultIdentifier#getCode() code} in {@code c1} is equal to an identifier code in
+ * {@code c2}. {@linkplain DefaultIdentifier#getCodeSpace() Code spaces} are compared only if
+ * provided in the two identifiers being compared. Comparisons are case-insensitive and ignores
+ * every character which is not a {@linkplain Character#isLetterOrDigit(int) letter or a digit}.
+ * The identifier ordering is not significant.
*
* <p>If (and <em>only</em> if) the citations do not contains any identifier, then this method
* fallback on titles comparison using the {@link #titleMatches(Citation,Citation) titleMatches}
* method. This fallback exists for compatibility with client codes using the citation
- * {@linkplain Citation#getTitle() titles} without identifiers.</p>
+ * {@linkplain DefaultCitation#getTitle() titles} without identifiers.</p>
*
* @param c1 The first citation to compare, or {@code null}.
* @param c2 the second citation to compare, or {@code null}.
* @return {@code true} if both arguments are non-null, and at least one identifier,
* title or alternate title matches.
+ *
+ * @see org.apache.sis.referencing.IdentifierMatching
*/
public static boolean identifierMatches(final Citation c1, final Citation c2) {
return org.apache.sis.internal.util.Citations.identifierMatches(c1, c2);
}
/**
- * Returns {@code true} if any {@linkplain Citation#getIdentifiers() identifiers} in the given
- * citation matches the given string. The comparison is case-insensitive and ignores every
- * character which is not a {@linkplain Character#isLetterOrDigit(int) letter or a digit}.
+ * Returns {@code true} if at least one {@linkplain DefaultCitation#getIdentifiers() identifier}
+ * in the given citation have a {@linkplain DefaultIdentifier#getCode() code} matching the given
+ * string. The comparison is case-insensitive and ignores every character which is not a
+ * {@linkplain Character#isLetterOrDigit(int) letter or a digit}.
*
* <p>If (and <em>only</em> if) the citation does not contain any identifier, then this method
* fallback on titles comparison using the {@link #titleMatches(Citation,String) titleMatches}
* method. This fallback exists for compatibility with client codes using citation
- * {@linkplain Citation#getTitle() titles} without identifiers.</p>
+ * {@linkplain DefaultCitation#getTitle() title} without identifiers.</p>
*
* @param citation The citation to check for, or {@code null}.
* @param identifier The identifier to compare, or {@code null}.
* @return {@code true} if both arguments are non-null, and the title or alternate title
* matches the given string.
+ *
+ * @see org.apache.sis.referencing.IdentifierMatching
*/
public static boolean identifierMatches(final Citation citation, final String identifier) {
- return org.apache.sis.internal.util.Citations.identifierMatches(citation, identifier);
+ return org.apache.sis.internal.util.Citations.identifierMatches(citation, null, identifier);
}
/**
@@ -278,14 +294,14 @@ public final class Citations extends Sta
*
* <ul>
* <li>If the given citation is {@code null}, then this method returns {@code null}.</li>
- * <li>Otherwise if the citation contains at least one {@linkplain Citation#getIdentifiers() identifier}, then:
+ * <li>Otherwise if the citation contains at least one {@linkplain DefaultCitation#getIdentifiers() identifier}, then:
* <ul>
* <li>If at least one identifier is a {@linkplain org.apache.sis.util.CharSequences#isUnicodeIdentifier
* unicode identifier}, then the shortest of those identifiers is returned.</li>
* <li>Otherwise the shortest identifier is returned, despite not being a Unicode identifier.</li>
* </ul></li>
- * <li>Otherwise if the citation contains at least one {@linkplain Citation#getTitle() title} or
- * {@linkplain Citation#getAlternateTitles() alternate title}, then:
+ * <li>Otherwise if the citation contains at least one {@linkplain DefaultCitation#getTitle() title} or
+ * {@linkplain DefaultCitation#getAlternateTitles() alternate title}, then:
* <ul>
* <li>If at least one title is a {@linkplain org.apache.sis.util.CharSequences#isUnicodeIdentifier
* unicode identifier}, then the shortest of those titles is returned.</li>
Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -40,7 +40,7 @@ import org.apache.sis.test.TestCase;
import org.junit.Test;
import static java.util.Collections.singleton;
-import static org.apache.sis.test.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
import static org.apache.sis.test.TestUtilities.getSingleton;
@@ -253,7 +253,7 @@ public final strictfp class MetadataStan
assertEquals("title", "European Petroleum Survey Group", map.get("getTitle").toString());
final Object identifiers = map.get("identifiers");
assertInstanceOf("identifiers", Collection.class, identifiers);
- HardCodedCitations.assertIdentifiersFor("EPSG", (Collection<?>) identifiers);
+ assertContainsIdentifierCode("EPSG", (Collection<?>) identifiers);
}
/**
Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -63,7 +63,7 @@ import org.apache.sis.test.TestCase;
import org.junit.Test;
import static java.util.Collections.singleton;
-import static org.opengis.test.Assert.*;
+import static org.apache.sis.test.MetadataAssert.*;
import static org.apache.sis.test.TestUtilities.getSingleton;
import static org.apache.sis.metadata.PropertyAccessor.APPEND;
import static org.apache.sis.metadata.PropertyAccessor.RETURN_NULL;
@@ -294,7 +294,7 @@ public final strictfp class PropertyAcce
// Collection of Identifiers
final Object identifiers = accessor.get(accessor.indexOf("identifiers", true), instance);
assertInstanceOf("identifiers", Collection.class, identifiers);
- HardCodedCitations.assertIdentifiersFor("ISO", (Collection<?>) identifiers);
+ assertContainsIdentifierCode("ISO", (Collection<?>) identifiers);
}
/**
@@ -608,7 +608,7 @@ public final strictfp class PropertyAcce
assertInstanceOf("identifiers", Collection.class, target);
assertNotSame("Distinct objects shall have distinct collections.", source, target);
assertEquals ("The two collections shall have the same content.", source, target);
- HardCodedCitations.assertIdentifiersFor("EPSG", (Collection<?>) target);
+ assertContainsIdentifierCode("EPSG", (Collection<?>) target);
// Set the identifiers to null, which should clear the collection.
assertEquals("Expected the previous value.", source, accessor.set(index, citation, null, RETURN_PREVIOUS));
Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/HardCodedCitations.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -17,8 +17,6 @@
package org.apache.sis.metadata.iso.citation;
import java.net.URI;
-import java.util.Collection;
-import org.opengis.metadata.Identifier;
import org.opengis.metadata.citation.Role;
import org.opengis.metadata.citation.Citation;
import org.opengis.metadata.citation.OnLineFunction;
@@ -27,7 +25,6 @@ import org.apache.sis.metadata.iso.Defau
import org.apache.sis.util.iso.SimpleInternationalString;
import org.apache.sis.util.Static;
-import static org.opengis.test.Assert.*;
import static java.util.Collections.singleton;
@@ -40,7 +37,7 @@ import static java.util.Collections.sing
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.3 (derived from geotk-2.4)
- * @version 0.4
+ * @version 0.5
* @module
*/
public final strictfp class HardCodedCitations extends Static {
@@ -169,23 +166,4 @@ public final strictfp class HardCodedCit
*/
private HardCodedCitations() {
}
-
- /**
- * Asserts that the given {@linkplain Identifier#getCode() identifier code}
- * is found in the collection of identifiers.
- *
- * @param expected The expected identifier code (typically {@code "ISO"} or {@code "EPSG"}).
- * @param identifiers The collection to validate. Should be a collection of {@link Identifier}.
- */
- public static void assertIdentifiersFor(final String expected, final Collection<?> identifiers) {
- assertNotNull("identifiers", identifiers);
- int count = 0;
- for (final Object id : identifiers) {
- assertInstanceOf("identifier", Identifier.class, id);
- if (((Identifier) id).getCode().equals(expected)) {
- count++;
- }
- }
- assertEquals("Unexpected amount of identifiers.", 1, count);
- }
}
Modified: sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -16,10 +16,13 @@
*/
package org.apache.sis.test;
+import java.util.Collection;
+import org.opengis.metadata.Identifier;
import org.opengis.referencing.IdentifiedObject;
import org.apache.sis.io.wkt.Symbols;
import org.apache.sis.io.wkt.WKTFormat;
import org.apache.sis.io.wkt.Convention;
+import org.apache.sis.internal.util.Citations;
/**
@@ -28,7 +31,7 @@ import org.apache.sis.io.wkt.Convention;
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.4 (derived from geotk-3.00)
- * @version 0.4
+ * @version 0.5
* @module
*/
public strictfp class MetadataAssert extends Assert {
@@ -51,6 +54,44 @@ public strictfp class MetadataAssert ext
}
/**
+ * Asserts that the given identifier has the expected code and the {@code "EPSG"} code space.
+ * The authority is expected to have the {@code "OGP"} title or alternate title.
+ *
+ * @param expected The expected identifier code.
+ * @param identifier The identifier to verify.
+ *
+ * @since 0.5
+ */
+ public static void assertEpsgIdentifierEquals(final String expected, final Identifier identifier) {
+ assertNotNull(identifier);
+ assertEquals("code", expected, identifier.getCode());
+ assertEquals("codeSpace", Citations.EPSG, identifier.getCodeSpace());
+ assertEquals("authority", "OGP", Citations.getIdentifier(identifier.getAuthority()));
+ }
+
+ /**
+ * Asserts that the given collection contains exactly one identifier with the given
+ * {@linkplain Identifier#getCode() code}. The {@linkplain Identifier#getCodeSpace()
+ * code space} and authority are ignored.
+ *
+ * @param expected The expected identifier code (typically {@code "ISO"} or {@code "EPSG"}).
+ * @param identifiers The collection to validate. Should be a collection of {@link Identifier}.
+ *
+ * @since 0.5
+ */
+ public static void assertContainsIdentifierCode(final String expected, final Collection<?> identifiers) {
+ assertNotNull("identifiers", identifiers);
+ int count = 0;
+ for (final Object id : identifiers) {
+ assertInstanceOf("identifier", Identifier.class, id);
+ if (((Identifier) id).getCode().equals(expected)) {
+ count++;
+ }
+ }
+ assertEquals("Unexpected amount of identifiers.", 1, count);
+ }
+
+ /**
* Asserts that the WKT 2 of the given object is equal to the expected one.
* This method expected the {@code “…”} quotation marks instead of {@code "…"}
* for easier readability of {@link String} constants in Java code.
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/HardCoded.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/HardCoded.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/HardCoded.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/HardCoded.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -17,6 +17,7 @@
package org.apache.sis.internal.referencing;
import org.apache.sis.util.Static;
+import org.apache.sis.internal.util.Citations;
/**
@@ -31,7 +32,7 @@ public final class HardCoded extends Sta
/**
* The {@value} code space.
*/
- public static final String EPSG = "EPSG";
+ public static final String EPSG = Citations.EPSG;
/**
* The {@value} code space.
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -31,7 +31,7 @@ import org.apache.sis.parameter.TensorPa
import org.apache.sis.referencing.operation.matrix.Matrix2;
import org.apache.sis.referencing.operation.matrix.AffineTransforms2D;
import org.apache.sis.referencing.operation.transform.LinearTransform;
-import org.apache.sis.referencing.operation.provider.Affine;
+import org.apache.sis.internal.referencing.provider.Affine;
import org.apache.sis.io.wkt.Formatter;
import org.apache.sis.util.LenientComparable;
import org.apache.sis.util.ComparisonMode;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -562,6 +562,7 @@ public class ParameterFormat extends Tab
new TableAppender(out, columnSeparator) : new TableAppender(out);
table.setMultiLinesCells(true);
table.nextLine(horizontalBorder);
+ int numColumnsBeforeValue = 0;
for (int i=0; ; i++) {
boolean end = false;
final short key;
@@ -600,6 +601,7 @@ public class ParameterFormat extends Tab
}
if (end) break;
nextColumn(table);
+ numColumnsBeforeValue++;
}
table.nextLine();
/*
@@ -667,8 +669,25 @@ public class ParameterFormat extends Tab
Object value = row.values.get(i);
if (value != null) {
if (i != 0) {
- table.append(lineSeparator);
+ /*
+ * If the same parameter is repeated more than once (not allowed by ISO 19111,
+ * but this extra flexibility is allowed by Apache SIS), write the ditto mark
+ * in all previous columns (name, type, etc.) on a new row.
+ */
+ final String ditto = resources.getString(Vocabulary.Keys.DittoMark);
+ table.nextLine();
+ table.setCellAlignment(TableAppender.ALIGN_CENTER);
+ for (int j=0; j<numColumnsBeforeValue; j++) {
+ table.append(ditto);
+ nextColumn(table);
+ }
+ table.setCellAlignment(TableAppender.ALIGN_RIGHT);
}
+ /*
+ * Format the value followed by the unit of measure, or followed by spaces if there is no unit
+ * for this value. The intend is the right align the numerical value rather than the numerical
+ * + unit tupple.
+ */
final Format format = getFormat(value.getClass());
if (format != null) {
value = format.format(value, buffer, dummyFP);
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -16,10 +16,11 @@
*/
package org.apache.sis.parameter;
+import java.util.Map;
+import java.util.HashMap;
import javax.measure.unit.Unit;
import org.opengis.util.MemberName;
-import org.opengis.parameter.ParameterValue;
-import org.opengis.parameter.ParameterDescriptor;
+import org.opengis.parameter.*; // We use almost all types from this package.
import org.apache.sis.internal.jaxb.metadata.replace.ServiceParameter;
import org.apache.sis.measure.Range;
import org.apache.sis.measure.NumberRange;
@@ -44,6 +45,75 @@ public final class Parameters extends St
}
/**
+ * Gets the parameter name as an instance of {@code MemberName}.
+ * This method performs the following checks:
+ *
+ * <ul>
+ * <li>If the {@linkplain DefaultParameterDescriptor#getName() primary name} is an instance of {@code MemberName},
+ * returns that primary name.</li>
+ * <li>Otherwise this method searches for the first {@linkplain DefaultParameterDescriptor#getAlias() alias}
+ * which is an instance of {@code MemberName}. If found, that alias is returned.</li>
+ * <li>If no alias is found, then this method tries to build a member name from the primary name and the
+ * {@linkplain DefaultParameterDescriptor#getValueClass() value class}, using the mapping defined in
+ * {@link org.apache.sis.util.iso.DefaultTypeName} javadoc.</li>
+ * </ul>
+ *
+ * This method can be used as a bridge between the parameter object
+ * defined by ISO 19111 (namely {@code CC_OperationParameter}) and the one
+ * defined by ISO 19115 (namely {@code SV_Parameter}).
+ *
+ * @param parameter The parameter from which to get the name (may be {@code null}).
+ * @return The member name, or {@code null} if none.
+ *
+ * @see org.apache.sis.util.iso.Names#createMemberName(CharSequence, String, CharSequence, Class)
+ *
+ * @since 0.5
+ */
+ public static MemberName getMemberName(final ParameterDescriptor<?> parameter) {
+ return ServiceParameter.getMemberName(parameter);
+ }
+
+ /**
+ * Returns the domain of valid values defined by the given descriptor, or {@code null} if none.
+ * This method builds the range from the {@linkplain DefaultParameterDescriptor#getMinimumValue() minimum value},
+ * {@linkplain DefaultParameterDescriptor#getMaximumValue() maximum value} and, if the values are numeric, from
+ * the {@linkplain DefaultParameterDescriptor#getUnit() unit}.
+ *
+ * @param descriptor The parameter descriptor, or {@code null}.
+ * @return The domain of valid values, or {@code null} if none.
+ *
+ * @see DefaultParameterDescriptor#getValueDomain()
+ */
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ public static Range<?> getValueDomain(final ParameterDescriptor<?> descriptor) {
+ if (descriptor != null) {
+ if (descriptor instanceof DefaultParameterDescriptor<?>) {
+ return ((DefaultParameterDescriptor<?>) descriptor).getValueDomain();
+ }
+ final Class<?> valueClass = descriptor.getValueClass();
+ final Comparable<?> minimumValue = descriptor.getMinimumValue();
+ final Comparable<?> maximumValue = descriptor.getMaximumValue();
+ if ((minimumValue == null || valueClass.isInstance(minimumValue)) &&
+ (maximumValue == null || valueClass.isInstance(maximumValue)))
+ {
+ if (Number.class.isAssignableFrom(valueClass)) {
+ final Unit<?> unit = descriptor.getUnit();
+ if (unit != null) {
+ return new MeasurementRange((Class) valueClass,
+ (Number) minimumValue, true, (Number) maximumValue, true, unit);
+ } else if (minimumValue != null || maximumValue != null) {
+ return new NumberRange((Class) valueClass,
+ (Number) minimumValue, true, (Number) maximumValue, true);
+ }
+ } else if (minimumValue != null || maximumValue != null) {
+ return new Range(valueClass, minimumValue, true, maximumValue, true);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
* Casts the given parameter descriptor to the given type.
* An exception is thrown immediately if the parameter does not have the expected
* {@linkplain DefaultParameterDescriptor#getValueClass() value class}.
@@ -100,71 +170,110 @@ public final class Parameters extends St
}
/**
- * Returns the domain of valid values defined by the given descriptor, or {@code null} if none.
- * This method builds the range from the {@linkplain DefaultParameterDescriptor#getMinimumValue() minimum value},
- * {@linkplain DefaultParameterDescriptor#getMaximumValue() maximum value} and, if the values are numeric, from
- * the {@linkplain DefaultParameterDescriptor#getUnit() unit}.
- *
- * @param descriptor The parameter descriptor, or {@code null}.
- * @return The domain of valid values, or {@code null} if none.
+ * Copies the values of a parameter group into another parameter group.
+ * All values in the {@code source} group shall be valid for the {@code destination} group,
+ * but the {@code destination} may have more parameters.
+ * Sub-groups are copied recursively.
+ *
+ * <p>A typical usage of this method is for transferring values from an arbitrary implementation
+ * to some specific implementation, or to a parameter group using a different but compatible
+ * {@linkplain DefaultParameterValueGroup#getDescriptor() descriptor}.</p>
+ *
+ * @param values The parameters values to copy.
+ * @param destination Where to copy the values.
+ * @throws InvalidParameterNameException if a {@code source} parameter name is unknown to the {@code destination}.
+ * @throws InvalidParameterValueException if the value of a {@code source} parameter is invalid for the {@code destination}.
*
- * @see DefaultParameterDescriptor#getValueDomain()
+ * @since 0.5
*/
- @SuppressWarnings({"unchecked", "rawtypes"})
- public static Range<?> getValueDomain(final ParameterDescriptor<?> descriptor) {
- if (descriptor != null) {
- if (descriptor instanceof DefaultParameterDescriptor<?>) {
- return ((DefaultParameterDescriptor<?>) descriptor).getValueDomain();
- }
- final Class<?> valueClass = descriptor.getValueClass();
- final Comparable<?> minimumValue = descriptor.getMinimumValue();
- final Comparable<?> maximumValue = descriptor.getMaximumValue();
- if ((minimumValue == null || valueClass.isInstance(minimumValue)) &&
- (maximumValue == null || valueClass.isInstance(maximumValue)))
- {
- if (Number.class.isAssignableFrom(valueClass)) {
- final Unit<?> unit = descriptor.getUnit();
- if (unit != null) {
- return new MeasurementRange((Class) valueClass,
- (Number) minimumValue, true, (Number) maximumValue, true, unit);
- } else if (minimumValue != null || maximumValue != null) {
- return new NumberRange((Class) valueClass,
- (Number) minimumValue, true, (Number) maximumValue, true);
+ public static void copy(final ParameterValueGroup values, final ParameterValueGroup destination)
+ throws InvalidParameterNameException, InvalidParameterValueException
+ {
+ final Integer ONE = 1;
+ final Map<String,Integer> occurrences = new HashMap<String,Integer>();
+ for (final GeneralParameterValue value : values.values()) {
+ final String name = value.getDescriptor().getName().getCode();
+ if (value instanceof ParameterValueGroup) {
+ /*
+ * Contains sub-group - invokes 'copy' recursively.
+ */
+ final GeneralParameterDescriptor descriptor;
+ descriptor = destination.getDescriptor().descriptor(name);
+ if (descriptor instanceof ParameterDescriptorGroup) {
+ final ParameterValueGroup groups = (ParameterValueGroup) descriptor.createValue();
+ copy((ParameterValueGroup) value, groups);
+ values.groups(name).add(groups);
+ } else {
+ throw new InvalidParameterNameException(Errors.format(
+ Errors.Keys.UnexpectedParameter_1, name), name);
+ }
+ } else {
+ /*
+ * Single parameter - copy the value, with special care for value with units
+ * and for multi-occurrences. Not that the later is not allowed by ISO 19111
+ * but supported by SIS implementation.
+ */
+ final ParameterValue<?> source = (ParameterValue<?>) value;
+ final ParameterValue<?> target;
+ Integer occurrence = occurrences.get(name);
+ if (occurrence == null) {
+ occurrence = ONE;
+ try {
+ target = destination.parameter(name);
+ } catch (ParameterNotFoundException cause) {
+ throw new InvalidParameterNameException(Errors.format(
+ Errors.Keys.UnexpectedParameter_1, name), cause, name);
}
- } else if (minimumValue != null || maximumValue != null) {
- return new Range(valueClass, minimumValue, true, maximumValue, true);
+ } else {
+ target = (ParameterValue<?>) getOrCreate(destination, name, occurrence);
+ occurrence++;
+ }
+ occurrences.put(name, occurrence);
+ final Object v = source.getValue();
+ final Unit<?> unit = source.getUnit();
+ if (unit == null) {
+ target.setValue(v);
+ } else if (v instanceof Number) {
+ target.setValue(((Number) v).doubleValue(), unit);
+ } else if (v instanceof double[]) {
+ target.setValue((double[]) v, unit);
+ } else {
+ throw new InvalidParameterValueException(Errors.format(
+ Errors.Keys.IllegalArgumentValue_2, name, v), name, v);
}
}
}
- return null;
}
/**
- * Gets the parameter name as an instance of {@code MemberName}.
- * This method performs the following checks:
- *
- * <ul>
- * <li>If the {@linkplain DefaultParameterDescriptor#getName() primary name} is an instance of {@code MemberName},
- * returns that primary name.</li>
- * <li>Otherwise this method searches for the first {@linkplain DefaultParameterDescriptor#getAlias() alias}
- * which is an instance of {@code MemberName}. If found, that alias is returned.</li>
- * <li>If no alias is found, then this method tries to build a member name from the primary name and the
- * {@linkplain DefaultParameterDescriptor#getValueClass() value class}, using the mapping defined in
- * {@link org.apache.sis.util.iso.DefaultTypeName} javadoc.</li>
- * </ul>
- *
- * This method can be used as a bridge between the parameter object
- * defined by ISO 19111 (namely {@code CC_OperationParameter}) and the one
- * defined by ISO 19115 (namely {@code SV_Parameter}).
- *
- * @param parameter The parameter from which to get the name (may be {@code null}).
- * @return The member name, or {@code null} if none.
- *
- * @see org.apache.sis.util.iso.Names#createMemberName(CharSequence, String, CharSequence, Class)
- *
- * @since 0.5
+ * Returns the <var>n</var>th occurrence of the parameter of the given name.
+ * This method is not public because ISO 19111 does not allow multi-occurrences of parameter values
+ * (this is a SIS-specific flexibility). Current implementation is not very efficient, but it should
+ * not be an issue if this method is rarely invoked.
+ *
+ * @param values The group from which to get or create a value
+ * @param name The name of the parameter to fetch. An exact match will be required.
+ * @param n Number of occurrences to skip before to return or create the parameter.
+ * @return The <var>n</var>th occurrence (zero-based) of the parameter of the given name.
+ * @throws IndexOutOfBoundsException if {@code n} is greater than the current number of
+ * parameters of the given name.
*/
- public static MemberName getMemberName(final ParameterDescriptor<?> parameter) {
- return ServiceParameter.getMemberName(parameter);
+ private static GeneralParameterValue getOrCreate(final ParameterValueGroup values, final String name, int n) {
+ for (final GeneralParameterValue value : values.values()) {
+ if (name.equals(value.getDescriptor().getName().getCode())) {
+ if (--n < 0) {
+ return value;
+ }
+ }
+ }
+ if (n == 0) {
+ final GeneralParameterValue value = values.getDescriptor().descriptor(name).createValue();
+ values.values().add(value);
+ return value;
+ } else {
+ // We do not botter formatting a good error message for now, because
+ // this method is currently invoked only with increasing index values.
+ throw new IndexOutOfBoundsException(name);
+ }
}
}
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -972,7 +972,7 @@ public class AbstractIdentifiedObject ex
}
/**
- * Formats the inner part of this <cite>Well Known Text</cite> (WKT) object into the given formatter.
+ * Formats the inner part of the <cite>Well Known Text</cite> (WKT) representation for this object.
* The default implementation writes the following elements:
*
* <ul>
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -219,7 +219,7 @@ public final class IdentifiedObjects ext
if (ns != null) {
final GenericName scope = ns.name();
if (scope != null) {
- if (identifierMatches(authority, scope.toString())) {
+ if (identifierMatches(authority, null, scope.toString())) {
final String name = alias.toString();
if (name != null) {
if (addTo == null) {
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -415,10 +415,8 @@ public class AbstractCRS extends Abstrac
Objects.equals(coordinateSystem, that.coordinateSystem);
}
default: {
- return deepEquals(datum,
- (object instanceof SingleCRS) ? ((SingleCRS) object).getDatum() : null, mode) &&
- deepEquals(getCoordinateSystem(),
- ((CoordinateReferenceSystem) object).getCoordinateSystem(), mode);
+ return deepEquals(datum, (object instanceof SingleCRS) ? ((SingleCRS) object).getDatum() : null, mode) &&
+ deepEquals(getCoordinateSystem(), ((CoordinateReferenceSystem) object).getCoordinateSystem(), mode);
}
}
}
@@ -438,7 +436,7 @@ public class AbstractCRS extends Abstrac
}
/**
- * Formats the inner part of a <cite>Well Known Text</cite> (WKT) CRS into the given formatter.
+ * Formats the inner part of the <cite>Well Known Text</cite> (WKT) representation of this CRS.
* The default implementation writes the following elements in WKT 2 format:
*
* <ul>
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -416,7 +416,7 @@ public class AbstractCS extends Abstract
}
/**
- * Formats the inner part of this <cite>Well Known Text</cite> (WKT) CS into the given formatter.
+ * Formats the inner part of the <cite>Well Known Text</cite> (WKT) representation of this coordinate system.
* This method does <strong>not</strong> format the axes, because they shall appear outside
* the {@code CS[…]} element for historical reasons. Axes shall be formatted by the enclosing
* element (usually an {@link org.apache.sis.referencing.crs.AbstractCRS}).
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -32,6 +32,7 @@ import org.apache.sis.referencing.Identi
import org.apache.sis.util.iso.Types;
import org.apache.sis.util.ComparisonMode;
import org.apache.sis.internal.metadata.MetadataUtilities;
+import org.apache.sis.internal.referencing.OperationMethods;
import static org.apache.sis.util.Utilities.deepEquals;
import static org.apache.sis.util.collection.Containers.property;
@@ -404,14 +405,21 @@ public class AbstractDatum extends Abstr
}
default: {
/*
- * Tests for name, since datum with different name have completely
- * different meaning. We don't perform this comparison if the user
- * asked for metadata comparison, because in such case the names
- * have already been compared by the subclass.
+ * Tests for identifiers or name since datum with different identification may have completely
+ * different meaning. We do not perform this check if the user asked for metadata comparison,
+ * because in such case the name and identifiers have already been compared by the subclass.
+ *
+ * According ISO 19162 (Well Known Text representation of Coordinate Reference Systems),
+ * identifiers shall have precedence over name at least in the case of operation methods
+ * and parameters. We extend this rule to datum as well.
*/
final Datum that = (Datum) object;
- return isHeuristicMatchForName(that. getName().getCode()) ||
- IdentifiedObjects.isHeuristicMatchForName(that, getName().getCode());
+ final Boolean match = OperationMethods.hasCommonIdentifier(getIdentifiers(), that.getIdentifiers());
+ if (match != null) {
+ return match;
+ }
+ return isHeuristicMatchForName(that.getName().getCode())
+ || IdentifiedObjects.isHeuristicMatchForName(that, getName().getCode());
}
}
}
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -258,9 +258,7 @@ public class BursaWolfParameters extends
* @return {@code true} if the given datum is equal to WGS84 for computational purpose.
*/
final boolean isToWGS84() {
- return (targetDatum != null) &&
- (IdentifiedObjects.isHeuristicMatchForName(targetDatum, "WGS 84") ||
- IdentifiedObjects.isHeuristicMatchForName(targetDatum, "WGS84"));
+ return (targetDatum != null) && IdentifiedObjects.isHeuristicMatchForName(targetDatum, "WGS84");
}
/**
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -297,7 +297,7 @@ public class DefaultTemporalDatum extend
}
/**
- * The {@code TIMEORIGIN[…]} element inside an {@code TDATUM[…]}.
+ * The {@code TimeOrigin[…]} element inside a {@code TimeDatum[…]}.
*/
private static final class Origin extends FormattableObject {
/** The value of the origin to format. */
Copied: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java (from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java?p2=sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java&p1=sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java&r1=1654869&r2=1654875&rev=1654875&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -28,7 +28,7 @@ import org.apache.sis.util.iso.Types;
import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
// Branch-dependent imports
-import java.util.Objects;
+import org.apache.sis.internal.jdk7.Objects;
/**
Copied: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java (from r1654869, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java?p2=sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java&p1=sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java&r1=1654869&r2=1654875&rev=1654875&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -39,7 +39,7 @@ import org.apache.sis.io.wkt.Formatter;
import static org.apache.sis.util.ArgumentChecks.*;
// Branch-dependent imports
-import java.util.Objects;
+import org.apache.sis.internal.jdk7.Objects;
/**
@@ -229,7 +229,7 @@ public class DefaultOperationMethod exte
* @return The identified object properties in a mutable map.
*/
static Map<String,Object> getProperties(final IdentifiedObject info, final Citation authority) {
- final Map<String,Object> properties = new HashMap<>(IdentifiedObjects.getProperties(info));
+ final Map<String,Object> properties = new HashMap<String,Object>(IdentifiedObjects.getProperties(info));
properties.put(NAME_KEY, new NamedIdentifier(authority, info.getName().getCode()));
properties.remove(IDENTIFIERS_KEY);
return properties;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java?rev=1654875&r1=1654869&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -32,6 +32,9 @@ import org.apache.sis.util.ArgumentCheck
import org.apache.sis.util.Classes;
import org.apache.sis.util.Debug;
+// Branch-dependent imports
+import org.apache.sis.internal.jdk7.JDK7;
+
/**
* Creates a linear (usually affine) transform which will map approximatively the given source points to
@@ -223,7 +226,7 @@ public class LinearTransformBuilder {
}
buffer.append(']');
if (transform != null) {
- final String lineSeparator = System.lineSeparator();
+ final String lineSeparator = JDK7.lineSeparator();
buffer.append(':').append(lineSeparator);
final TableAppender table = new TableAppender(buffer, " ");
table.setMultiLinesCells(true);
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/GeneralMatrix.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/GeneralMatrix.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/GeneralMatrix.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/GeneralMatrix.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -61,6 +61,10 @@ class GeneralMatrix extends MatrixSIS im
* rounding errors anyway. So we put the threshold to some arbitrary mid-value, which may change in any future
* SIS version according experience gained. As long as the value is smaller than 1, it still more accurate than
* {@code double} arithmetic anyway.</p>
+ *
+ * <div class="note"><b>Note:</b>
+ * A similar constant exists in {@code org.apache.sis.math.Plane}.
+ * </div>
*/
private static final double ZERO_THRESHOLD = 1E-14;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -870,6 +870,9 @@ public abstract class AbstractMathTransf
* The default implementation formats all parameter values returned by {@link #getParameterValues()}.
* The parameter group name is used as the math transform name.
*
+ * <div class="note"><b>Compatibility note:</b>
+ * {@code Param_MT} is defined in the WKT 1 specification only.</div>
+ *
* @param formatter The formatter to use.
* @return The WKT element name, which is {@code "Param_MT"} in the default implementation.
*/
@@ -880,6 +883,9 @@ public abstract class AbstractMathTransf
WKTUtilities.appendName(parameters.getDescriptor(), formatter, null);
WKTUtilities.append(parameters, formatter);
}
+ if (formatter.getConvention().majorVersion() != 1) {
+ formatter.setInvalidWKT(MathTransform.class, null);
+ }
return "Param_MT";
}
@@ -1031,6 +1037,9 @@ public abstract class AbstractMathTransf
* WKT as in the {@linkplain AbstractMathTransform#formatWKT super-class method}.
* Otherwise this method formats the math transform as an {@code "Inverse_MT"} entity.
*
+ * <div class="note"><b>Compatibility note:</b>
+ * {@code Param_MT} and {@code Inverse_MT} are defined in the WKT 1 specification only.</div>
+ *
* @param formatter The formatter to use.
* @return The WKT element name, which is {@code "Param_MT"} or
* {@code "Inverse_MT"} in the default implementation.
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -898,6 +898,9 @@ class ConcatenatedTransform extends Abst
/**
* Formats the inner part of a <cite>Well Known Text</cite> version 1 (WKT 1) element.
*
+ * <div class="note"><b>Compatibility note:</b>
+ * {@code Concat_MT} is defined in the WKT 1 specification only.</div>
+ *
* @param formatter The formatter to use.
* @return The WKT element name, which is {@code "Concat_MT"}.
*/
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CopyTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CopyTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CopyTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/CopyTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -25,7 +25,7 @@ import org.opengis.referencing.operation
import org.opengis.parameter.ParameterValueGroup;
import org.opengis.parameter.ParameterDescriptorGroup;
import org.apache.sis.parameter.TensorParameters;
-import org.apache.sis.referencing.operation.provider.Affine;
+import org.apache.sis.internal.referencing.provider.Affine;
import org.apache.sis.referencing.operation.matrix.MatrixSIS;
import org.apache.sis.referencing.operation.matrix.Matrices;
import org.apache.sis.util.ComparisonMode;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/IdentityTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/IdentityTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/IdentityTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/IdentityTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -26,7 +26,7 @@ import org.apache.sis.util.ArgumentCheck
import org.apache.sis.util.ComparisonMode;
import org.apache.sis.geometry.GeneralDirectPosition;
import org.apache.sis.parameter.TensorParameters;
-import org.apache.sis.referencing.operation.provider.Affine;
+import org.apache.sis.internal.referencing.provider.Affine;
import org.apache.sis.referencing.operation.matrix.Matrices;
import org.apache.sis.internal.referencing.j2d.AffineTransform2D;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -64,6 +64,8 @@ import org.opengis.referencing.operation
* @version 0.4
* @module
*
+ * @see org.apache.sis.referencing.operation.transform.MathTransforms#linear(Matrix)
+ * @see org.apache.sis.referencing.operation.builder.LinearTransformBuilder
* @see java.awt.geom.AffineTransform
* @see <a href="http://mathworld.wolfram.com/AffineTransformation.html">Affine transformation on MathWorld</a>
*/
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -27,7 +27,7 @@ import org.opengis.referencing.operation
import org.apache.sis.referencing.operation.matrix.Matrices;
import org.apache.sis.referencing.operation.matrix.Matrix1;
import org.apache.sis.referencing.operation.matrix.Matrix2;
-import org.apache.sis.referencing.operation.provider.Affine;
+import org.apache.sis.internal.referencing.provider.Affine;
import org.apache.sis.parameter.TensorParameters;
import org.apache.sis.internal.util.Numerics;
import org.apache.sis.util.ComparisonMode;
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -108,6 +108,7 @@ public final class MathTransforms extend
* @param matrix The matrix used to define the linear transform.
* @return The linear (usually affine) transform.
*
+ * @see #getMatrix(MathTransform)
* @see org.opengis.referencing.operation.MathTransformFactory#createAffineTransform(Matrix)
*/
public static LinearTransform linear(final Matrix matrix) {
@@ -296,6 +297,9 @@ public final class MathTransforms extend
*
* @param transform The transform for which to get the matrix, or {@code null}.
* @return The matrix of the given transform, or {@code null} if none.
+ *
+ * @see #linear(Matrix)
+ * @see LinearTransform#getMatrix()
*/
public static Matrix getMatrix(final MathTransform transform) {
if (transform instanceof LinearTransform) {
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -607,7 +607,10 @@ public class PassThroughTransform extend
}
/**
- * Formats the inner part of a <cite>Well Known Text</cite> version 1 (WKT 1) element.
+ * Formats this transform as a <cite>Well Known Text</cite> version 1 (WKT 1) element.
+ *
+ * <div class="note"><b>Compatibility note:</b>
+ * {@code PassThrough_MT} is defined in the WKT 1 specification only.</div>
*
* @param formatter The formatter to use.
* @return The WKT element name, which is {@code "PassThrough_MT"}.
@@ -618,6 +621,8 @@ public class PassThroughTransform extend
if (numTrailingOrdinates != 0) {
formatter.append(numTrailingOrdinates);
formatter.setInvalidWKT(PassThroughTransform.class, null);
+ } else if (formatter.getConvention().majorVersion() != 1) {
+ formatter.setInvalidWKT(PassThroughTransform.class, null);
}
formatter.append(subTransform);
return "PassThrough_MT";
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ProjectiveTransform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ProjectiveTransform.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ProjectiveTransform.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ProjectiveTransform.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -26,10 +26,10 @@ import org.opengis.referencing.operation
import org.opengis.referencing.operation.NoninvertibleTransformException;
import org.apache.sis.util.ComparisonMode;
import org.apache.sis.parameter.TensorParameters;
-import org.apache.sis.referencing.operation.provider.Affine;
import org.apache.sis.referencing.operation.matrix.Matrices;
import org.apache.sis.referencing.operation.matrix.MatrixSIS;
import org.apache.sis.internal.referencing.ExtendedPrecisionMatrix;
+import org.apache.sis.internal.referencing.provider.Affine;
import org.apache.sis.util.ArgumentChecks;
import org.apache.sis.util.resources.Errors;
Copied: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java (from r1654869, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java?p2=sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java&p1=sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java&r1=1654869&r2=1654875&rev=1654875&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/OperationMethodsTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -54,8 +54,8 @@ public final strictfp class OperationMet
*/
@Test
public void testHasCommonIdentifier() {
- final List<Identifier> id1 = new ArrayList<>(3);
- final List<Identifier> id2 = new ArrayList<>(2);
+ final List<Identifier> id1 = new ArrayList<Identifier>(3);
+ final List<Identifier> id2 = new ArrayList<Identifier>(2);
assertNull(OperationMethods.hasCommonIdentifier(id1, id2));
/*
* Add codes for two Operation Methods which are implemented in Apache SIS by the same class:
Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -26,9 +26,9 @@ import org.apache.sis.test.DependsOn;
import org.apache.sis.test.TestCase;
import org.junit.Test;
-import static org.apache.sis.test.Assert.*;
import static org.opengis.test.Validators.*;
import static java.util.Collections.singletonMap;
+import static org.apache.sis.test.MetadataAssert.*;
import static org.opengis.referencing.IdentifiedObject.*;
@@ -57,8 +57,8 @@ public final strictfp class DefaultParam
M1_M1_O1_O2 = new DefaultParameterDescriptorGroup(singletonMap(NAME_KEY, "Test group"), 0, 1,
new DefaultParameterDescriptor<Integer>(name(properties, "Mandatory 1", "Ambiguity"), 1, 1, type, null, null, DEFAULT_VALUE),
new DefaultParameterDescriptor<Integer>(name(properties, "Mandatory 2", "Alias 2"), 1, 1, type, null, null, DEFAULT_VALUE),
- new DefaultParameterDescriptor<Integer>(name(properties, "Optional 3", "Alias 3"), 0, 1, type, null, null, DEFAULT_VALUE),
- new DefaultParameterDescriptor<Integer>(name(properties, "Optional 4", "Ambiguity"), 0, 2, type, null, null, DEFAULT_VALUE)
+ new DefaultParameterDescriptor<Integer>(name(properties, "Optional 3", "Alias 3"), 0, 1, type, null, null, DEFAULT_VALUE),
+ new DefaultParameterDescriptor<Integer>(name(properties, "Optional 4", "Ambiguity"), 0, 2, type, null, null, DEFAULT_VALUE)
);
}
@@ -79,7 +79,7 @@ public final strictfp class DefaultParam
final Class<Integer> type = Integer.class;
final Map<String,Object> properties = new HashMap<String,Object>(4);
final DefaultParameterDescriptor<Integer> p1, p2;
- p1 = new DefaultParameterDescriptor<Integer>(name(properties, "Name", null), 1, 1, type, null, null, null);
+ p1 = new DefaultParameterDescriptor<Integer>(name(properties, "Name", null), 1, 1, type, null, null, null);
p2 = new DefaultParameterDescriptor<Integer>(name(properties, " NAME ", null), 1, 1, type, null, null, null);
try {
new DefaultParameterDescriptorGroup(singletonMap(NAME_KEY, "Test group"), 0, 1, p1, p2);
@@ -169,6 +169,19 @@ public final strictfp class DefaultParam
}
/**
+ * Tests the WKT representation.
+ */
+ @Test
+ public void testWKT() {
+ assertWktEquals(
+ "ParameterGroup[“Test group”,\n" +
+ " Parameter[“Mandatory 1”, 10],\n" +
+ " Parameter[“Mandatory 2”, 10],\n" +
+ " Parameter[“Optional 3”, 10],\n" +
+ " Parameter[“Optional 4”, 10]]", M1_M1_O1_O2);
+ }
+
+ /**
* Tests {@link DefaultParameterDescriptorGroup} serialization.
*/
@Test
Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueGroupTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueGroupTest.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueGroupTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueGroupTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -31,7 +31,7 @@ import org.apache.sis.test.DependsOn;
import org.apache.sis.test.TestCase;
import org.junit.Test;
-import static org.apache.sis.test.MetadataAssert.*;
+import static org.apache.sis.test.Assert.*;
import static org.opengis.test.Validators.*;
import static java.util.Collections.singletonMap;
import static org.opengis.referencing.IdentifiedObject.NAME_KEY;
@@ -42,7 +42,7 @@ import static org.opengis.referencing.Id
*
* @author Martin Desruisseaux (IRD, Geomatys)
* @since 0.4 (derived from geotk-2.1)
- * @version 0.4
+ * @version 0.5
* @module
*/
@DependsOn({
@@ -357,19 +357,6 @@ public final strictfp class DefaultParam
}
/**
- * Tests the WKT representation.
- */
- @Test
- public void testWKT() {
- assertWktEquals(
- "ParameterGroup[“Test group”,\n" +
- " Parameter[“Mandatory 1”, 10],\n" +
- " Parameter[“Mandatory 2”, 10],\n" +
- " Parameter[“Optional 3”, 10],\n" +
- " Parameter[“Optional 4”, 10]]", descriptor);
- }
-
- /**
* Tests {@link DefaultParameterValueGroup} serialization.
*/
@Test
Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java?rev=1654875&r1=1654874&r2=1654875&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterBuilderTest.java [UTF-8] Mon Jan 26 19:12:25 2015
@@ -50,7 +50,7 @@ public final strictfp class ParameterBui
public void testMercatorProjection() {
final ParameterBuilder builder = new ParameterBuilder();
builder.setCodeSpace(HardCodedCitations.OGP, "EPSG").setRequired(true);
- final ParameterDescriptor[] parameters = {
+ final ParameterDescriptor<?>[] parameters = {
builder.addName("Longitude of natural origin")
.addName(HardCodedCitations.OGC, "central_meridian")
.addName(HardCodedCitations.GEOTIFF, "NatOriginLong")