Author: desruisseaux
Date: Fri Feb  6 20:18:02 2015
New Revision: 1657946

URL: http://svn.apache.org/r1657946
Log:
Added IP reviews for DefaultMathTransformFactory and MathTransformProvider.

Added:
    sis/ip-review/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/MathTransformProvider.xhtml   (with props)
    sis/ip-review/rev/06476/
    sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/06476/HEADER.html   (with props)
    sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/07857/MathTransformProvider.xhtml   (with props)
    sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/10796/MathTransformProvider.xhtml   (with props)
    sis/ip-review/rev/11128/
    sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/11128/HEADER.html   (with props)
    sis/ip-review/rev/20874/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/20874/MathTransformProvider.xhtml   (with props)
    sis/ip-review/rev/26203/
    sis/ip-review/rev/26203/DefaultMathTransformFactory.xhtml   (with props)
    sis/ip-review/rev/26203/HEADER.html   (with props)

Added: sis/ip-review/DefaultMathTransformFactory.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/DefaultMathTransformFactory.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/DefaultMathTransformFactory.xhtml (added)
+++ sis/ip-review/DefaultMathTransformFactory.xhtml Fri Feb  6 20:18:02 2015
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>DefaultMathTransformFactory history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>DefaultMathTransformFactory 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/operation/DefaultMathTransformFactory.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">30760</td><td>2008-06-18</td><td>desruisseaux</td><td>Upgrated from 
JSR-108 to JSR-275 (GEOT-1266). Some opportunist javadoc fixes and @Override 
annotations in the process.</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">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">29845</td><td>2008-04-08</td><td>desruisseaux</td><td>More 
aggressive simplification of MathTransforms during concatenation. It is 
probably related to GEOT-1419, but I have not verified. This fix results in 
drastic performance improvement for the cases where 
DefaultConcatenatedTransform previously failed to see concatenation that could 
be simplified to identity transform. Those cases occured more often in 3D or 4D 
cases. It may have some benefit in the pure 2D case as well, but probably less 
often.</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">29416</td><td>2008-02-21</td><td>desruisseaux</td><td>Added a 
GeneralEnvelope.validate() method for restricting an envelope to its CRS or CS 
domain of validity, wraping around longitude if needed. Relaxed the 
transformations between GeographicBoundingBox and Envelope, accepting 
GeographicCRS that are not necessarly WGS84.</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">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">27923</td><td>2007-11-18</td><td>desruisseaux</td><td>Applying some 
more generic types, especially in the factory package. Required slight changes 
in the way FactoryRegistry is used, as documented in 
http://docs.codehaus.org/display/GEOTOOLS/Fixing+compilation+errors</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">26203</td><td>2007-07-11</td><td 
class="unav">chorner</td><td><a 
href="rev/26203/DefaultMathTransformFactory.xhtml">added synchronized to 
MathTransformFactory.getProvider to control flow into non-thread-safe 
FactoryRegistry</a></td></tr>
+<tr><td 
class="rev">25972</td><td>2007-06-21</td><td>desruisseaux</td><td>Replaced 
usage of deprecated classes/methods by the new ones. A side effect is to 
restore the buffering in ThreadedEpsgFactory, which was partially disabled by 
class name changes.</td></tr>
+<tr><td class="rev">24495</td><td>2007-02-19</td><td>desruisseaux</td><td>More 
work on the command line tool.</td></tr>
+<tr><td 
class="rev">24435</td><td>2007-02-16</td><td>desruisseaux</td><td>First draft 
of a CRS.main(String[]) method, as a more generic replacement of 
DefaultFactory.main(String[]). A bug in AllAuthorityFactory.getAuthorityCodes() 
has been resolved in the process.</td></tr>
+<tr><td 
class="rev">24427</td><td>2007-02-15</td><td>desruisseaux</td><td>Removed the 
Collection&lt;OperationMethod&gt; hack in some MathTransform creators. Replaced 
by a getLastUsedMethod() method implemented by a ThreadLocal.</td></tr>
+<tr><td 
class="rev">24384</td><td>2007-02-14</td><td>desruisseaux</td><td>GEOT-1160: 
First working implementation of 
AbstractAuthorityFactory.find(IdentifiedObject). This includes a 
package-privated AuthorityFactoryProxy class, together with many fix in the 
code base in order to get CRS.equalsIgnoreCase to work in the ProjectedCRS 
case.</td></tr>
+<tr><td 
class="rev">22452</td><td>2006-10-28</td><td>desruisseaux</td><td>Moved some 
methods from CRSUtilities to CRS (GEOT-547).</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/DefaultMathTransformFactory.xhtml">ip review</a></td></tr>
+<tr><td 
class="rev">19755</td><td>2006-05-31</td><td>desruisseaux</td><td>Added 
FORCE_LONGITUDE_FIRST_AXIS_ORDER hint (GEOT-858). This work implied a large 
amount of work, hunting for infinite recursive method calls in many 
places.</td></tr>
+<tr><td 
class="rev">19603</td><td>2006-05-19</td><td>desruisseaux</td><td>Upgrated 
maven-javadoc-plugin.</td></tr>
+<tr><td 
class="rev">17902</td><td>2006-02-07</td><td>desruisseaux</td><td>Javadoc 
fixes.</td></tr>
+<tr><td 
class="rev">17720</td><td>2006-01-24</td><td>desruisseaux</td><td>Method 
signature change in GeneraleEnvelope before 2.2-RC1 release. This is a 
compatible change if the user recompile its code.</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">17522</td><td>2006-01-11</td><td>desruisseaux</td><td>Added a few 
experimental @tutorial javadoc tags.</td></tr>
+<tr><td 
class="rev">16983</td><td>2005-11-25</td><td>desruisseaux</td><td>Replaced 
references to static fields and methods of CitationImpl.* by 
Citations.*</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">14657</td><td>2005-07-01</td><td>desruisseaux</td><td>Ongoing work 
for the port of grid coverage operations from 'legacy' to 'main' (GEOT-413): 
ported SampleDimensionSelect</td></tr>
+<tr><td 
class="rev">14550</td><td>2005-06-16</td><td>desruisseaux</td><td>Removed 
deprecated fields and methods</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">13752</td><td>2005-05-23</td><td>desruisseaux</td><td>Added the 
'Impl' suffix to direct implementations of all metadata interfaces; deprecated 
the old implementations (not yet deleted).</td></tr>
+<tr><td 
class="rev">11363</td><td>2005-02-12</td><td>desruisseaux</td><td>Milestone in 
EPSG factory port: Datum now fully supported</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">11140</td><td>2005-02-06</td><td>desruisseaux</td><td>Work 
in progres for GEOT-400 (CoordinateOperationFactory should create appropriate 
subclass of CoordinateOperation)</td></tr>
+<tr><td 
class="rev">11136</td><td>2005-02-05</td><td>desruisseaux</td><td>Refactored 
ClassFinder static methods as ordinary methods in a ServiceRegistry subclass: 
FactoryRegistry</td></tr>
+<tr><td class="rev">11128</td><td>2005-02-04</td><td 
class="unav">rgould</td><td><a 
href="rev/11128/DefaultMathTransformFactory.xhtml">Split the class loading out 
of FactoryFinder and MathTransformFactory into one class, 
ClassFinder.</a></td></tr>
+<tr><td class="rev">11100</td><td>2005-02-04</td><td>desruisseaux</td><td>More 
tests and bug fixes in CRS</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">11008</td><td>2005-02-02</td><td>desruisseaux</td><td>Ask 
OperationMethod to be specified explicitly</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">10944</td><td>2005-02-01</td><td>desruisseaux</td><td>Bug 
fix in ProjectedCRS: axis swapping and units conversion were not correctly 
handled</td></tr>
+<tr><td class="rev">10796</td><td>2005-01-28</td><td 
class="unav">dzwiers</td><td><a 
href="rev/10796/DefaultMathTransformFactory.xhtml">imports cleaned</a></td></tr>
+<tr><td 
class="rev">10228</td><td>2005-01-04</td><td>desruisseaux</td><td>Renamed 
'getDimSource' as 'getSourceDimension'</td></tr>
+<tr><td class="rev">9346</td><td>2004-11-30</td><td>desruisseaux</td><td>First 
working version of CoordinateOperationFactory</td></tr>
+<tr><td class="rev">9266</td><td>2004-11-23</td><td>desruisseaux</td><td>Last 
WKT tuning; parsing and formatting should now be functional</td></tr>
+<tr><td class="rev">9243</td><td>2004-11-22</td><td>desruisseaux</td><td>Tuned 
WKT parsing and formatting</td></tr>
+<tr><td class="rev">9203</td><td>2004-11-19</td><td>desruisseaux</td><td>WKT 
debugging / cleaning</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">9118</td><td>2004-11-14</td><td>desruisseaux</td><td>Mercator 
projection port completed (but untested) as a use case for other projection 
ports</td></tr>
+<tr><td class="rev">9117</td><td>2004-11-13</td><td>desruisseaux</td><td>Added 
the capability to list all available MathTransforms</td></tr>
+<tr><td class="rev">9103</td><td>2004-11-12</td><td>desruisseaux</td><td>Fixed 
and enabled test cases</td></tr>
+<tr><td 
class="rev">9092</td><td>2004-11-11</td><td>desruisseaux</td><td>Slight 
modification in the protected API for handling parameters</td></tr>
+<tr><td 
class="rev">8875</td><td>2004-10-27</td><td>desruisseaux</td><td>Miscellaneous 
cleaning</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">8796</td><td>2004-10-22</td><td>desruisseaux</td><td>Cleaning 
referencing's operation basic package</td></tr>
+<tr><td class="rev">8518</td><td>2004-10-11</td><td>desruisseaux</td><td>Apply 
changes voted in OGC meeting at Southampton: use of Identifier and 
GenericName</td></tr>
+<tr><td class="rev">7857</td><td>2004-09-09</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/DefaultMathTransformFactory.xhtml">name to getName().toString( 
null )</a></td></tr>
+<tr><td class="rev">7848</td><td>2004-09-08</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/DefaultMathTransformFactory.xhtml">round 2 of sync with 
geoapi</a></td></tr>
+<tr><td class="rev">7845</td><td>2004-09-08</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/DefaultMathTransformFactory.xhtml">First round of resync with 
geoapi</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">6536</td><td>2004-06-25</td><td>desruisseaux</td><td>Added 
SingleCRS class / Renamed ObliqueCartesianCS as AffineCS / Moved Position as 
super-interface for DirectPosition and Point</td></tr>
+<tr><td class="rev">6476</td><td>2004-06-19</td><td 
class="unav">rschulz</td><td><a 
href="rev/06476/DefaultMathTransformFactory.xhtml">implemented 
createFromWKT()</a></td></tr>
+<tr><td class="rev">6440</td><td>2004-06-13</td><td>desruisseaux</td><td>Added 
GeocentricTransform / Added registry service in TransformFactory / Refactored 
JUnit tests</td></tr>
+<tr><td 
class="rev">6387</td><td>2004-06-12</td><td>desruisseaux</td><td>Partial 
implementation of MathTransformFactory and WKT parser</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/MathTransformProvider.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/MathTransformProvider.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/MathTransformProvider.xhtml (added)
+++ sis/ip-review/MathTransformProvider.xhtml Fri Feb  6 20:18:02 2015
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MathTransformProvider history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MathTransformProvider 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/operation/MathTransformProvider.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">30760</td><td>2008-06-18</td><td>desruisseaux</td><td>Upgrated from 
JSR-108 to JSR-275 (GEOT-1266). Some opportunist javadoc fixes and @Override 
annotations in the process.</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">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright: Update 
referencing headers</td></tr>
+<tr><td 
class="rev">30313</td><td>2008-05-16</td><td>desruisseaux</td><td>Changed my 
mind about Utilities.shallowEquals(Object,Object) and renamed it as equals, 
since a few tests show that the compiler always select the best overloaded 
flavor working on primitive types (except if an argument is a boolean and the 
other a different primitive type). Updated a few references. Fixed a few 
javadoc warnings by explicit declaration of parameter and return 
values.</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">29852</td><td>2008-04-08</td><td>desruisseaux</td><td>The 
previous commit was about simplifying (in the sense of simplier MathTransform 
result, not simplier code) ConcatenatedTransform. This commit is about 
simplifying the ConcatenatedOperation which contains that 
ConcatenatedTransform. Related to GEOT-1419.</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">28801</td><td>2008-01-17</td><td>desruisseaux</td><td>Made 
CoverageStack more tolerant to heterogenous CRS (unfinished work). Some Java 5 
type safety added.</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">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">25262</td><td>2007-04-23</td><td>desruisseaux</td><td>Finished 
review of metadata and factory hints change. Fixed a potential glitch in 
parameter names handling (some code were disabled in AbstractIdentifiedObject 
apparently in order to avoid a ClassCastException caused by the spit of 
org.opengis.metadata.Identifier in two interfaces, Identifier and 
ReferenceIdentifier. Fixed the exception and reenabled the code). Not sure yet 
what the consequence was. It may help for the stereographic projection issue, 
but need to check.</td></tr>
+<tr><td 
class="rev">24607</td><td>2007-02-26</td><td>desruisseaux</td><td>Avoid 
UnformattableObjectException for 'LOCAL_CS' and 'VERT_CS' WKT elements. Try to 
provides some hints about the cause for the other cases of unformattable 
WKT.</td></tr>
+<tr><td 
class="rev">24384</td><td>2007-02-14</td><td>desruisseaux</td><td>GEOT-1160: 
First working implementation of 
AbstractAuthorityFactory.find(IdentifiedObject). This includes a 
package-privated AuthorityFactoryProxy class, together with many fix in the 
code base in order to get CRS.equalsIgnoreCase to work in the ProjectedCRS 
case.</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/MathTransformProvider.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">17522</td><td>2006-01-11</td><td>desruisseaux</td><td>Added a few 
experimental @tutorial javadoc tags.</td></tr>
+<tr><td 
class="rev">16983</td><td>2005-11-25</td><td>desruisseaux</td><td>Replaced 
references to static fields and methods of CitationImpl.* by 
Citations.*</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">14657</td><td>2005-07-01</td><td>desruisseaux</td><td>Ongoing work 
for the port of grid coverage operations from 'legacy' to 'main' (GEOT-413): 
ported SampleDimensionSelect</td></tr>
+<tr><td class="rev">14608</td><td>2005-06-25</td><td>desruisseaux</td><td>EPSG 
authority factory now uses path informations for ConcatenatedOperation object 
creations / Added PostgreSQL plugin (mostly as a demo) / Javadoc fixes</td></tr>
+<tr><td 
class="rev">14593</td><td>2005-06-23</td><td>desruisseaux</td><td>First JUnit 
test for 'createCoordinateOperation' (GEOT-589)</td></tr>
+<tr><td 
class="rev">14570</td><td>2005-06-21</td><td>desruisseaux</td><td>Addition of 
geocentric affine transform as of GEOT-591</td></tr>
+<tr><td 
class="rev">14564</td><td>2005-06-20</td><td>desruisseaux</td><td>Initial 
implementation of GEOT-589. Partially tested, more tests to come</td></tr>
+<tr><td 
class="rev">14235</td><td>2005-06-10</td><td>desruisseaux</td><td>Replaced 
_PROPERTY suffix by _KEY as of GEOT-577</td></tr>
+<tr><td 
class="rev">14205</td><td>2005-06-09</td><td>desruisseaux</td><td>Updated to 
GeoAPI 2.0 final release</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">13778</td><td>2005-05-25</td><td>desruisseaux</td><td>Initial draft 
of EPSG-HSQL plugin (database not yet included)</td></tr>
+<tr><td 
class="rev">13773</td><td>2005-05-24</td><td>desruisseaux</td><td>Removed old 
metadata implementations (they are now renamed with 'Impl' suffix) / Use OGC 
citation instead of OPEN_GIS</td></tr>
+<tr><td 
class="rev">13752</td><td>2005-05-23</td><td>desruisseaux</td><td>Added the 
'Impl' suffix to direct implementations of all metadata interfaces; deprecated 
the old implementations (not yet deleted).</td></tr>
+<tr><td 
class="rev">13376</td><td>2005-05-05</td><td>desruisseaux</td><td>First working 
version of WarpTransform2D</td></tr>
+<tr><td 
class="rev">12020</td><td>2005-03-11</td><td>desruisseaux</td><td>First working 
version of Resampler2D port (side effect: GEOT-390 fix)</td></tr>
+<tr><td class="rev">11367</td><td>2005-02-13</td><td>desruisseaux</td><td>Port 
of EPSG authority factory now completed. Preliminary tests seem okay. Not yet 
registered in FactoryFinder.</td></tr>
+<tr><td 
class="rev">11366</td><td>2005-02-12</td><td>desruisseaux</td><td>Almost fully 
functional EPSG factory (remaining bug in ProjectedCRS parameter 
names)</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">11100</td><td>2005-02-04</td><td>desruisseaux</td><td>More 
tests and bug fixes in CRS</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/MathTransformProvider.xhtml">imports cleaned</a></td></tr>
+<tr><td 
class="rev">9118</td><td>2004-11-14</td><td>desruisseaux</td><td>Mercator 
projection port completed (but untested) as a use case for other projection 
ports</td></tr>
+<tr><td class="rev">9117</td><td>2004-11-13</td><td>desruisseaux</td><td>Added 
the capability to list all available MathTransforms</td></tr>
+<tr><td class="rev">9104</td><td>2004-11-12</td><td>desruisseaux</td><td>First 
prototype of a MapProjection implementation</td></tr>
+<tr><td class="rev">9103</td><td>2004-11-12</td><td>desruisseaux</td><td>Fixed 
and enabled test cases</td></tr>
+<tr><td 
class="rev">9092</td><td>2004-11-11</td><td>desruisseaux</td><td>Slight 
modification in the protected API for handling parameters</td></tr>
+<tr><td 
class="rev">8841</td><td>2004-10-26</td><td>desruisseaux</td><td>org.geotools.referencing.Identifier
 implementation implements GenericName as well, for use as alias</td></tr>
+<tr><td 
class="rev">8796</td><td>2004-10-22</td><td>desruisseaux</td><td>Cleaning 
referencing's operation basic package</td></tr>
+<tr><td class="rev">8729</td><td>2004-10-21</td><td>desruisseaux</td><td>Avoid 
use of deprecated method 'getParameter'</td></tr>
+<tr><td class="rev">8518</td><td>2004-10-11</td><td>desruisseaux</td><td>Apply 
changes voted in OGC meeting at Southampton: use of Identifier and 
GenericName</td></tr>
+<tr><td class="rev">7857</td><td>2004-09-09</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/MathTransformProvider.xhtml">name to getName().toString( null 
)</a></td></tr>
+<tr><td class="rev">7845</td><td>2004-09-08</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/MathTransformProvider.xhtml">First round of resync with 
geoapi</a></td></tr>
+<tr><td class="rev">7707</td><td>2004-08-31</td><td 
class="unav">jgarnett</td><td><a 
href="rev/07857/MathTransformProvider.xhtml">Change over to parameter 
descriptor.</a></td></tr>
+<tr><td class="rev">7307</td><td>2004-07-29</td><td 
class="unav">rschulz</td><td><a 
href="rev/07857/MathTransformProvider.xhtml">added stringValue() convenience 
method</a></td></tr>
+<tr><td class="rev">7131</td><td>2004-07-21</td><td>desruisseaux</td><td>Added 
FactoryException declaration</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">6721</td><td>2004-07-05</td><td>desruisseaux</td><td>Fixed 
unit test failure</td></tr>
+<tr><td 
class="rev">6708</td><td>2004-07-04</td><td>desruisseaux</td><td>Initial draft 
of MapProjection.Provider</td></tr>
+<tr><td class="rev">6704</td><td>2004-07-03</td><td>desruisseaux</td><td>Parse 
MathTransform arguments using parametes available in providers</td></tr>
+<tr><td 
class="rev">6575</td><td>2004-06-27</td><td>desruisseaux</td><td>MatrixParameters
 now uses ParameterRealValue / In providers, moved parameters in a static 
field.</td></tr>
+<tr><td class="rev">6440</td><td>2004-06-13</td><td>desruisseaux</td><td>Added 
GeocentricTransform / Added registry service in TransformFactory / Refactored 
JUnit tests</td></tr>
+<tr><td 
class="rev">6383</td><td>2004-06-11</td><td>desruisseaux</td><td>Search for 
parameters and operation methods by identifiers</td></tr>
+<tr><td class="rev">6375</td><td>2004-06-10</td><td>desruisseaux</td><td>Work 
on parameters handling</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml (added)
+++ sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml Fri Feb  6 
20:18:02 2015
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>DefaultMathTransformFactory changes for revisions 6475:6476</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>DefaultMathTransformFactory changes for revisions 6475:6476</h1>
+<p>This commit is only uncommenting a block of code written by Martin, with a 
change in a class name, method name and a cast.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change 
--ignore-all-space --ignore-eol-style" -r6475:6476 
http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/DefaultMathTransformFactory.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 6475</th><th>Revision 6476</th></tr>
+<tr><td><pre>import 
org.geotools.referencing.operation.transform.ProjectiveTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import org.geotools.referencing.operation.transform.ConcatenatedTransform;
+
+// Resources
+import org.geotools.util.WeakHashSet;</pre></td>
+<td><pre>import 
org.geotools.referencing.operation.transform.ProjectiveTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import org.geotools.referencing.operation.transform.ConcatenatedTransform;
+<span class="add">import 
org.geotools.referencing.wkt.MathTransformParser;</span>
+
+// Resources
+import org.geotools.util.WeakHashSet;</pre></td></tr>
+<tr><td><pre>            // Not a big deal if we are not synchronized. If this 
method is invoked in
+            // same time by two different threads, we may have two WKTParser 
objects
+            // for a short time. It doesn't hurt...
+<span class="del">//TODO            parser = new WKTParser(Locale.US, 
this);</span>
+        }
+<span class="del">        throw new FactoryException("Not yet 
implemented.");</span>
+<span class="del">//        try {</span>
+<span class="del">//            return parser.parseMathTransform(text);</span>
+<span class="del">//        } catch (ParseException exception) {</span>
+<span class="del">//            final Throwable cause = 
exception.getCause();</span>
+<span class="del">//            if (cause instanceof FactoryException) {</span>
+<span class="del">//                throw (FactoryException) cause;</span>
+<span class="del">//            }</span>
+<span class="del">//            throw new 
FactoryException(exception.getLocalizedMessage(), exception);</span>
+<span class="del">//        }</span>
+    }
+
+    /**
+     * Scans for provider plug-ins on the application class path. This method 
is needed because the</pre></td>
+<td><pre>        // Not a big deal if we are not synchronized. If this method 
is invoked in
+        // same time by two different threads, we may have two WKTParser 
objects
+        // for a short time. It doesn't hurt...
+<span class="add">        parser = new MathTransformParser(Locale.US);</span>
+    }
+<span class="add">    try {</span>
+<span class="add">        return (MathTransform) 
parser.parseObject(text);</span>
+<span class="add">    } catch (ParseException exception) {</span>
+<span class="add">        final Throwable cause = exception.getCause();</span>
+<span class="add">        if (cause instanceof FactoryException) {</span>
+<span class="add">            throw (FactoryException) cause;</span>
+}
+<span class="add">        throw new 
FactoryException(exception.getLocalizedMessage(), exception);</span>
+<span class="add">    }</span>
+<span class="add">}</span>
+
+/**
+ * Scans for provider plug-ins on the application class path. This method is 
needed because the</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/06476/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/06476/HEADER.html
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/06476/HEADER.html?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/06476/HEADER.html (added)
+++ sis/ip-review/rev/06476/HEADER.html Fri Feb  6 20:18:02 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 6476</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 6476</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rschulz</td></tr>
+  <tr><td><b>Date:</b></td><td>2004-06-19</td></tr>
+  <tr><td><b>Message:</b></td><td>implemented createFromWKT()</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/06476/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/06476/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml (added)
+++ sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml Fri Feb  6 
20:18:02 2015
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>DefaultMathTransformFactory changes for revisions 7844:7857</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>DefaultMathTransformFactory changes for revisions 7844:7857</h1>
+<p>Most of the changes are only reflecting changes in GeoAPI interface names.
+  Furthermore this method has been rewritten since the return type is 
different in current GeoAPI interface.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change 
--ignore-all-space --ignore-eol-style" -r7844:7857 
http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/DefaultMathTransformFactory.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 7844</th><th>Revision 7857</th></tr>
+<tr><td><pre>import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.operation.Matrix;
+import org.opengis.referencing.operation.MathTransform;
+<span class="del">import 
org.opengis.referencing.operation.MathTransform2D;</span>
+import org.opengis.referencing.NoSuchIdentifierException;
+<span class="del">import 
org.opengis.parameter.GeneralOperationParameter;</span>
+import org.opengis.parameter.GeneralParameterValue;
+
+// Geotools dependencies
+import org.geotools.referencing.Identifier;         // For javadoc
+import org.geotools.referencing.wkt.AbstractParser;
+<span class="del">import 
org.geotools.referencing.operation.GeneralMatrix;</span>
+import org.geotools.referencing.operation.transform.ProjectiveTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import 
org.geotools.referencing.operation.transform.ConcatenatedTransform;</pre></td>
+<td><pre>import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.operation.Matrix;
+import org.opengis.referencing.operation.MathTransform;
+import org.opengis.referencing.NoSuchIdentifierException;
+import org.opengis.parameter.GeneralParameterValue;
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+
+// Geotools dependencies
+<span class="add">import org.geotools.parameter.Parameters;</span>
+import org.geotools.referencing.Identifier;         // For javadoc
+import org.geotools.referencing.wkt.AbstractParser;
+import org.geotools.referencing.operation.transform.ProjectiveTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import 
org.geotools.referencing.operation.transform.ConcatenatedTransform;</pre></td></tr>
+<tr><td><pre>public GeneralParameterValue[] getDefaultParameters(final String 
identifier)
+        throws NoSuchIdentifierException
+{
+<span class="del">    final GeneralOperationParameter[] parameters = 
getProvider(identifier).getParameters();</span>
+<span class="del">    final GeneralParameterValue[] values = new 
GeneralParameterValue[parameters.length];</span>
+<span class="del">    for (int i=0; i&lt;values.length; i++) {</span>
+<span class="del">        values[i] = parameters[i].createValue();</span>
+    }
+<span class="del">    return values;</span>
+<span class="del">}</span>
+
+/**
+ * Creates a transform from an {@linkplain 
org.geotools.referencing.operation.OperationMethod</pre></td>
+<td><pre>public GeneralParameterValue[] getDefaultParameters(final String 
identifier)
+        throws NoSuchIdentifierException
+{
+<span class="add">    ParameterDescriptorGroup type = 
getProvider(identifier).getParameters();</span>
+<span class="add">    ParameterValueGroup group = (ParameterValueGroup) 
type.createValue();</span>
+<span class="add"></span>
+<span class="add">    return Parameters.array( group );</span>
+    }
+
+/**
+ * Creates a transform from an {@linkplain 
org.geotools.referencing.operation.OperationMethod</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/07857/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/07857/MathTransformProvider.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/07857/MathTransformProvider.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/07857/MathTransformProvider.xhtml (added)
+++ sis/ip-review/rev/07857/MathTransformProvider.xhtml Fri Feb  6 20:18:02 2015
@@ -0,0 +1,416 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MathTransformProvider changes for revisions 7306:7857</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MathTransformProvider changes for revisions 7306:7857</h1>
+<p>Those changes do not apply anymore to Apache SIS, since this implementation 
has been replaced by a functional interface
+  with only the <code>createMathTransform(…)</code> method.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change 
--ignore-all-space --ignore-eol-style" -r7306:7857 
http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/MathTransformProvider.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 7306</th><th>Revision 7857</th></tr>
+<tr><td><pre>package org.geotools.referencing.operation;
+
+// J2SE dependencies
+<span class="del">import java.util.Map;</span>
+import java.util.HashMap;
+<span class="del">import java.util.Collections;</span>
+import java.util.Locale;
+
+<span class="del">// OpenGIS dependencies</span>
+<span class="del">import org.opengis.parameter.ParameterValue;</span>
+<span class="del">import org.opengis.parameter.OperationParameter;</span>
+<span class="del">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.parameter.GeneralParameterValue;
+<span class="del">import org.opengis.parameter.OperationParameterGroup;</span>
+<span class="del">import 
org.opengis.parameter.GeneralOperationParameter;</span>
+<span class="del">import 
org.opengis.parameter.ParameterNotFoundException;</span>
+<span class="del">import 
org.opengis.parameter.ParameterNotFoundException;</span>
+import org.opengis.parameter.InvalidParameterNameException;
+import org.opengis.parameter.InvalidParameterValueException;
+<span class="del">import org.opengis.metadata.Identifier;</span>
+import org.opengis.referencing.IdentifiedObject;
+<span class="del">import org.opengis.referencing.FactoryException;</span>
+import org.opengis.referencing.operation.MathTransform;
+<span class="del">import 
org.opengis.spatialschema.geometry.MismatchedDimensionException;</span>
+
+<span class="del">// Geotools dependencies</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>
+/**
+ * An {@linkplain OperationMethod operation method} capable to creates a 
{@linkplain MathTransform
+ * math transform} from set of {@linkplain GeneralParameterValue parameter 
values}.</pre></td>
+<td><pre>package org.geotools.referencing.operation;
+
+// J2SE dependencies
+import java.util.HashMap;
+import java.util.Locale;
+<span class="add">import java.util.Map;</span>
+
+<span class="add">import org.geotools.parameter.Parameters;</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.metadata.Identifier;</span>
+<span class="add">import 
org.opengis.parameter.GeneralParameterDescriptor;</span>
+import org.opengis.parameter.GeneralParameterValue;
+import org.opengis.parameter.InvalidParameterNameException;
+import org.opengis.parameter.InvalidParameterValueException;
+<span class="add">import org.opengis.parameter.ParameterDescriptor;</span>
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="add">import 
org.opengis.parameter.ParameterNotFoundException;</span>
+<span class="add">import org.opengis.parameter.ParameterValue;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+<span class="add">import org.opengis.referencing.FactoryException;</span>
+import org.opengis.referencing.IdentifiedObject;
+import org.opengis.referencing.operation.MathTransform;
+
+
+/**
+ * An {@linkplain OperationMethod operation method} capable to creates a 
{@linkplain MathTransform
+ * math transform} from set of {@linkplain GeneralParameterValue parameter 
values}.</pre></td></tr>
+<tr><td><pre>private static final long serialVersionUID = 7530475536803158473L;
+
+/**
+<span class="del"> * The {@linkplain #getParameters parameters} represented as 
a group of descriptors. This</span>
+<span class="del"> * convenience field make it easier to {@linkplain 
OperationParameterGroup#getParameter(String)</span>
+<span class="del"> * search for named parameters}.</span>
+<span class="del"> */</span>
+<span class="del">protected final OperationParameterGroup parameters;</span>
+<span class="del"></span>
+<span class="del">/**</span>
+ * Constructs a math transform provider from a set of parameters. The provider
+ * {@linkplain #getIdentifiers identifiers} will be the same than the parameter
+ * ones.</pre></td>
+<td><pre>private static final long serialVersionUID = 7530475536803158473L;
+
+/**
+ * Constructs a math transform provider from a set of parameters. The provider
+ * {@linkplain #getIdentifiers identifiers} will be the same than the parameter
+ * ones.</pre></td></tr>
+<tr><td><pre> */
+public MathTransformProvider(final int sourceDimensions,
+                             final int targetDimensions,
+<span class="del">                             final OperationParameterGroup 
parameters)</span>
+{
+    this(toMap(parameters, null), sourceDimensions, targetDimensions, 
parameters);
+}</pre></td>
+<td><pre> */
+public MathTransformProvider(final int sourceDimensions,
+                             final int targetDimensions,
+<span class="add">                             final ParameterDescriptorGroup 
parameters)</span>
+{
+    this(toMap(parameters, null), sourceDimensions, targetDimensions, 
parameters);
+}</pre></td></tr>
+<tr><td><pre>/**
+ * Constructs a math transform provider from a set of properties.
+ * The properties map is given unchanged to the
+<span class="del"> * {@linkplain 
OperationMethod#OperationMethod(Map,int,int,GeneralOperationParameter[])</span>
+ * super-class constructor}.
+ *
+ * @param properties Set of properties. Should contains at least 
&lt;code&gt;"name"&lt;/code&gt;.</pre></td>
+<td><pre>/**
+ * Constructs a math transform provider from a set of properties.
+ * The properties map is given unchanged to the
+<span class="add"> * {@linkplain 
OperationMethod#OperationMethod(Map,int,int,GeneralParameterDescriptor[])</span>
+ * super-class constructor}.
+ *
+ * @param properties Set of properties. Should contains at least 
&lt;code&gt;"name"&lt;/code&gt;.</pre></td></tr>
+<tr><td><pre>public MathTransformProvider(final Map properties,
+                             final int sourceDimensions,
+                             final int targetDimensions,
+<span class="del">                             final OperationParameterGroup 
parameters)</span>
+{
+<span class="del">    super(properties, sourceDimensions, targetDimensions, 
parameters.getParameters());</span>
+<span class="del">    this.parameters = parameters;</span>
+}
+
+/**</pre></td>
+<td><pre>public MathTransformProvider(final Map properties,
+                             final int sourceDimensions,
+                             final int targetDimensions,
+<span class="add">                             final ParameterDescriptorGroup 
parameters)</span>
+{
+<span class="add">    super(properties, sourceDimensions, targetDimensions, 
parameters);</span>
+}
+
+/**</pre></td></tr>
+<tr><td><pre>        throw new IllegalArgumentException();
+    }
+    final Map properties = new HashMap(4);
+<span class="del">    properties.put("name", (parameters!=null) ? 
parameters.getName(null) : identifiers[0].getCode());</span>
+    properties.put("identifiers", identifiers);
+    return properties;
+}</pre></td>
+<td><pre>        throw new IllegalArgumentException();
+    }
+    final Map properties = new HashMap(4);
+<span class="add">    properties.put("name", (parameters!=null) ? 
parameters.getName().toString() : identifiers[0].getCode());</span>
+    properties.put("identifiers", identifiers);
+    return properties;
+}</pre></td></tr>
+<tr><td><pre> * @param identifiers The operation identifiers. Should contains 
at least one identifier.
+ * @param parameters The set of parameters, or &lt;code&gt;null&lt;/code&gt; 
or an empty array if none.
+ */
+<span class="del">protected static OperationParameterGroup group(final 
Identifier[] identifiers,</span>
+<span class="del">                                               final 
GeneralOperationParameter[] parameters)</span>
+{
+<span class="del">    return new 
org.geotools.parameter.OperationParameterGroup(toMap(null, identifiers), 
parameters);</span>
+}
+
+/**</pre></td>
+<td><pre> * @param identifiers The operation identifiers. Should contains at 
least one identifier.
+ * @param parameters The set of parameters, or &lt;code&gt;null&lt;/code&gt; 
or an empty array if none.
+ */
+<span class="add">protected static ParameterDescriptorGroup group(final 
Identifier[] identifiers,</span>
+<span class="add">                                               final 
GeneralParameterDescriptor[] parameters)</span>
+{
+<span class="add">    return new 
org.geotools.parameter.ParameterGroupDescriptor(toMap(null, identifiers), 
parameters);</span>
+}
+
+/**</pre></td></tr>
+<tr><td><pre>* compares all parameter names against the name declared in 
{@link #parameters} and
+* thrown an exception if an unknow parameter is found. It also ensure that all 
values
+* are assignable to the
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getValueClass expected class}, are 
between the</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getMinimumValue minimum} and</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getMaximumValue maximum} values and 
are one of the</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getValidValues set of valid 
values}.</span>
+* If the value fails any of those tests, then an exception is thrown.
+*
+* @param  values The parameters values to check.</pre></td>
+<td><pre>* compares all parameter names against the name declared in {@link 
#parameters} and
+* thrown an exception if an unknow parameter is found. It also ensure that all 
values
+* are assignable to the
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getValueClass expected class}, are 
between the</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getMinimumValue minimum} and</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getMaximumValue maximum} values and 
are one of the</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getValidValues set of valid 
values}.</span>
+* If the value fails any of those tests, then an exception is thrown.
+*
+* @param  values The parameters values to check.</pre></td></tr>
+<tr><td><pre>for (int i=0; i&lt;values.length; i++) {
+    final GeneralParameterValue value = values[i];
+    if (value instanceof ParameterValueGroup) {
+<span class="del">        ensureValidValues(((ParameterValueGroup) 
value).getValues());</span>
+        continue;
+    }
+    final String name;
+<span class="del">    final GeneralOperationParameter userDescriptor = 
value.getDescriptor();</span>
+    final Identifier[] identifiers = userDescriptor.getIdentifiers();
+    if (identifiers!=null &amp;&amp; identifiers.length!=0) {
+        name = identifiers[0].getCode();
+    } else {
+<span class="del">        name = userDescriptor.getName(null);</span>
+    }
+<span class="del">    final OperationParameter descriptor;</span>
+    try {
+<span class="del">        descriptor = parameters.getParameter(name);</span>
+    } catch (ParameterNotFoundException cause) {
+        final InvalidParameterNameException exception =
+              new InvalidParameterNameException(Resources.format(</pre></td>
+<td><pre>for (int i=0; i&lt;values.length; i++) {
+    final GeneralParameterValue value = values[i];
+    if (value instanceof ParameterValueGroup) {
+<span class="add">        ensureValidValues( 
Parameters.array((ParameterValueGroup) value));</span>
+        continue;
+    }
+    final String name;
+<span class="add">    final GeneralParameterDescriptor userDescriptor = 
value.getDescriptor();</span>
+    final Identifier[] identifiers = userDescriptor.getIdentifiers();
+    if (identifiers!=null &amp;&amp; identifiers.length!=0) {
+        name = identifiers[0].getCode();
+    } else {
+<span class="add">        name = userDescriptor.getName().toString();</span>
+    }
+<span class="add">    final ParameterDescriptor descriptor;</span>
+    try {
+<span class="add">        descriptor = 
getParameters().getParameter(name);</span>
+    } catch (ParameterNotFoundException cause) {
+        final InvalidParameterNameException exception =
+              new 
InvalidParameterNameException(Resources.format(</pre></td></tr>
+<tr><td><pre>        throw exception;
+    }
+    if (value instanceof ParameterValue) {
+<span class="del">        
org.geotools.parameter.ParameterValue.ensureValidValue(descriptor,</span>
+                                              ((ParameterValue) 
value).getValue());
+    }
+}</pre></td>
+<td><pre>        throw exception;
+    }
+    if (value instanceof ParameterValue) {
+<span class="add">        
org.geotools.parameter.Parameter.ensureValidValue(descriptor,</span>
+                                              ((ParameterValue) 
value).getValue());
+    }
+}</pre></td></tr>
+<tr><td><pre>* Creates a math transform from the specified set of parameter 
values. The default
+* implementation ensures that the specified set of values do not contains any 
parameter
+* unknow to {@link #parameters}. It also ensures that all values are 
assignable to the
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getValueClass expected class}, are 
between the</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getMinimumValue minimum} and</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getMaximumValue maximum} values and 
are one of the</span>
+<span class="del">* {@linkplain 
org.geotools.parameter.OperationParameter#getValidValues set of valid 
values}.</span>
+* Then it wraps wraps the values in a group and invokes
+* {@link #createMathTransform(ParameterValueGroup)}.
+*</pre></td>
+<td><pre>* Creates a math transform from the specified set of parameter 
values. The default
+* implementation ensures that the specified set of values do not contains any 
parameter
+* unknow to {@link #parameters}. It also ensures that all values are 
assignable to the
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getValueClass expected class}, are 
between the</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getMinimumValue minimum} and</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getMaximumValue maximum} values and 
are one of the</span>
+<span class="add">* {@linkplain 
org.geotools.parameter.ParameterDescriptor#getValidValues set of valid 
values}.</span>
+* Then it wraps wraps the values in a group and invokes
+* {@link #createMathTransform(ParameterValueGroup)}.
+*</pre></td></tr>
+<tr><td><pre>    ensureValidValues(values);
+    if (values.length == 1) {
+        final GeneralParameterValue value = values[0];
+<span class="del">        if (parameters.equals(value.getDescriptor())) 
{</span>
+            if (value instanceof ParameterValueGroup) {
+                return createMathTransform((ParameterValueGroup) value);
+            }
+        }
+    }
+<span class="del">    return createMathTransform(new 
FallbackParameterValueGroup(parameters, values));</span>
+}
+
+/**
+ * Creates a math transform from the specified group of parameter 
values.</pre></td>
+<td><pre>    ensureValidValues(values);
+    if (values.length == 1) {
+        final GeneralParameterValue value = values[0];
+<span class="add">        if (getParameters().equals(value.getDescriptor())) 
{</span>
+            if (value instanceof ParameterValueGroup) {
+                return createMathTransform((ParameterValueGroup) value);
+            }
+        }
+    }
+<span class="add">    ParameterDescriptorGroup group = getParameters();</span>
+<span class="add">    System.out.println( group );</span>
+<span class="add">    ParameterValueGroup params = (ParameterValueGroup) 
group.createValue();</span>
+<span class="add">    System.out.println( params );</span>
+<span class="add">    for( int i=0; i&lt;values.length; i++){</span>
+<span class="add">        if( values[i] instanceof ParameterValue ){</span>
+<span class="add">            ParameterValue value = (ParameterValue) 
values[i];</span>
+<span class="add">            ParameterDescriptor descriptor = 
(ParameterDescriptor) value.getDescriptor();</span>
+<span class="add">            String name = descriptor.getName().toString( 
null );</span>
+<span class="add">            if( descriptor.getMaximumOccurs() == 1 
&amp;&amp;</span>
+<span class="add">                params.parameter( name ) != null ){</span>
+<span class="add">                params.parameter( name ).setValue( 
value.getValue() );</span>
+}
+<span class="add">            else {</span>
+<span class="add">                params.add( value );</span>
+<span class="add">            }</span>
+<span class="add">        }</span>
+<span class="add">        else if (values[i] instanceof ParameterValueGroup 
){</span>
+<span class="add">            params.add( (ParameterValueGroup) values[i] 
);</span>
+<span class="add">        }</span>
+<span class="add">    }</span>
+<span class="add">    return createMathTransform( params );</span>
+<span class="add">    // return createMathTransform( new 
FallbackParameterValueGroup( getParameters(), values) );</span>
+<span class="add">}</span>
+
+/**
+ * Creates a math transform from the specified group of parameter 
values.</pre></td></tr>
+<tr><td><pre> * @todo Revisit if a more elaborated test is needed for choosing 
an identifier.
+ */
+private static ParameterValue getValue(final ParameterValueGroup group,
+<span class="del">                                       final 
OperationParameter  param)</span>
+        throws ParameterNotFoundException
+{
+    final Identifier[] identifiers = param.getIdentifiers();</pre></td>
+<td><pre> * @todo Revisit if a more elaborated test is needed for choosing an 
identifier.
+ */
+private static ParameterValue getValue(final ParameterValueGroup group,
+<span class="add">                                       final 
ParameterDescriptor  param)</span>
+        throws ParameterNotFoundException
+{
+    final Identifier[] identifiers = param.getIdentifiers();</pre></td></tr>
+<tr><td><pre>    if (identifiers!=null &amp;&amp; identifiers.length!=0) {
+        name = identifiers[0].getCode();
+    } else {
+<span class="del">        name = param.getName(null);</span>
+    }
+<span class="del">    return group.getValue(name);</span>
+}
+
+/**</pre></td>
+<td><pre>    if (identifiers!=null &amp;&amp; identifiers.length!=0) {
+        name = identifiers[0].getCode();
+    } else {
+<span class="add">        name = param.getName().toString();</span>
+    }
+<span class="add">    return group.parameter(name);</span>
+}
+
+/**</pre></td></tr>
+<tr><td><pre> * @throws ParameterNotFoundException if the parameter is not 
found.
+ */
+protected static int intValue(final ParameterValueGroup group,
+<span class="del">                              final OperationParameter  
param)</span>
+        throws ParameterNotFoundException
+{
+    return getValue(group, param).intValue();</pre></td>
+<td><pre> * @throws ParameterNotFoundException if the parameter is not found.
+ */
+protected static int intValue(final ParameterValueGroup group,
+<span class="add">                              final ParameterDescriptor  
param)</span>
+        throws ParameterNotFoundException
+{
+    return getValue(group, param).intValue();</pre></td></tr>
+<tr><td><pre> *       for null units).
+ */
+protected static double doubleValue(final ParameterValueGroup group,
+<span class="del">                                    final OperationParameter 
 param)</span>
+        throws ParameterNotFoundException
+{
+    return getValue(group, param).doubleValue();</pre></td>
+<td><pre> *       for null units).
+ */
+protected static double doubleValue(final ParameterValueGroup group,
+<span class="add">                                    final 
ParameterDescriptor  param)</span>
+        throws ParameterNotFoundException
+{
+    return getValue(group, param).doubleValue();</pre></td></tr>
+<tr><td><pre>}
+
+/**
+ * Returns the resources key for {@linkplain #getName localized name}.
+ * This method is for internal purpose by Geotools implementation only.
+ */</pre></td>
+<td><pre>}
+
+/**
+<span class="add"> * Returns the parameter value for the specified operation 
parameter.</span>
+<span class="add"> * This convenience method is used by constructor for 
initializing</span>
+<span class="add"> * {@linkplain MathTransform math transform} from a set of 
parameters.</span>
+<span class="add"> *</span>
+<span class="add"> * @param  group The parameter value group to search 
into.</span>
+<span class="add"> * @param  param The parameter to look for.</span>
+<span class="add"> * @return The requested parameter value.</span>
+<span class="add"> * @throws ParameterNotFoundException if the parameter is 
not found.</span>
+<span class="add"> */</span>
+<span class="add">protected static String stringValue(final 
ParameterValueGroup group,</span>
+<span class="add">                                   final ParameterDescriptor 
 param)</span>
+<span class="add">        throws ParameterNotFoundException</span>
+<span class="add">{</span>
+<span class="add">    return getValue(group, param).stringValue();</span>
+<span class="add">}</span>
+<span class="add"></span>
+<span class="add">/**</span>
+ * Returns the resources key for {@linkplain #getName localized name}.
+ * This method is for internal purpose by Geotools implementation only.
+ */</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/07857/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/07857/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml (added)
+++ sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml Fri Feb  6 
20:18:02 2015
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>DefaultMathTransformFactory changes for revisions 
10795:10796</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>DefaultMathTransformFactory 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/operation/DefaultMathTransformFactory.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, Geotools Project Managment Committee (PMC)
+<span class="del"> * (C) 2001, 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, Geotools Project Managment Committee (PMC)
+<span class="add"> * (C) 2001, 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.operation;
+
+// J2SE dependencies
+import java.util.Set;
+import java.util.TreeSet;
+<span class="del">import java.util.Locale;</span>
+<span class="del">import java.util.Arrays;</span>
+<span class="del">import java.util.Iterator;</span>
+<span class="del">import java.util.Collections;</span>
+<span class="del">import java.io.IOException;</span>
+<span class="del">import java.text.ParseException;</span>
+import javax.imageio.spi.ServiceRegistry;
+
+<span class="del">// OpenGIS dependencies</span>
+import org.opengis.metadata.citation.Citation;
+import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.operation.Matrix;
+<span class="del">import 
org.opengis.referencing.operation.MathTransform;</span>
+import org.opengis.referencing.operation.OperationMethod;
+<span class="del">import 
org.opengis.referencing.NoSuchIdentifierException;</span>
+<span class="del">import org.opengis.parameter.GeneralParameterValue;</span>
+<span class="del">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="del">import org.opengis.parameter.ParameterValueGroup;</span>
+
+<span class="del">// Geotools dependencies</span>
+<span class="del">import org.geotools.referencing.Identifier;         // For 
javadoc</span>
+<span class="del">import org.geotools.referencing.IdentifiedObject;</span>
+<span class="del">import org.geotools.referencing.wkt.Symbols;</span>
+<span class="del">import 
org.geotools.referencing.wkt.MathTransformParser;</span>
+<span class="del">import 
org.geotools.referencing.operation.transform.ProjectiveTransform;</span>
+<span class="del">import 
org.geotools.referencing.operation.transform.PassThroughTransform;</span>
+<span class="del">import 
org.geotools.referencing.operation.transform.ConcatenatedTransform;</span>
+<span class="del">import org.geotools.parameter.ParameterWriter;</span>
+
+<span class="del">// Resources</span>
+<span class="del">import org.geotools.util.WeakHashSet;</span>
+<span class="del">import org.geotools.resources.LazySet;</span>
+<span class="del">import org.geotools.resources.Arguments;</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>
+<span class="del"></span>
+/**
+ * Low level factory for creating {@linkplain MathTransform math transforms}.
+ * Many high level GIS applications will never need to use this factory 
directly;</pre></td>
+<td><pre>package org.geotools.referencing.operation;
+
+// J2SE dependencies
+<span class="add">import java.text.ParseException;</span>
+<span class="add">import java.util.Arrays;</span>
+<span class="add">import java.util.Collections;</span>
+<span class="add">import java.util.Iterator;</span>
+import java.util.Set;
+import java.util.TreeSet;
+<span class="add"></span>
+import javax.imageio.spi.ServiceRegistry;
+
+<span class="add">import org.geotools.parameter.ParameterWriter;</span>
+<span class="add">import org.geotools.referencing.IdentifiedObject;</span>
+<span class="add">import org.geotools.referencing.Identifier;</span>
+<span class="add">import 
org.geotools.referencing.operation.transform.ConcatenatedTransform;</span>
+<span class="add">import 
org.geotools.referencing.operation.transform.PassThroughTransform;</span>
+<span class="add">import 
org.geotools.referencing.operation.transform.ProjectiveTransform;</span>
+<span class="add">import 
org.geotools.referencing.wkt.MathTransformParser;</span>
+<span class="add">import org.geotools.referencing.wkt.Symbols;</span>
+<span class="add">import org.geotools.resources.Arguments;</span>
+<span class="add">import org.geotools.resources.LazySet;</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.geotools.util.WeakHashSet;</span>
+import org.opengis.metadata.citation.Citation;
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.referencing.FactoryException;
+<span class="add">import 
org.opengis.referencing.NoSuchIdentifierException;</span>
+<span class="add">import 
org.opengis.referencing.operation.MathTransform;</span>
+import org.opengis.referencing.operation.Matrix;
+import org.opengis.referencing.operation.OperationMethod;
+
+
+/**
+ * Low level factory for creating {@linkplain MathTransform math transforms}.
+ * Many high level GIS applications will never need to use this factory 
directly;</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/10796/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/10796/MathTransformProvider.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/10796/MathTransformProvider.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/10796/MathTransformProvider.xhtml (added)
+++ sis/ip-review/rev/10796/MathTransformProvider.xhtml Fri Feb  6 20:18:02 2015
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>MathTransformProvider changes for revisions 10795:10796</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>MathTransformProvider 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/operation/MathTransformProvider.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) 2004, Geotools Project Managment Committee (PMC)
+<span class="del"> * (C) 2004, 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) 2004, Geotools Project Managment Committee (PMC)
+<span class="add"> * (C) 2004, 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.operation;
+
+// J2SE dependencies and extensions
+<span class="del">import java.util.Map;</span>
+<span class="del">import java.util.Arrays;</span>
+<span class="del">import java.util.Locale;</span>
+import java.util.HashMap;
+import java.util.Iterator;
+<span class="del">import java.util.Collection;</span>
+import javax.units.Unit;
+
+<span class="del">// OpenGIS dependencies</span>
+<span class="del">import org.opengis.util.GenericName;</span>
+<span class="del">import org.opengis.util.InternationalString; // For 
javadoc</span>
+import org.opengis.metadata.Identifier;
+import org.opengis.parameter.GeneralParameterDescriptor;
+import org.opengis.parameter.GeneralParameterValue;</pre></td>
+<td><pre>package org.geotools.referencing.operation;
+
+// J2SE dependencies and extensions
+<span class="add">import java.util.Collection;</span>
+import java.util.HashMap;
+import java.util.Iterator;
+<span class="add">import java.util.Map;</span>
+<span class="add"></span>
+import javax.units.Unit;
+
+<span class="add">import org.geotools.resources.XArray;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+import org.opengis.metadata.Identifier;
+import org.opengis.parameter.GeneralParameterDescriptor;
+import org.opengis.parameter.GeneralParameterValue;</pre></td></tr>
+<tr><td><pre>import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.IdentifiedObject;
+import org.opengis.referencing.operation.MathTransform;
+
+<span class="del">// Geotools dependencies</span>
+<span class="del">import org.geotools.resources.XArray;</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>
+/**
+ * An {@linkplain OperationMethod operation method} capable to creates a 
{@linkplain MathTransform
+ * math transform} from set of {@linkplain GeneralParameterValue parameter 
values}.</pre></td>
+<td><pre>import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.IdentifiedObject;
+import org.opengis.referencing.operation.MathTransform;
+<span class="add">import org.opengis.util.GenericName;</span>
+
+
+/**
+ * An {@linkplain OperationMethod operation method} capable to creates a 
{@linkplain MathTransform
+ * math transform} from set of {@linkplain GeneralParameterValue parameter 
values}.</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/10796/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/10796/MathTransformProvider.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml (added)
+++ sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml Fri Feb  6 
20:18:02 2015
@@ -0,0 +1,196 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>DefaultMathTransformFactory changes for revisions 
11127:11128</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>DefaultMathTransformFactory changes for revisions 11127:11128</h1>
+<p>This change do not apply to Apache SIS since <code>FactoryFinder</code> is 
replaced by <code>java.util.ServiceLoader</code>.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change 
--ignore-all-space --ignore-eol-style" -r11127:11128 
http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/DefaultMathTransformFactory.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 11127</th><th>Revision 11128</th></tr>
+<tr><td><pre>import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import javax.imageio.spi.ServiceRegistry;
+
+<span class="del">// OpenGIS dependencies</span>
+<span class="del">import org.opengis.metadata.citation.Citation;</span>
+<span class="del">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="del">import org.opengis.parameter.ParameterValueGroup;</span>
+<span class="del">import org.opengis.referencing.FactoryException;</span>
+<span class="del">import 
org.opengis.referencing.NoSuchIdentifierException;</span>
+<span class="del">import org.opengis.referencing.operation.Conversion;</span>
+<span class="del">import 
org.opengis.referencing.operation.MathTransform;</span>
+<span class="del">import org.opengis.referencing.operation.Matrix;</span>
+<span class="del">import org.opengis.referencing.operation.Operation;</span>
+<span class="del">import 
org.opengis.referencing.operation.OperationMethod;</span>
+<span class="del">import org.opengis.referencing.operation.Projection;</span>
+<span class="del"></span>
+<span class="del">// Geotools dependencies</span>
+import org.geotools.parameter.ParameterWriter;
+import org.geotools.referencing.IdentifiedObject;
+import org.geotools.referencing.Identifier;
+<span class="del">import 
org.geotools.referencing.operation.transform.AbstractMathTransform;</span>
+import org.geotools.referencing.operation.transform.ConcatenatedTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import 
org.geotools.referencing.operation.transform.ProjectiveTransform;</pre></td>
+<td><pre>import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+<span class="add"></span>
+import javax.imageio.spi.ServiceRegistry;
+
+import org.geotools.parameter.ParameterWriter;
+import org.geotools.referencing.IdentifiedObject;
+import org.geotools.referencing.Identifier;
+import org.geotools.referencing.operation.transform.ConcatenatedTransform;
+import org.geotools.referencing.operation.transform.PassThroughTransform;
+import 
org.geotools.referencing.operation.transform.ProjectiveTransform;</pre></td></tr>
+<tr><td><pre>import org.geotools.resources.LazySet;
+import org.geotools.resources.cts.ResourceKeys;
+import org.geotools.resources.cts.Resources;
+import org.geotools.util.DerivedSet;
+import org.geotools.util.WeakHashSet;
+
+
+/**</pre></td>
+<td><pre>import org.geotools.resources.LazySet;
+import org.geotools.resources.cts.ResourceKeys;
+import org.geotools.resources.cts.Resources;
+<span class="add">import org.geotools.util.ClassFinder;</span>
+import org.geotools.util.DerivedSet;
+import org.geotools.util.WeakHashSet;
+<span class="add">import org.opengis.metadata.citation.Citation;</span>
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+<span class="add">import org.opengis.referencing.FactoryException;</span>
+<span class="add">import 
org.opengis.referencing.NoSuchIdentifierException;</span>
+<span class="add">import org.opengis.referencing.operation.Conversion;</span>
+<span class="add">import 
org.opengis.referencing.operation.MathTransform;</span>
+<span class="add">import org.opengis.referencing.operation.Matrix;</span>
+<span class="add">import org.opengis.referencing.operation.Operation;</span>
+<span class="add">import 
org.opengis.referencing.operation.OperationMethod;</span>
+<span class="add">import org.opengis.referencing.operation.Projection;</span>
+
+
+/**</pre></td></tr>
+<tr><td><pre> */
+private final WeakHashSet pool = new WeakHashSet();
+
+<span class="del">/**</span>
+<span class="del"> * The service registry for finding {@link 
MathTransformProvider} implementations.</span>
+<span class="del"> */</span>
+<span class="del">private final ServiceRegistry registry;</span>
+
+/**
+ * Construct a default {@link MathTransform math transform} factory.</pre></td>
+<td><pre> */
+private final WeakHashSet pool = new WeakHashSet();
+
+<span class="add">private ServiceRegistry registry;</span>
+
+/**
+ * Construct a default {@link MathTransform math transform} 
factory.</pre></td></tr>
+<tr><td><pre> * @see #createParameterizedTransform
+ */
+public Set/*&lt;OperationMethod&gt;*/ getAvailableMethods(final Class type) {
+<span class="del">    Set methods = new 
LazySet(getProviders(MathTransformProvider.class));</span>
+    if (type != null) {
+        methods = new FilteredSet(methods, type);
+    }</pre></td>
+<td><pre> * @see #createParameterizedTransform
+ */
+public Set/*&lt;OperationMethod&gt;*/ getAvailableMethods(final Class type) {
+<span class="add">    Set methods = new 
LazySet(ClassFinder.getProviders(registry, MathTransformProvider.class));</span>
+    if (type != null) {
+        methods = new FilteredSet(methods, type);
+    }</pre></td></tr>
+<tr><td><pre>}
+
+/**
+<span class="del"> * Returns the providers for the specified category. This 
method will scan for plugin the</span>
+<span class="del"> * first time it will be invoked.</span>
+<span class="del"> */</span>
+<span class="del">private synchronized Iterator getProviders(final Class 
category) {</span>
+<span class="del">    Iterator iterator = 
registry.getServiceProviders(category, false);</span>
+<span class="del">    if (!iterator.hasNext()) {</span>
+<span class="del">        /*</span>
+<span class="del">         * No plugin. This method is probably invoked the 
first time for the specified</span>
+<span class="del">         * category, otherwise we should have found at least 
the Geotools implementation.</span>
+<span class="del">         */</span>
+<span class="del">        scanForPlugins();</span>
+<span class="del">        iterator = registry.getServiceProviders(category, 
false);</span>
+<span class="del">    }</span>
+<span class="del">    return iterator;</span>
+<span class="del">}</span>
+<span class="del"></span>
+<span class="del">/**</span>
+ * Returns the math transform provider for the specified operation method.
+ * This provider can be used in order to query parameter for a method name
+ * (e.g. 
&lt;code&gt;getProvider("Transverse_Mercator").getParameters()&lt;/code&gt;),</pre></td>
+<td><pre>}
+
+/**
+ * Returns the math transform provider for the specified operation method.
+ * This provider can be used in order to query parameter for a method name
+ * (e.g. 
&lt;code&gt;getProvider("Transverse_Mercator").getParameters()&lt;/code&gt;),</pre></td></tr>
+<tr><td><pre>if (provider!=null &amp;&amp; provider.nameMatches(method)) {
+    return provider;
+}
+<span class="del">final Iterator providers = 
getProviders(MathTransformProvider.class);</span>
+while (providers.hasNext()) {
+    provider = (MathTransformProvider) providers.next();
+    if (provider.nameMatches(method)) {</pre></td>
+<td><pre>if (provider!=null &amp;&amp; provider.nameMatches(method)) {
+    return provider;
+}
+<span class="add">final Iterator providers = 
ClassFinder.getProviders(registry, MathTransformProvider.class);</span>
+while (providers.hasNext()) {
+    provider = (MathTransformProvider) providers.next();
+    if (provider.nameMatches(method)) {</pre></td></tr>
+<tr><td><pre>}
+
+/**
+<span class="del"> * Scans for provider plug-ins on the application class 
path. This method is needed because the</span>
+<span class="del"> * application class path can theoretically change, or 
additional plug-ins may become available.</span>
+<span class="del"> * Rather than re-scanning the classpath on every invocation 
of the API, the class path is</span>
+<span class="del"> * scanned automatically only on the first invocation. 
Clients can call this method to prompt</span>
+<span class="del"> * a re-scan. Thus this method need only be invoked by 
sophisticated applications which</span>
+<span class="del"> * dynamically make new plug-ins available at runtime.</span>
+<span class="del"> *</span>
+<span class="del"> * @todo Provides the same logging mechanism than in {@link 
org.geotools.referencing.FactoryFinder}</span>
+<span class="del"> *       once it will be implemented in the later.</span>
+<span class="del"> */</span>
+<span class="del">public synchronized void scanForPlugins() {</span>
+<span class="del">    final ClassLoader loader = 
Thread.currentThread().getContextClassLoader();</span>
+<span class="del">    for (final Iterator categories=registry.getCategories(); 
categories.hasNext();) {</span>
+<span class="del">        final Class category = (Class) 
categories.next();</span>
+<span class="del">        final Iterator providers = 
ServiceRegistry.lookupProviders(category, loader);</span>
+<span class="del">        while (providers.hasNext()) {</span>
+<span class="del">            
registry.registerServiceProvider(providers.next(), category);</span>
+<span class="del">        }</span>
+<span class="del">    }</span>
+<span class="del">    last = null;</span>
+<span class="del">}</span>
+<span class="del"></span>
+<span class="del">/**</span>
+ * Dump to the standard output stream a list of available operation method.
+ * This method can be invoked from the command line. It provides a mean to
+ * verify which transforms were found in the classpath. The syntax 
is:</pre></td>
+<td><pre>}
+
+/**
+ * Dump to the standard output stream a list of available operation method.
+ * This method can be invoked from the command line. It provides a mean to
+ * verify which transforms were found in the classpath. The syntax 
is:</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/11128/DefaultMathTransformFactory.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/11128/HEADER.html
URL: 
http://svn.apache.org/viewvc/sis/ip-review/rev/11128/HEADER.html?rev=1657946&view=auto
==============================================================================
--- sis/ip-review/rev/11128/HEADER.html (added)
+++ sis/ip-review/rev/11128/HEADER.html Fri Feb  6 20:18:02 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 11128</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 11128</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rgould</td></tr>
+  <tr><td><b>Date:</b></td><td>2005-02-04</td></tr>
+  <tr><td><b>Message:</b></td><td>Split the class loading out of FactoryFinder 
and MathTransformFactory into one class, ClassFinder.</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/11128/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/11128/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html


Reply via email to