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/05/19 12:09:01 UTC
svn commit: r1680225 - in /sis/ip-review: ./ rev/06604/ rev/07844/
rev/10796/ rev/20874/ rev/25050/
Author: desruisseaux
Date: Tue May 19 10:09:00 2015
New Revision: 1680225
URL: http://svn.apache.org/r1680225
Log:
Add IP review for WKT MathTransformParser class.
Added:
sis/ip-review/MathTransformParser.xhtml (with props)
sis/ip-review/rev/06604/
sis/ip-review/rev/06604/HEADER.html (with props)
sis/ip-review/rev/06604/MathTransformParser.xhtml (with props)
sis/ip-review/rev/07844/
sis/ip-review/rev/07844/HEADER.html (with props)
sis/ip-review/rev/07844/MathTransformParser.xhtml (with props)
sis/ip-review/rev/10796/MathTransformParser.xhtml (with props)
sis/ip-review/rev/20874/MathTransformParser.xhtml (with props)
sis/ip-review/rev/25050/MathTransformParser.xhtml (with props)
Added: sis/ip-review/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/MathTransformParser.xhtml (added)
+++ sis/ip-review/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser history</title>
+ <style type="text/css" media="all">
+ @import url("./reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser history</h1>
+ <p>Click on the commit message for inspecting the <code>diff</code> and how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table>
+ <tr>
+ <th>Rev.</th>
+ <th>Date</th>
+ <th>Author</th>
+ <th class="last">Message</th>
+ </tr>
+<tr><td class="rev">31000</td><td>2008-07-10</td><td>desruisseaux</td><td>Avoid usage of 2 deprecated constructors from CRSFactory. Their replacement were tricky and required more sophesticated code in ReferencingFactoryContainer.toGeodetic3D.</td></tr>
+<tr><td class="rev">30641</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: lib/referencing, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30639</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: cleanup library/referencing</td></tr>
+<tr><td class="rev">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright: Update referencing headers</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">29753</td><td>2008-04-01</td><td>desruisseaux</td><td>Applied parameterized types as a side-effect of hunting for a DimensionMismatchException during reprojection.</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump the (at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide buttons which are not yet used</td></tr>
+<tr><td class="rev">28393</td><td>2007-12-17</td><td>desruisseaux</td><td>WKT formatting now includes the semi-major and semi-minor axis length if they differ from the datum. Applied Java 5 features. Uses WarpAffine when applicable during Raster reprojection.</td></tr>
+<tr><td class="rev">27995</td><td>2007-11-22</td><td>desruisseaux</td><td>More generics type, and moved two methods from ReferencingFactoryContainer to GeoAPI MathTransformFactory interface. Note that the build fails in the arcsde module for a reason that seems unrelated to this work.</td></tr>
+<tr><td class="rev">27575</td><td>2007-10-22</td><td>desruisseaux</td><td>Converted Java source files from ISO-LATIN-1 encoding to UTF-8 (GEOT-1516).</td></tr>
+<tr><td class="rev">25050</td><td>2007-04-06</td><td class="unav">jgarnett</td><td><a href="rev/25050/MathTransformParser.xhtml">example of custom file based TestSutie, copy JTS parsing code over to unsupported/geometry</a></td></tr>
+<tr><td class="rev">24427</td><td>2007-02-15</td><td>desruisseaux</td><td>Removed the Collection<OperationMethod> hack in some MathTransform creators. Replaced by a getLastUsedMethod() method implemented by a ThreadLocal.</td></tr>
+<tr><td class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982: regroup 'module', 'plugin', 'ext' and 'unsupported' in a common directory.</td></tr>
+<tr><td class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation of directory tree structure (GEOT-982) phase 1: moved 'src' to 'src/main/java'.</td></tr>
+<tr><td class="rev">20874</td><td>2006-08-07</td><td class="unav">jgarnett</td><td><a href="rev/20874/MathTransformParser.xhtml">ip review</a></td></tr>
+<tr><td class="rev">17672</td><td>2006-01-19</td><td>desruisseaux</td><td>Added @source tag.</td></tr>
+<tr><td class="rev">17660</td><td>2006-01-18</td><td>desruisseaux</td><td>Fixed SVN attributes, including the addition of URL attribute.</td></tr>
+<tr><td class="rev">16205</td><td>2005-10-11</td><td>desruisseaux</td><td>Cleaned javadoc warning. More work done on Maven 2 configuration (GEOT-691)</td></tr>
+<tr><td class="rev">15350</td><td>2005-08-16</td><td>desruisseaux</td><td>Merged the 'split-main' branch to trunk (GEOT-662)</td></tr>
+<tr><td class="rev">15256</td><td>2005-08-09</td><td>desruisseaux</td><td>Extraction of referencing module from main</td></tr>
+<tr><td class="rev">15255</td><td>2005-08-09</td><td>desruisseaux</td><td>Prepare branch for splitting main</td></tr>
+<tr><td class="rev">14834</td><td>2005-07-20</td><td>desruisseaux</td><td>Reorganized I18N resources</td></tr>
+<tr><td class="rev">13925</td><td>2005-05-30</td><td>desruisseaux</td><td>Added @since javadoc tag</td></tr>
+<tr><td class="rev">13922</td><td>2005-05-29</td><td>desruisseaux</td><td>Renaming of remainding GeoAPI implementations. Renaming is now finished.</td></tr>
+<tr><td class="rev">13906</td><td>2005-05-28</td><td>desruisseaux</td><td>Renamed some 'Default' prefix as 'Abstract'</td></tr>
+<tr><td class="rev">13836</td><td>2005-05-26</td><td>desruisseaux</td><td>Added 'Default' suffix to some CRS implementations: partial work</td></tr>
+<tr><td class="rev">12965</td><td>2005-04-05</td><td>desruisseaux</td><td>Merged 'factory-hints' branch r12393:12964 into the trunk. Added 'getImplementationHints()' method after the merge into Factory implementations, in order to get Geotools to compile with Maven.</td></tr>
+<tr><td class="rev">11212</td><td>2005-02-09</td><td>desruisseaux</td><td>Initial work on Z-values handling</td></tr>
+<tr><td class="rev">11144</td><td>2005-02-07</td><td>desruisseaux</td><td>Fixed GEOT-400 (create appropriate instance of Operation subclasses)</td></tr>
+<tr><td class="rev">11093</td><td>2005-02-03</td><td>desruisseaux</td><td>Roolback to createParameterizedTransform without classification parameter</td></tr>
+<tr><td class="rev">11074</td><td>2005-02-03</td><td>desruisseaux</td><td>Revisited CRSFactory.createProjectedCRS(...) API</td></tr>
+<tr><td class="rev">11001</td><td>2005-02-02</td><td>desruisseaux</td><td>Fixed wrong encoding in main/src</td></tr>
+<tr><td class="rev">10796</td><td>2005-01-28</td><td class="unav">dzwiers</td><td><a href="rev/10796/MathTransformParser.xhtml">imports cleaned</a></td></tr>
+<tr><td class="rev">10167</td><td>2005-01-02</td><td>desruisseaux</td><td>Improved console: added distance computation</td></tr>
+<tr><td class="rev">9157</td><td>2004-11-18</td><td>desruisseaux</td><td>Completed the WKT parser</td></tr>
+<tr><td class="rev">9146</td><td>2004-11-17</td><td>desruisseaux</td><td>Work on WKT parsing of CRS objects</td></tr>
+<tr><td class="rev">9132</td><td>2004-11-16</td><td>desruisseaux</td><td>Factored out WKT symbols in a Symbols class</td></tr>
+<tr><td class="rev">8876</td><td>2004-10-27</td><td>desruisseaux</td><td>Fixed compilation error caused by GeoAPI change</td></tr>
+<tr><td class="rev">8833</td><td>2004-10-25</td><td>desruisseaux</td><td>Changed MathTransform.getDefaultParameters() return type from GeneralParameterValue[] to ParameterValueGroup</td></tr>
+<tr><td class="rev">7844</td><td>2004-09-08</td><td class="unav">jgarnett</td><td><a href="rev/07844/MathTransformParser.xhtml">First round of resync with geoapi</a></td></tr>
+<tr><td class="rev">7308</td><td>2004-07-29</td><td class="unav">rschulz</td><td><a href="rev/07844/MathTransformParser.xhtml">added support for parsing string parameters</a></td></tr>
+<tr><td class="rev">6888</td><td>2004-07-14</td><td>desruisseaux</td><td>Update for GeoAPI changes (Info --> IdentifiedObject)</td></tr>
+<tr><td class="rev">6604</td><td>2004-06-29</td><td class="unav">jgarnett</td><td><a href="rev/06604/MathTransformParser.xhtml">fixed version id</a></td></tr>
+<tr><td class="rev">6475</td><td>2004-06-19</td><td class="unav">rschulz</td><td><a href="rev/06604/MathTransformParser.xhtml">ported to use GeoAPI interfaces, was org.geotools.ct.WKTParser</a></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/06604/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/06604/HEADER.html?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/06604/HEADER.html (added)
+++ sis/ip-review/rev/06604/HEADER.html Tue May 19 10:09:00 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>Revision 6604</title>
+ </head>
+ <body>
+ <div>
+ <h1>Revision 6604</h1>
+<table>
+ <tr><td><b>Author:</b></td><td>jgarnett</td></tr>
+ <tr><td><b>Date:</b></td><td>2004-06-29</td></tr>
+ <tr><td><b>Message:</b></td><td>fixed version id</td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/06604/HEADER.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/06604/HEADER.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/06604/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/06604/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/06604/MathTransformParser.xhtml (added)
+++ sis/ip-review/rev/06604/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,548 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser changes for revisions 6474:6604</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser changes for revisions 6474:6604</h1>
+
+<p>This commit is not the addition of a new file, but the renaming of an existing file done without proper use of the <code>svn move</code> command.
+ The previous file can be seen with the following command:</p>
+
+<blockquote><code>
+svn cat http://svn.osgeo.org/geotools/geotools/trunk/gt/module/main/src/org/geotools/ct/WKTParser.java@6474
+</code></blockquote>
+
+<p>There is some changes in method names and method declaration order, but with otherwise same method bodies.
+Some of those changes seem to be trigged by changes in the GeoAPI interfaces, especially regarding
+<code>ParameterValueGroup</code> in the parsing of the <code>"PARAMETER"</code> WKT element.</p>
+
+<p>It is a little bit uneasy to identify what is the plus-value in this commit, apart name changes.
+All this code has been reviewed, cleaned and expanded in Geotk and SIS.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r6474:6604 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 6474</th><th>Revision 6604</th></tr>
+<tr><td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, Geotools Project Managment Committee (PMC)
+ * (C) 2002, Institut de Recherche pour le Développement
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package org.geotools.ct;
+
+// J2SE dependencies
+import java.util.Set;
+import java.util.HashSet;
+
+// Parsing
+import java.util.Locale;
+import java.text.FieldPosition;
+import java.text.ParsePosition;
+import java.text.ParseException;
+
+// JAI dependencies
+import javax.media.jai.ParameterList;
+import javax.media.jai.ParameterListDescriptor;
+import javax.media.jai.util.CaselessStringKey;
+
+// OpenGIS dependencies
+import org.opengis.referencing.operation.NoninvertibleTransformException;
+
+// Geotools dependencies
+import org.geotools.cs.FactoryException;
+import org.geotools.resources.WKTFormat;
+import org.geotools.resources.WKTElement;
+import org.geotools.resources.cts.Resources;
+import org.geotools.resources.cts.ResourceKeys;
+
+
+/**
+ * Parser for <cite>Well Know Text</cite> (WKT).
+ * Instances of this class are thread-safe.
+ *
+ * @version $Id$
+ * @author Remi Eve
+ * @author Martin Desruisseaux
+ */
+final class WKTParser extends WKTFormat {
+ /**
+ * The factory to use for creating math transform.
+ */
+ private MathTransformFactory factory;
+
+ /**
+ * Construct a parser for the specified locale.
+ *
+ * @param local The locale for parsing and formatting numbers.
+ * @param factory The factory for constructing coordinate systems.
+ */
+ public WKTParser(final Locale locale, final MathTransformFactory factory) {
+ super(locale);
+ this.factory = factory;
+ }
+
+ /**
+ * Parses a "PARAM_MT" element. This element has the following pattern:
+ *
+ * <blockquote><code>
+ * PARAM_MT["<classification-name>" {,<parameter>}* ]
+ * </code></blockquote>
+ *
+ * @param parent The parent element.
+ * @return The "PARAM_MT" element as an {@link MathTransform} object.
+ * @throws ParseException if the "PARAM_MT" element can't be parsed.
+ */
+ private MathTransform parseParamMT(final WKTElement parent) throws ParseException {
+ final WKTElement element = parent.pullElement("PARAM_MT");
+ final String classification = element.pullString("classification");
+ ParameterList parameters;
+ try {
+ parameters = factory.getMathTransformProvider(classification).getParameterList();
+ } catch (FactoryException exception) {
+ throw element.parseFailed(exception, null);
+ }
+ /*
+ * Gets the list of parameters expecting an integer value.
+ * All other parameters will be given a double value.
+ */
+ final Set integers = new HashSet();
+ final ParameterListDescriptor descriptor = parameters.getParameterListDescriptor();
+ final Class[] classes = descriptor.getParamClasses();
+ if (classes != null) {
+ String[] names = null;
+ for (int i=0; i<classes.length; i++) {
+ if (Integer.class.equals(classes[i])) {
+ if (names == null) {
+ names = descriptor.getParamNames();
+ }
+ integers.add(new CaselessStringKey(names[i]));
+ }
+ }
+ }
+ /*
+ * Scan over all PARAMETER["name", value] elements and
+ * set the corresponding parameter in the ParameterList.
+ */
+ WKTElement param;
+ while ((param=element.pullOptionalElement("PARAMETER")) != null) {
+ final String name = param.pullString("name");
+ if (integers.contains(new CaselessStringKey(name))) {
+ parameters = parameters.setParameter(name, param.pullInteger("value"));
+ } else {
+ parameters = parameters.setParameter(name, param.pullDouble("value"));
+ }
+ param.close();
+ }
+ element.close();
+ try {
+ return factory.createParameterizedTransform(classification, parameters);
+ } catch (FactoryException exception) {
+ throw element.parseFailed(exception, null);
+ }
+ }
+
+ /**
+ * Parses a "INVERSE_MT" element. This element has the following pattern:
+ *
+ * <blockquote><code>
+ * INVERSE_MT[<math transform>]
+ * </code></blockquote>
+ *
+ * @param parent The parent element.
+ * @return The "INVERSE_MT" element as an {@link MathTransform} object.
+ * @throws ParseException if the "INVERSE_MT" element can't be parsed.
+ */
+ private MathTransform parseInverseMT(final WKTElement parent) throws ParseException {
+ final WKTElement element = parent.pullElement("INVERSE_MT");
+ try {
+ final MathTransform transform = parseMathTransform(element, true).inverse();
+ element.close();
+ return transform;
+ }
+ catch (NoninvertibleTransformException exception) {
+ throw element.parseFailed(exception, null);
+ }
+ }
+
+ /**
+ * Parses a "PASSTHROUGH_MT" element. This element has the following pattern:
+ *
+ * <blockquote><code>
+ * PASSTHROUGH_MT[<integer>, <math transform>]
+ * </code></blockquote>
+ *
+ * @param parent The parent element.
+ * @return The "PASSTHROUGH_MT" element as an {@link MathTransform} object.
+ * @throws ParseException if the "PASSTHROUGH_MT" element can't be parsed.
+ */
+ private MathTransform parsePassThroughMT(final WKTElement parent) throws ParseException {
+ final WKTElement element = parent.pullElement("PASSTHROUGH_MT");
+ final int firstAffectedOrdinate = parent.pullInteger("firstAffectedOrdinate");
+ final MathTransform transform = parseMathTransform(element, true);
+ element.close();
+ return factory.createPassThroughTransform(firstAffectedOrdinate, transform, 0);
+ }
+
+ /**
+ * Parses a "CONCAT_MT" element. This element has the following pattern:
+ *
+ * <blockquote><code>
+ * CONCAT_MT[<math transform> {,<math transform>}*]
+ * </code></blockquote>
+ *
+ * @param parent The parent element.
+ * @return The "CONCAT_MT" element as an {@link MathTransform} object.
+ * @throws ParseException if the "CONCAT_MT" element can't be parsed.
+ */
+ private MathTransform parseConcatMT(final WKTElement parent) throws ParseException {
+ final WKTElement element = parent.pullElement("CONCAT_MT");
+ MathTransform transform = parseMathTransform(element, true);
+
+ MathTransform optionalTransform;
+ while ((optionalTransform = parseMathTransform(element, false)) != null) {
+ transform = factory.createConcatenatedTransform(transform, optionalTransform);
+ }
+ element.close();
+ return transform;
+ }
+
+ /**
+ * Parses a mathTransform element.
+ *
+ * @param parent The parent element.
+ * @param required True if parameter is required and false in other case.
+ * @return The next element as a {@link MathTransform} object.
+ * @throws ParseException if the next element can't be parsed.
+ */
+ private MathTransform parseMathTransform(final WKTElement element, final boolean required)
+ throws ParseException
+ {
+ final Object key = element.peek();
+ if (key instanceof WKTElement) {
+ final String keyword = ((WKTElement) key).keyword.trim().toUpperCase(locale);
+ if ("PARAM_MT" .equals(keyword)) return parseParamMT (element);
+ if ("CONCAT_MT" .equals(keyword)) return parseConcatMT (element);
+ if ("INVERSE_MT" .equals(keyword)) return parseInverseMT (element);
+ if ("PASSTHROUGH_MT".equals(keyword)) return parsePassThroughMT(element);
+ }
+ if (required) {
+ throw element.parseFailed(null, Resources.format(ResourceKeys.ERROR_UNKNOW_TYPE_$1, key));
+ }
+ return null;
+ }
+
+ /**
+ * Parses a MathTransform element.
+ *
+ * @param text The text to be parsed.
+ * @return The transformation.
+ * @throws ParseException if the string can't be parsed.
+ */
+ public MathTransform parseMathTransform(final String text) throws ParseException {
+ final WKTElement element = getTree(text, new ParsePosition(0));
+ final MathTransform mt = parseMathTransform(element, true);
+ element.close();
+ return mt;
+ }
+
+ /**
+ * Parses the next element in the specified <cite>Well Know Text</cite> (WKT) tree.
+ *
+ * @param element The element to be parsed.
+ * @return The parsed object.
+ * @throws ParseException if the element can't be parsed.
+ */
+ protected Object parse(final WKTElement element) throws ParseException {
+ return parseMathTransform(element, true);
+ }
+
+ /**
+ * Format the specified object. Current implementation just append {@link Object#toString},
+ * since the <code>toString()</code> implementation for most {@link org.geotools.cs.Info}
+ * objects is to returns a WKT.
+ *
+ * @task TODO: Provides pacakge private <code>Info.toString(WKTFormat)</code> implementations.
+ * It would allows us to invoke <code>((Info)obj).toString(this)</code> here.
+ */
+ public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
+ return toAppendTo.append(obj);
+ }
+}</pre></td>
+<td><pre><span class="add">/*</span>
+<span class="add"> * Geotools 2 - OpenSource mapping toolkit</span>
+<span class="add"> * (C) 2003, 2004 Geotools Project Managment Committee (PMC)</span>
+<span class="add"> * (C) 2002, Institut de Recherche pour le Développement</span>
+<span class="add"> *</span>
+<span class="add"> * This library is free software; you can redistribute it and/or</span>
+<span class="add"> * modify it under the terms of the GNU Lesser General Public</span>
+<span class="add"> * License as published by the Free Software Foundation; either</span>
+<span class="add"> * version 2.1 of the License, or (at your option) any later version.</span>
+<span class="add"> *</span>
+<span class="add"> * This library is distributed in the hope that it will be useful,</span>
+<span class="add"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="add"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
+<span class="add"> * Lesser General Public License for more details.</span>
+<span class="add"> *</span>
+<span class="add"> * You should have received a copy of the GNU Lesser General Public</span>
+<span class="add"> * License along with this library; if not, write to the Free Software</span>
+<span class="add"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
+<span class="add"> */</span>
+<span class="add"></span>
+<span class="add">package org.geotools.referencing.wkt;</span>
+<span class="add"></span>
+<span class="add">// J2SE dependencies</span>
+<span class="add">//import java.util.Set;</span>
+<span class="add">//import java.util.HashSet;</span>
+<span class="add">import java.util.Collections;</span>
+<span class="add"></span>
+<span class="add">// Parsing</span>
+<span class="add">import java.util.Locale;</span>
+<span class="add">import java.text.ParsePosition;</span>
+<span class="add">import java.text.ParseException;</span>
+<span class="add">import java.text.FieldPosition;</span>
+<span class="add"></span>
+<span class="add">// Geotools dependencies</span>
+<span class="add">import org.geotools.referencing.FactoryFinder;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add"></span>
+<span class="add">// OpenGIS dependencies</span>
+<span class="add">import org.opengis.referencing.operation.MathTransformFactory;</span>
+<span class="add">import org.opengis.referencing.operation.MathTransform;</span>
+<span class="add">import org.opengis.parameter.GeneralParameterValue;</span>
+<span class="add">import org.opengis.parameter.ParameterValue;</span>
+<span class="add">import org.opengis.parameter.OperationParameter;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+<span class="add">import org.opengis.referencing.NoSuchIdentifierException;</span>
+<span class="add">import org.opengis.referencing.FactoryException;</span>
+<span class="add">import org.opengis.referencing.operation.NoninvertibleTransformException;</span>
+<span class="add"></span>
+<span class="add">/*</span>
+<span class="add"> *</span>
+<span class="add"> * @version $Id$</span>
+<span class="add"> * @author Remi Eve</span>
+<span class="add"> * @author Martin Desruisseaux</span>
+<span class="add"> * @author Rueben Schulz</span>
+<span class="add"> */</span>
+<span class="add">public final class MathTransformParser extends AbstractParser {</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * The factory to use for creating math transform.</span>
+<span class="add"> */</span>
+<span class="add"> private final MathTransformFactory mtFactory;</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Construct a parser for the specified locale using default factories.</span>
+<span class="add"> *</span>
+<span class="add"> * @param locale The locale for parsing and formatting numbers.</span>
+<span class="add"> */</span>
+<span class="add"> public MathTransformParser(final Locale locale) {</span>
+<span class="add"> this(locale, (org.geotools.referencing.operation.MathTransformFactory)FactoryFinder.getMathTransformFactory());</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Construct a parser for the specified locale and factory.</span>
+<span class="add"> *</span>
+<span class="add"> * @param locale The locale for parsing and formatting numbers.</span>
+<span class="add"> * @param mtFactory The {@link MathTransformFactory} to use to create</span>
+<span class="add"> * {@link MathTransform} objects.</span>
+<span class="add"> */</span>
+<span class="add"> public MathTransformParser(final Locale locale, final MathTransformFactory mtFactory) {</span>
+<span class="add"> super(locale);</span>
+<span class="add"> this.mtFactory = mtFactory;</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses the next element in the specified <cite>Well Know Text</cite> (WKT) tree.</span>
+<span class="add"> *</span>
+<span class="add"> * @param element The element to be parsed.</span>
+<span class="add"> * @return The object.</span>
+<span class="add"> * @throws ParseException if the element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> protected Object parse(final Element element) throws ParseException {</span>
+<span class="add"> return parseMathTransform(element, true);</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses the next element (a {@link MathTransform}) in the specified</span>
+<span class="add"> * <cite>Well Know Text</cite> (WKT) tree.</span>
+<span class="add"> *</span>
+<span class="add"> * @param element The parent element.</span>
+<span class="add"> * @param required True if parameter is required and false in other case.</span>
+<span class="add"> * @return The next element as a {@link MathTransform} object.</span>
+<span class="add"> * @throws ParseException if the next element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> private MathTransform parseMathTransform(final Element element, final boolean required) throws ParseException {</span>
+<span class="add"> final Object key = element.peek();</span>
+<span class="add"> if (key instanceof Element) {</span>
+<span class="add"> final String keyword = ((Element) key).keyword.trim().toUpperCase(locale);</span>
+<span class="add"> if ("PARAM_MT" .equals(keyword)) return parseParamMT (element);</span>
+<span class="add"> if ("CONCAT_MT" .equals(keyword)) return parseConcatMT (element);</span>
+<span class="add"> if ("INVERSE_MT" .equals(keyword)) return parseInverseMT (element);</span>
+<span class="add"> if ("PASSTHROUGH_MT".equals(keyword)) return parsePassThroughMT(element);</span>
+<span class="add"> }</span>
+<span class="add"> if (required) {</span>
+<span class="add"> throw element.parseFailed(null, Resources.format(ResourceKeys.ERROR_UNKNOW_TYPE_$1, key));</span>
+<span class="add"> }</span>
+<span class="add"> return null;</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses a "PARAM_MT" element. This element has the following pattern:</span>
+<span class="add"> *</span>
+<span class="add"> * <blockquote><code></span>
+<span class="add"> * PARAM_MT["<classification-name>" {,<parameter>}* ]</span>
+<span class="add"> * </code></blockquote></span>
+<span class="add"> *</span>
+<span class="add"> * @param parent The parent element.</span>
+<span class="add"> * @return The "PARAM_MT" element as an {@link MathTransform} object.</span>
+<span class="add"> * @throws ParseException if the "PARAM_MT" element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> private MathTransform parseParamMT(final Element parent) throws ParseException {</span>
+<span class="add"> final Element element = parent.pullElement("PARAM_MT");</span>
+<span class="add"> final String classification = element.pullString("classification");</span>
+<span class="add"> GeneralParameterValue[] parameters;</span>
+<span class="add"> try {</span>
+<span class="add"> parameters = mtFactory.getDefaultParameters(classification);</span>
+<span class="add"> } catch (NoSuchIdentifierException exception) {</span>
+<span class="add"> throw element.parseFailed(exception, null);</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /*</span>
+<span class="add"> * Scan over all PARAMETER["name", value] elements and</span>
+<span class="add"> * set the corresponding parameter in the ParameterList.</span>
+<span class="add"> */</span>
+<span class="add"> Element param;</span>
+<span class="add"> ParameterValueGroup params = new org.geotools.parameter.ParameterValueGroup(</span>
+<span class="add"> Collections.singletonMap("name", "params"), parameters);</span>
+<span class="add"> while ((param=element.pullOptionalElement("PARAMETER")) != null) {</span>
+<span class="add"> final String name = param.pullString("name");</span>
+<span class="add">//I am assuming this will not be a ParameterValueGroup (bad assumption?)</span>
+<span class="add"> ParameterValue parameter = (ParameterValue) params.getValue(name);</span>
+<span class="add">//should be able to use parameter.getValue().getClass() here, but it returns null</span>
+<span class="add"> if (Integer.class.equals(((OperationParameter)parameter.getDescriptor()).getValueClass())) {</span>
+<span class="add"> parameter.setValue(param.pullInteger("value"));</span>
+<span class="add"> } else {</span>
+<span class="add"> parameter.setValue(param.pullDouble("value"));</span>
+<span class="add"> }</span>
+<span class="add"> param.close();</span>
+<span class="add"> }</span>
+<span class="add"> element.close();</span>
+<span class="add"> try {</span>
+<span class="add"> return mtFactory.createParameterizedTransform(classification, parameters);</span>
+<span class="add"> } catch (FactoryException exception) {</span>
+<span class="add"> throw element.parseFailed(exception, null);</span>
+<span class="add"> }</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses a "INVERSE_MT" element. This element has the following pattern:</span>
+<span class="add"> *</span>
+<span class="add"> * <blockquote><code></span>
+<span class="add"> * INVERSE_MT[<math transform>]</span>
+<span class="add"> * </code></blockquote></span>
+<span class="add"> *</span>
+<span class="add"> * @param parent The parent element.</span>
+<span class="add"> * @return The "INVERSE_MT" element as an {@link MathTransform} object.</span>
+<span class="add"> * @throws ParseException if the "INVERSE_MT" element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> private MathTransform parseInverseMT(final Element parent) throws ParseException {</span>
+<span class="add"> final Element element = parent.pullElement("INVERSE_MT");</span>
+<span class="add"> try {</span>
+<span class="add"> final MathTransform transform = ((MathTransform)parseMathTransform(element, true)).inverse();</span>
+<span class="add"> element.close();</span>
+<span class="add"> return transform;</span>
+<span class="add"> }</span>
+<span class="add"> catch (NoninvertibleTransformException exception) {</span>
+<span class="add"> throw element.parseFailed(exception, null);</span>
+<span class="add"> }</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses a "PASSTHROUGH_MT" element. This element has the following pattern:</span>
+<span class="add"> *</span>
+<span class="add"> * <blockquote><code></span>
+<span class="add"> * PASSTHROUGH_MT[<integer>, <math transform>]</span>
+<span class="add"> * </code></blockquote></span>
+<span class="add"> *</span>
+<span class="add"> * @param parent The parent element.</span>
+<span class="add"> * @return The "PASSTHROUGH_MT" element as an {@link MathTransform} object.</span>
+<span class="add"> * @throws ParseException if the "PASSTHROUGH_MT" element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> private MathTransform parsePassThroughMT(final Element parent) throws ParseException {</span>
+<span class="add"> final Element element = parent.pullElement("PASSTHROUGH_MT");</span>
+<span class="add"> final int firstAffectedOrdinate = parent.pullInteger("firstAffectedOrdinate");</span>
+<span class="add"> final MathTransform transform = parseMathTransform(element, true);</span>
+<span class="add"> element.close();</span>
+<span class="add"> try {</span>
+<span class="add"> return mtFactory.createPassThroughTransform(firstAffectedOrdinate, transform, 0);</span>
+<span class="add"> } catch (FactoryException exception) {</span>
+<span class="add"> throw element.parseFailed(exception, null);</span>
+<span class="add"> }</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Parses a "CONCAT_MT" element. This element has the following pattern:</span>
+<span class="add"> *</span>
+<span class="add"> * <blockquote><code></span>
+<span class="add"> * CONCAT_MT[<math transform> {,<math transform>}*]</span>
+<span class="add"> * </code></blockquote></span>
+<span class="add"> *</span>
+<span class="add"> * @param parent The parent element.</span>
+<span class="add"> * @return The "CONCAT_MT" element as an {@link MathTransform} object.</span>
+<span class="add"> * @throws ParseException if the "CONCAT_MT" element can't be parsed.</span>
+<span class="add"> */</span>
+<span class="add"> private MathTransform parseConcatMT(final Element parent) throws ParseException {</span>
+<span class="add"> final Element element = parent.pullElement("CONCAT_MT");</span>
+<span class="add"> MathTransform transform = parseMathTransform(element, true);</span>
+<span class="add"></span>
+<span class="add"> MathTransform optionalTransform;</span>
+<span class="add"> while ((optionalTransform = parseMathTransform(element, false)) != null) {</span>
+<span class="add"> try {</span>
+<span class="add"> transform = mtFactory.createConcatenatedTransform(transform, optionalTransform);</span>
+<span class="add"> } catch (FactoryException exception) {</span>
+<span class="add"> throw element.parseFailed(exception, null);</span>
+<span class="add"> }</span>
+<span class="add"> }</span>
+<span class="add"> element.close();</span>
+<span class="add"> return transform;</span>
+<span class="add"> }</span>
+<span class="add"></span>
+<span class="add"> /**</span>
+<span class="add"> * Format the specified object. Current implementation just append {@link Object#toString},</span>
+<span class="add"> * since the <code>toString()</code> implementation for most {@link org.geotools.cs.Info}</span>
+<span class="add"> * objects is to returns a WKT.</span>
+<span class="add"> *</span>
+<span class="add"> * @task TODO: Provides pacakge private <code>Info.toString(WKTFormat)</code> implementations.</span>
+<span class="add"> * It would allows us to invoke <code>((Info)obj).toString(this)</code> here.</span>
+<span class="add"> */</span>
+<span class="add"> public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {</span>
+<span class="add"> return toAppendTo.append(obj);</span>
+<span class="add"> }</span>
+<span class="add">}</span>
+<span class="add"></span>
+<span class="add"></span></pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/06604/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/06604/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/07844/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/07844/HEADER.html?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/07844/HEADER.html (added)
+++ sis/ip-review/rev/07844/HEADER.html Tue May 19 10:09:00 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>Revision 7844</title>
+ </head>
+ <body>
+ <div>
+ <h1>Revision 7844</h1>
+<table>
+ <tr><td><b>Author:</b></td><td>jgarnett</td></tr>
+ <tr><td><b>Date:</b></td><td>2004-09-08</td></tr>
+ <tr><td><b>Message:</b></td><td>First round of resync with geoapi</td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/07844/HEADER.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/07844/HEADER.html
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/07844/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/07844/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/07844/MathTransformParser.xhtml (added)
+++ sis/ip-review/rev/07844/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser changes for revisions 7307:7844</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser changes for revisions 7307:7844</h1>
+
+<p>This commit contains only changes for GeoTools class names.
+ Those changes do not apply to SIS since the class name in Geotk and SIS are different.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r7307:7844 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 7307</th><th>Revision 7844</th></tr>
+<tr><td><pre>package org.geotools.referencing.wkt;
+
+// J2SE dependencies
+<span class="del">//import java.util.Set;</span>
+<span class="del">//import java.util.HashSet;</span>
+import java.util.Collections;
+
+// Parsing</pre></td>
+<td><pre>package org.geotools.referencing.wkt;
+
+// J2SE dependencies
+import java.util.Collections;
+
+// Parsing</pre></td></tr>
+<tr><td><pre>import org.opengis.referencing.operation.MathTransform;
+import org.opengis.parameter.GeneralParameterValue;
+import org.opengis.parameter.ParameterValue;
+<span class="del">import org.opengis.parameter.OperationParameter;</span>
+import org.opengis.parameter.ParameterValueGroup;
+import org.opengis.referencing.NoSuchIdentifierException;
+import org.opengis.referencing.FactoryException;</pre></td>
+<td><pre>import org.opengis.referencing.operation.MathTransform;
+import org.opengis.parameter.GeneralParameterValue;
+import org.opengis.parameter.ParameterValue;
+<span class="add">import org.opengis.parameter.ParameterDescriptor;</span>
+import org.opengis.parameter.ParameterValueGroup;
+import org.opengis.referencing.NoSuchIdentifierException;
+import org.opengis.referencing.FactoryException;</pre></td></tr>
+<tr><td><pre> * set the corresponding parameter in the ParameterList.
+ */
+ Element param;
+<span class="del"> ParameterValueGroup params = new org.geotools.parameter.ParameterValueGroup(</span>
+ Collections.singletonMap("name", "params"), parameters);
+ while ((param=element.pullOptionalElement("PARAMETER")) != null) {
+ final String name = param.pullString("name");
+//I am assuming this will not be a ParameterValueGroup (bad assumption?)
+<span class="del"> ParameterValue parameter = (ParameterValue) params.getValue(name);</span>
+//should be able to use parameter.getValue().getClass() here, but it returns null
+<span class="del"> if (Integer.class.equals(((OperationParameter)parameter.getDescriptor()).getValueClass())) {</span>
+ parameter.setValue(param.pullInteger("value"));
+ } else {
+<span class="del"> parameter.setValue(param.pullDouble("value"));</span>
+ }
+ param.close();
+ }</pre></td>
+<td><pre> * set the corresponding parameter in the ParameterList.
+ */
+ Element param;
+<span class="add"> ParameterValueGroup params = new org.geotools.parameter.ParameterGroup(</span>
+ Collections.singletonMap("name", "params"), parameters);
+ while ((param=element.pullOptionalElement("PARAMETER")) != null) {
+ final String name = param.pullString("name");
+//I am assuming this will not be a ParameterValueGroup (bad assumption?)
+<span class="add"> ParameterValue parameter = params.parameter(name);</span>
+//should be able to use parameter.getValue().getClass() here, but it returns null
+<span class="add"> if (Integer.class.equals(((ParameterDescriptor)parameter.getDescriptor()).getValueClass())) {</span>
+ parameter.setValue(param.pullInteger("value"));
+<span class="add"> } else if (Double.class.equals(((ParameterDescriptor)parameter.getDescriptor()).getValueClass())) {</span>
+<span class="add"> parameter.setValue(param.pullDouble("value"));</span>
+ } else {
+<span class="add"> parameter.setValue(param.pullString("value"));</span>
+ }
+ param.close();
+ }</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/07844/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/07844/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/10796/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/10796/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/10796/MathTransformParser.xhtml (added)
+++ sis/ip-review/rev/10796/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser changes for revisions 10795:10796</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser changes for revisions 10795:10796</h1>
+<p>Changes in this commit seem to be the result of some <cite>"auto reformat"</cite> tool execution.
+The <cite>Java</cite> - <cite>GeoAPI</cite> - <cite>GeoTools</cite> import ordering is altered,
+imports used only in Javadoc are lost and the encoding of non-ASCII characters is broken.
+This commit has been reverted, except for the removal of really unused imports which are keep removed.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r10795:10796 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 10795</th><th>Revision 10796</th></tr>
+<tr><td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, 2004 Geotools Project Managment Committee (PMC)
+<span class="del"> * (C) 2002, Institut de Recherche pour le Développement</span>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public</pre></td>
+<td><pre>/*
+ * Geotools 2 - OpenSource mapping toolkit
+ * (C) 2003, 2004 Geotools Project Managment Committee (PMC)
+<span class="add"> * (C) 2002, Institut de Recherche pour le D�veloppement</span>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public</pre></td></tr>
+<tr><td><pre>package org.geotools.referencing.wkt;
+
+// J2SE dependencies
+<span class="del">import java.util.Locale;</span>
+<span class="del">import java.util.Collections;</span>
+import java.text.ParsePosition;
+<span class="del">import java.text.ParseException;</span>
+
+<span class="del">// OpenGIS dependencies</span>
+<span class="del">import org.opengis.referencing.operation.MathTransformFactory;</span>
+<span class="del">import org.opengis.referencing.operation.MathTransform;</span>
+<span class="del">import org.opengis.parameter.GeneralParameterValue;</span>
+import org.opengis.parameter.ParameterValue;
+import org.opengis.parameter.ParameterValueGroup;
+<span class="del">import org.opengis.parameter.ParameterDescriptor;</span>
+import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.NoSuchIdentifierException;
+import org.opengis.referencing.operation.NoninvertibleTransformException;
+
+<span class="del">// Geotools dependencies</span>
+<span class="del">import org.geotools.referencing.FactoryFinder;</span>
+<span class="del">import org.geotools.resources.cts.Resources;</span>
+<span class="del">import org.geotools.resources.cts.ResourceKeys;</span>
+
+<span class="del"></span>
+/**
+ * Parser for {@linkplain MathTransform math transform}
+ * <A HREF="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/doc-files/WKT.html"><cite>Well</pre></td>
+<td><pre>package org.geotools.referencing.wkt;
+
+// J2SE dependencies
+<span class="add">import java.text.ParseException;</span>
+import java.text.ParsePosition;
+
+<span class="add">import org.geotools.referencing.FactoryFinder;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+<span class="add">import org.opengis.parameter.ParameterDescriptor;</span>
+import org.opengis.parameter.ParameterValue;
+import org.opengis.parameter.ParameterValueGroup;
+import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.NoSuchIdentifierException;
+<span class="add">import org.opengis.referencing.operation.MathTransform;</span>
+<span class="add">import org.opengis.referencing.operation.MathTransformFactory;</span>
+import org.opengis.referencing.operation.NoninvertibleTransformException;
+
+
+/**
+ * Parser for {@linkplain MathTransform math transform}
+ * <A HREF="http://geoapi.sourceforge.net/snapshot/javadoc/org/opengis/referencing/doc-files/WKT.html"><cite>Well</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/10796/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/10796/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/20874/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/20874/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/20874/MathTransformParser.xhtml (added)
+++ sis/ip-review/rev/20874/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser changes for revisions 20873:20874</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser changes for revisions 20873:20874</h1>
+<p>Changes in GeoTools header only. The removal of the <cite>"or (at your option) any later version"</cite> clause
+must be keep in Geotk for every classes having contribution from a developer other than those who accepted re-licensing.
+This header does not apply to Apache SIS, since the above-cited contributions are omitted.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r20873:20874 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 20873</th><th>Revision 20874</th></tr>
+<tr><td><pre>/*
+<span class="del"> * Geotools 2 - OpenSource mapping toolkit</span>
+<span class="del"> * (C) 2003, 2004 Geotools Project Managment Committee (PMC)</span>
+ * (C) 2002, Institut de Recherche pour le Développement
+ *
+ * This library is free software; you can redistribute it and/or</pre></td>
+<td><pre>/*
+<span class="add"> * GeoTools - OpenSource mapping toolkit</span>
+<span class="add"> * http://geotools.org</span>
+<span class="add"> *</span>
+<span class="add"> * (C) 2003-2006, Geotools Project Managment Committee (PMC)</span>
+ * (C) 2002, Institut de Recherche pour le Développement
+ *
+ * This library is free software; you can redistribute it and/or</pre></td></tr>
+<tr><td><pre> * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+<span class="del"> *</span>
+<span class="del"> * You should have received a copy of the GNU Lesser General Public</span>
+<span class="del"> * License along with this library; if not, write to the Free Software</span>
+<span class="del"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
+ */
+package org.geotools.referencing.wkt;</pre></td>
+<td><pre> * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+package org.geotools.referencing.wkt;</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/20874/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/20874/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html
Added: sis/ip-review/rev/25050/MathTransformParser.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/25050/MathTransformParser.xhtml?rev=1680225&view=auto
==============================================================================
--- sis/ip-review/rev/25050/MathTransformParser.xhtml (added)
+++ sis/ip-review/rev/25050/MathTransformParser.xhtml Tue May 19 10:09:00 2015
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="UTF-8"/>
+ <title>MathTransformParser changes for revisions 25049:25050</title>
+ <style type="text/css" media="all">
+ @import url("../../reports.css");
+ </style>
+ </head>
+ <body>
+ <div>
+ <h1>MathTransformParser changes for revisions 25049:25050</h1>
+<p>
+ The only change in this commit is to rename <code>FactoryFinder</code> as <code>ReferencingFactoryFinder</code>.
+ However this change does not apply to SIS since we do not plan to port <code>[Referencing]FactoryFinder</code>.
+ The plan is to replace them by some dependency injection mechanism.
+</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r25049:25050 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/wkt/MathTransformParser.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 25049</th><th>Revision 25050</th></tr>
+<tr><td><pre>import org.opengis.referencing.operation.OperationMethod;
+
+// Geotools dependencies
+<span class="del">import org.geotools.referencing.FactoryFinder;</span>
+import org.geotools.referencing.AbstractIdentifiedObject;
+import org.geotools.referencing.operation.DefaultMathTransformFactory;
+import org.geotools.resources.i18n.ErrorKeys;</pre></td>
+<td><pre>import org.opengis.referencing.operation.OperationMethod;
+
+// Geotools dependencies
+<span class="add">import org.geotools.referencing.ReferencingFactoryFinder;</span>
+import org.geotools.referencing.AbstractIdentifiedObject;
+import org.geotools.referencing.operation.DefaultMathTransformFactory;
+import org.geotools.resources.i18n.ErrorKeys;</pre></td></tr>
+<tr><td><pre> * @todo Pass hints in argument.
+ */
+public MathTransformParser(final Symbols symbols) {
+<span class="del"> this(symbols, FactoryFinder.getMathTransformFactory(null));</span>
+}
+
+/**</pre></td>
+<td><pre> * @todo Pass hints in argument.
+ */
+public MathTransformParser(final Symbols symbols) {
+<span class="add"> this(symbols, ReferencingFactoryFinder.getMathTransformFactory(null));</span>
+}
+
+/**</pre></td></tr>
+</table>
+ </div>
+ </body>
+</html>
Propchange: sis/ip-review/rev/25050/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/ip-review/rev/25050/MathTransformParser.xhtml
------------------------------------------------------------------------------
svn:mime-type = text/html