Author: desruisseaux
Date: Mon Jul  6 11:06:09 2015
New Revision: 1689363

URL: http://svn.apache.org/r1689363
Log:
Apply ISO 19162 recommendation to ignore leading and trailing spaces.

Modified:
    
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
    
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
    
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
    
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java

Modified: 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java?rev=1689363&r1=1689362&r2=1689363&view=diff
==============================================================================
--- 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
 [UTF-8] (original)
+++ 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Element.java
 [UTF-8] Mon Jul  6 11:06:09 2015
@@ -208,7 +208,12 @@ final class Element {
                     }
                     lower = upper + n;  // After the closing quote.
                 } while (lower < text.length() && text.codePointAt(lower) == 
closingQuote);
-                list.add(content.toString());
+                /*
+                 * Leading and trailing spaces should be ignored according ISO 
19162 §B.4.
+                 * Note that the specification suggests also to replace 
consecutive white
+                 * spaces by a single space, but we don't do that yet.
+                 */
+                list.add(CharSequences.trimWhitespaces(content).toString());
             } else if (!Character.isUnicodeIdentifierStart(firstChar)) {
                 /*
                  * Try to parse the next element as a date or a number. We 
will attempt such parsing

Modified: 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java?rev=1689363&r1=1689362&r2=1689363&view=diff
==============================================================================
--- 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
 [UTF-8] (original)
+++ 
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
 [UTF-8] Mon Jul  6 11:06:09 2015
@@ -670,7 +670,7 @@ final class GeodeticObjectParser extends
             final Element element = parent.pullElement(OPTIONAL, 
WKTKeywords.CS);
             if (element != null) {
                 final String expected = type;
-                type         = 
CharSequences.trimWhitespaces(element.pullVoidElement("type").keyword);
+                type         = element.pullVoidElement("type").keyword;
                 dimension    = element.pullInteger("dimension");
                 csProperties = new HashMap<>(parseMetadataAndClose(element, 
"CS", null));
                 if (expected != null) {
@@ -954,7 +954,7 @@ final class GeodeticObjectParser extends
          * expressed by a syntax like AXIS[“South along 90°W”, SOUTH, 
MERIDIAN[-90, UNIT["deg"]]]. Note that
          * the meridian is relative to the prime meridian of the enclosing 
geodetic CRS.
          */
-        String name = 
CharSequences.trimWhitespaces(element.pullString("name"));
+        String name = element.pullString("name");
         final Element orientation = element.pullVoidElement("orientation");
         Unit<?> unit = parseUnit(element);
         if (unit == null) {

Modified: 
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java?rev=1689363&r1=1689362&r2=1689363&view=diff
==============================================================================
--- 
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
 [UTF-8] (original)
+++ 
sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/io/wkt/ElementTest.java
 [UTF-8] Mon Jul  6 11:06:09 2015
@@ -83,10 +83,10 @@ public final strictfp class ElementTest
         assertEquals("value", "World Geodetic System 1984", 
element.pullString("value"));
         element.close(null);
 
-        // Spaces inside quotes should be preserved.
+        // Leading and trailing spaces inside quotes should be ignored (ISO 
19162 §B.4).
         element = parse("  Datum [  \" World Geodetic System 1984  \"  ]  ");
         assertEquals("keyword", "Datum", element.keyword);
-        assertEquals("value", " World Geodetic System 1984  ", 
element.pullString("value"));
+        assertEquals("value", "World Geodetic System 1984", 
element.pullString("value"));
         element.close(null);
 
         // Consecutive values.

Modified: 
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java?rev=1689363&r1=1689362&r2=1689363&view=diff
==============================================================================
--- 
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
 [UTF-8] (original)
+++ 
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
 [UTF-8] Mon Jul  6 11:06:09 2015
@@ -374,6 +374,7 @@ public class DefaultCoordinateOperationF
         /*
          * Undocumented (for now) feature: if the 'transform' argument is null 
but parameters are
          * found in the given properties, create the MathTransform instance 
from those parameters.
+         * This is needed for WKT parsing of CoordinateOperation[…] among 
others.
          */
         if (transform == null) {
             final ParameterValueGroup parameters = 
Containers.property(properties,


Reply via email to