Jody Garnett a écrit :
> The proposal is available here:
> -
> http://docs.codehaus.org/display/GEOTOOLS/Improve+CRSAuthority+Concurrency+Caching+and+Connection+Use
Just a quick note for discussion purpose:
OracleEPSGDefinitionDAO
-----------------------
Is it a replacement for FactoryUsingSQL? If so, the documentation said
"Retrieves just the definition for the provided code in the form a Map of
properties". This is a significant change compared to actual implementation,
which create a full (uncached) object. What is the purpose of this change? Who
would construct the objects from the map? What would be the Map keys? I wonder
if it would introduce yet more complexity instead of making things clearer. Just
defining the Map keys may be non-trivial (some keys could have multiple values)
and add to the "conceptual overhead". We would also lost type safety at least
for the part of the code working with Map. The proposal don't said which benefit
we would get in return.
ReferencingObjectCache
----------------------
It is not clear to me what would be the benifit of splitting
BufferedAuthorityFactory into BufferedAuthorityFactory + ReferencingObjectCache.
After all, BufferedAuthorityFactory is almost just that: a cache with
specialized 'getXXX' method (actually called 'createXXX', but this is the same).
And those specialized 'createXXX' methods are valuable to FactoryUsingSQL, again
for type safety.
Maybe the concern is about FactoryOnOracle which extends (indirectly)
DeferredAuthorityFactory which extends BufferedAuthorityFactory? In such case,
rather than introducing a ReferencingObjectCache, what about revisiting the
relationship between BufferedAuthorityFactory and DeferredAuthorityFactory?
Maybe the later should not extends the former (I'm not sure; just droping idea
for investigation). We could set DeferredAuthorityFactory as a subclass of
AuthorityFactoryAdapter instead, and override the 'getXXXAuthorityFactory' in
order to return one of the direct EPSG authority factory in the pool.
BufferedAuthorityFactory would be a completly independent class, and probably a
leaf. FactoryUsingSQL could continue to reference it directly.
On class renaming
-----------------
Just for clarification about the intend of "OracleEPSGAuthority" name... To me,
it sound like "Oracle flavor of EPSG", I means EPSG codes modified by Oracle
(some different CRS, or addition, or removal...). The intend of
"FactoryOnOracle" (or maybe EpsgOnOracle would be a better name) was to means
"strict (admitly unmodified) EPSG database hosted on a Oracle database
software", which doesn't sound like the same than "Oracle EPSG" to me. But I'm
not an English native speaker, so I can tell for sure...
What do you think?
Martin
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel