|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.geotools.factory.AbstractFactory
org.geotools.referencing.factory.ReferencingFactory
org.geotools.referencing.factory.AbstractAuthorityFactory
org.geotools.referencing.factory.CachedCRSAuthorityDecorator
public final class CachedCRSAuthorityDecorator
An authority factory that caches all objects created by the delegate CRSAuthorityFactory.
The behaviour of thecreateFoo(String)
methods first looks if a
previously created object exists for the given code. If such an object
exists, it is returned directly. The testing of the cache is synchronized and
may block if the referencing object is under construction.
If the object is not yet created, the definition is delegated to the appropriate the AuthorityFactory authority factory and the result is cached for next time.
This object is responsible for owning a {{ReferencingObjectCache}}; there are several implementations to choose from on construction.
Field Summary |
---|
Fields inherited from class org.geotools.referencing.factory.ReferencingFactory |
---|
LOGGER |
Fields inherited from class org.geotools.factory.AbstractFactory |
---|
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority |
Constructor Summary | |
---|---|
|
CachedCRSAuthorityDecorator(org.opengis.referencing.crs.CRSAuthorityFactory factory)
Constructs an instance wrapping the specified factory with a default cache. |
protected |
CachedCRSAuthorityDecorator(org.opengis.referencing.crs.CRSAuthorityFactory factory,
ObjectCache cache)
Constructs an instance wrapping the specified factory. |
Method Summary | |
---|---|
protected static ObjectCache |
createCache(Hints hints)
Utility method used to produce cache based on hint |
org.opengis.referencing.crs.CompoundCRS |
createCompoundCRS(java.lang.String code)
Creates a 3D coordinate reference system from a code. |
org.opengis.referencing.crs.CoordinateReferenceSystem |
createCoordinateReferenceSystem(java.lang.String code)
Returns an arbitrary coordinate reference system from a code. |
org.opengis.referencing.crs.DerivedCRS |
createDerivedCRS(java.lang.String code)
Creates a derived coordinate reference system from a code. |
org.opengis.referencing.crs.EngineeringCRS |
createEngineeringCRS(java.lang.String code)
Creates a engineering coordinate reference system from a code. |
org.opengis.referencing.crs.GeocentricCRS |
createGeocentricCRS(java.lang.String code)
Returns a geocentric coordinate reference system from a code. |
org.opengis.referencing.crs.GeographicCRS |
createGeographicCRS(java.lang.String code)
Returns a geographic coordinate reference system from a code. |
org.opengis.referencing.crs.ImageCRS |
createImageCRS(java.lang.String code)
Creates a image coordinate reference system from a code. |
org.opengis.referencing.IdentifiedObject |
createObject(java.lang.String code)
Returns an arbitrary object from a code. |
org.opengis.referencing.crs.ProjectedCRS |
createProjectedCRS(java.lang.String code)
Returns a projected coordinate reference system from a code. |
org.opengis.referencing.crs.TemporalCRS |
createTemporalCRS(java.lang.String code)
Creates a temporal coordinate reference system from a code. |
org.opengis.referencing.crs.VerticalCRS |
createVerticalCRS(java.lang.String code)
Creates a vertical coordinate reference system from a code. |
void |
dispose()
Releases resources immediately instead of waiting for the garbage collector. |
org.opengis.metadata.citation.Citation |
getAuthority()
Returns the organization or party responsible for definition and maintenance of the database. |
java.util.Set |
getAuthorityCodes(java.lang.Class type)
|
java.lang.String |
getBackingStoreDescription()
Returns a description of the underlying backing store, or null if unknown. |
org.opengis.util.InternationalString |
getDescriptionText(java.lang.String code)
|
IdentifiedObjectFinder |
getIdentifiedObjectFinder(java.lang.Class type)
Returns a finder which can be used for looking up unidentified objects. |
protected java.lang.String |
toKey(java.lang.String code)
|
Methods inherited from class org.geotools.referencing.factory.ReferencingFactory |
---|
ensureNonNull, getVendor |
Methods inherited from class org.geotools.factory.AbstractFactory |
---|
addImplementationHints, equals, getImplementationHints, getPriority, hashCode, onDeregistration, onRegistration, toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.opengis.referencing.Factory |
---|
getVendor |
Methods inherited from interface org.geotools.factory.Factory |
---|
getImplementationHints |
Constructor Detail |
---|
public CachedCRSAuthorityDecorator(org.opengis.referencing.crs.CRSAuthorityFactory factory)
The provided authority factory must implement
DatumAuthorityFactory
, CSAuthorityFactory
,
CRSAuthorityFactory
and
CoordinateOperationAuthorityFactory
.
factory
- The factory to cache. Can not be null
.protected CachedCRSAuthorityDecorator(org.opengis.referencing.crs.CRSAuthorityFactory factory, ObjectCache cache)
maxStrongReferences
argument specify the maximum number of
objects to keep by strong reference. If a greater amount of objects are
created, then the strong references for the oldest ones are replaced by
weak references.
This constructor is protected because subclasses must declare which of
the DatumAuthorityFactory
, CSAuthorityFactory
,
CRSAuthorityFactory
SearchableAuthorityFactory
and
CoordinateOperationAuthorityFactory
interfaces they choose to
implement.
factory
- The factory to cache. Can not be null
.maxStrongReferences
- The maximum number of objects to keep by strong reference.Method Detail |
---|
protected static ObjectCache createCache(Hints hints) throws FactoryRegistryException
FactoryRegistryException
protected java.lang.String toKey(java.lang.String code)
public org.opengis.referencing.IdentifiedObject createObject(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
Datum
, CoordinateSystem
, CoordinateReferenceSystem
or
CoordinateOperation
. The default implementation always throw an exception.
Subclasses should override this method if they are capable to automatically detect
the object type from its code.
createObject
in interface org.opengis.referencing.AuthorityFactory
createObject
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createCoordinateReferenceSystem(java.lang.String)
,
AbstractAuthorityFactory.createDatum(java.lang.String)
,
AbstractAuthorityFactory.createEllipsoid(java.lang.String)
,
AbstractAuthorityFactory.createUnit(java.lang.String)
public org.opengis.metadata.citation.Citation getAuthority()
AbstractAuthorityFactory
getAuthority
in interface org.opengis.referencing.AuthorityFactory
getAuthority
in class AbstractAuthorityFactory
public java.util.Set getAuthorityCodes(java.lang.Class type) throws org.opengis.referencing.FactoryException
getAuthorityCodes
in interface org.opengis.referencing.AuthorityFactory
org.opengis.referencing.FactoryException
public org.opengis.util.InternationalString getDescriptionText(java.lang.String code) throws org.opengis.referencing.FactoryException
getDescriptionText
in interface org.opengis.referencing.AuthorityFactory
org.opengis.referencing.FactoryException
public org.opengis.referencing.crs.CompoundCRS createCompoundCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createCompoundCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createCompoundCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.public org.opengis.referencing.crs.CoordinateReferenceSystem createCoordinateReferenceSystem(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createGeographicCRS(code)
instead of createCoordinateReferenceSystem(code)
if the caller
know he is asking for a geographic coordinate reference system).
createCoordinateReferenceSystem
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createCoordinateReferenceSystem
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createGeographicCRS(java.lang.String)
,
AbstractAuthorityFactory.createProjectedCRS(java.lang.String)
,
AbstractAuthorityFactory.createVerticalCRS(java.lang.String)
,
AbstractAuthorityFactory.createTemporalCRS(java.lang.String)
,
AbstractAuthorityFactory.createCompoundCRS(java.lang.String)
public org.opengis.referencing.crs.DerivedCRS createDerivedCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createDerivedCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createDerivedCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.public org.opengis.referencing.crs.EngineeringCRS createEngineeringCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createEngineeringCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createEngineeringCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.public org.opengis.referencing.crs.GeocentricCRS createGeocentricCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createGeocentricCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createGeocentricCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed.AbstractAuthorityFactory.createGeodeticDatum(java.lang.String)
public org.opengis.referencing.crs.GeographicCRS createGeographicCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createGeographicCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createGeographicCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createGeodeticDatum(java.lang.String)
public org.opengis.referencing.crs.ImageCRS createImageCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createImageCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createImageCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.public org.opengis.referencing.crs.ProjectedCRS createProjectedCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createProjectedCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createProjectedCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createGeodeticDatum(java.lang.String)
public org.opengis.referencing.crs.TemporalCRS createTemporalCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createTemporalCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createTemporalCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createTemporalDatum(java.lang.String)
public org.opengis.referencing.crs.VerticalCRS createVerticalCRS(java.lang.String code) throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
createVerticalCRS
in interface org.opengis.referencing.crs.CRSAuthorityFactory
createVerticalCRS
in class AbstractAuthorityFactory
code
- Value allocated by authority.
org.opengis.referencing.NoSuchAuthorityCodeException
- if the specified code
was not found.
org.opengis.referencing.FactoryException
- if the object creation failed for some other reason.AbstractAuthorityFactory.createVerticalDatum(java.lang.String)
public void dispose() throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
create(...)
invocations
may throw a FactoryException
. Disposing a previously-disposed factory,
however, has no effect.
dispose
in class AbstractAuthorityFactory
org.opengis.referencing.FactoryException
- if an error occured while disposing the factory.public java.lang.String getBackingStoreDescription() throws org.opengis.referencing.FactoryException
AbstractAuthorityFactory
null
if unknown.
This is for example the database software used for storing the data.
The default implementation returns always null
.
getBackingStoreDescription
in class AbstractAuthorityFactory
null
.
org.opengis.referencing.FactoryException
- if a failure occurs while fetching the engine description.public IdentifiedObjectFinder getIdentifiedObjectFinder(java.lang.Class type) throws org.opengis.referencing.FactoryException
getIdentifiedObjectFinder
in class AbstractAuthorityFactory
type
- The type of objects to look for. Should be a GeoAPI interface like
GeographicCRS.class
, but this method accepts also implementation
class. If the type is unknown, use IdentifiedObject.class
. A more
accurate type may help to speed up the search, since it reduces the amount
of tables to scan in some implementations like the factories backed by
EPSG database.
org.opengis.referencing.FactoryException
- if the finder can not be created.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |