Document how CRSAuthorityFactory dynamically compose at run time

Description

It is easy do get lost with the numerous indirection levels with AuthorityFactory in the referencing module. A document that explains what happens on the first call to CRS.decode(xxx) down to the SPI level would be very helpful. Some of the main classes involved are:

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Class </th>
<th class='confluenceTh'> purpose </th>
</tr>
<tr>
<td class='confluenceTd'> FactoryUsingSQL </td>
<td class='confluenceTd'> for reading the EPSG database </td>
</tr>
<tr>
<td class='confluenceTd'> BufferedAuthorityFactory </td>
<td class='confluenceTd'> for caching </td>
</tr>
<tr>
<td class='confluenceTd'> OrderedAxisAuthorityFactory </td>
<td class='confluenceTd'> for changing axis order to (x,y) </td>
</tr>
<tr>
<td class='confluenceTd'> FallbackAuthorityFactory </td>
<td class='confluenceTd'> for chaining standard EPSG codes with user's extensions </td>
</tr>
<tr>
<td class='confluenceTd'> AllAuthorityFactories </td>
<td class='confluenceTd'> for querying all authority namespaces (EPSG, AUTO2...) </td>
</tr>
</tbody></table>

Legend for the attached screenshot:
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Label </th>
<th class='confluenceTh'> meaning </th>
</tr>
<tr>
<td class='confluenceTd'> crs </td>
<td class='confluenceTd'> Provides CRS services, either as CRSFactory or CRSAuthorityFactory. </td>
</tr>
<tr>
<td class='confluenceTd'> cs </td>
<td class='confluenceTd'> Provides CS services, either as CSFactory or CSAuthorityFactory. </td>
</tr>
<tr>
<td class='confluenceTd'> datum </td>
<td class='confluenceTd'> Provides datum services, either as DatumFactory or DatumAuthorityFactory. </td>
</tr>
<tr>
<td class='confluenceTd'> operation </td>
<td class='confluenceTd'> Provides coordinate operation services. </td>
</tr>
<tr>
<td class='confluenceTd'> buffered </td>
<td class='confluenceTd'> Caches any object previously created. </td>
</tr>
<tr>
<td class='confluenceTd'> optional </td>
<td class='confluenceTd'> Implements the OptionalFactory interface. </td>
</tr>
<tr>
<td class='confluenceTd'> registered </td>
<td class='confluenceTd'> Service discovered from some META-INF/services/ directory. </td>
</tr>
</tbody></table>

Environment

None

Attachments

1

Activity

codehaus 
April 10, 2015 at 3:31 PM

CodeHaus Comment From: desruisseaux - Time: Thu, 10 May 2007 08:34:59 -0500
---------------------
Added a legend in the main description, for keeping it visible and taking advantage of wiki formatting.

codehaus 
April 10, 2015 at 3:31 PM

CodeHaus Comment From: desruisseaux - Time: Thu, 10 May 2007 08:09:57 -0500
---------------------
Updated the screenshot for change commited at revision 25477.

codehaus 
April 10, 2015 at 3:31 PM

CodeHaus Comment From: desruisseaux - Time: Wed, 9 May 2007 12:37:42 -0500
---------------------
Commited a tool as of revision 25476. Screenshot included.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created May 5, 2007 at 11:13 AM
Updated October 31, 2015 at 6:01 PM
Resolved May 26, 2015 at 1:51 PM