org.geotoolkit.referencing.factory.web
Class URN_AuthorityFactory

Object
  extended by Factory
      extended by ReferencingFactory
          extended by AbstractAuthorityFactory
              extended by AuthorityFactoryAdapter
                  extended by URN_AuthorityFactory
All Implemented Interfaces:
AuthorityFactory, CRSAuthorityFactory, CSAuthorityFactory, DatumAuthorityFactory, CoordinateOperationAuthorityFactory, Factory

@ThreadSafe
public class URN_AuthorityFactory
extends AuthorityFactoryAdapter
implements CRSAuthorityFactory, CSAuthorityFactory, DatumAuthorityFactory, CoordinateOperationAuthorityFactory

Wraps all factories in a "urn:ogc:def" name space. An exemple of complete URN is "urn:ogc:def:crs:EPSG:6.8:4326".

Users don't need to create an instance of this class, since one is automatically registered for use in ReferencingFactoryFinder.

Since:
2.4
Version:
3.07
Author:
Justin Deoliveira (TOPP), Martin Desruisseaux (IRD, Geomatys)
See Also:
URNs of definitions in OGC namespace
Module:
referencing/geotk-referencing (download)    View source code for this class

Nested Class Summary
 
Nested classes/interfaces inherited from class Factory
Factory.Availability, Factory.Organizer
 
Field Summary
 
Fields inherited from class AbstractAuthorityFactory
nameFactory
 
Fields inherited from class ReferencingFactory
LOGGER
 
Fields inherited from class Factory
EMPTY_HINTS, hints
 
Constructor Summary
URN_AuthorityFactory()
          Creates a default wrapper.
URN_AuthorityFactory(AllAuthoritiesFactory factory)
          Creates a wrapper around the specified factory.
URN_AuthorityFactory(Hints userHints)
          Creates a wrapper using the specified hints.
 
Method Summary
protected  AuthorityFactory createVersionedFactory(Version version)
          Invoked when a factory is requested for a specific version.
 Citation getAuthority()
          Returns the authority, which contains "urn:ogc:def" and "urn:x-ogc:def" identifiers.
protected  AuthorityFactory getAuthorityFactory(String code)
          Returns an object factory for the specified code.
protected  CoordinateOperationAuthorityFactory getCoordinateOperationAuthorityFactory(String code)
          Returns the coordinate operation factory to use for the specified URN.
protected  CRSAuthorityFactory getCRSAuthorityFactory(String code)
          Returns the coordinate reference system factory to use for the specified URN.
protected  CSAuthorityFactory getCSAuthorityFactory(String code)
          Returns the coordinate system factory to use for the specified URN.
protected  DatumAuthorityFactory getDatumAuthorityFactory(String code)
          Returns the datum factory to use for the specified URN.
 IdentifiedObjectFinder getIdentifiedObjectFinder(Class<? extends IdentifiedObject> type)
          Returns a finder which can be used for looking up unidentified objects.
protected  boolean hasCompatibleHints(Hints hints)
          Returns true if this factory meets the requirements specified by a map of hints.
protected  void setOrdering(Factory.Organizer organizer)
          Sets the ordering of this factory relative to other factories.
protected  String toBackingFactoryCode(String code)
          Removes the URN base ("urn:ogc:def") from the specified code before to pass it to the wrapped factories.
 
Methods inherited from class AuthorityFactoryAdapter
availability, createCartesianCS, createCompoundCRS, createCoordinateOperation, createCoordinateReferenceSystem, createCoordinateSystem, createCoordinateSystemAxis, createCylindricalCS, createDatum, createDerivedCRS, createEllipsoid, createEllipsoidalCS, createEngineeringCRS, createEngineeringDatum, createExtent, createFromCoordinateReferenceSystemCodes, createGeocentricCRS, createGeodeticDatum, createGeographicCRS, createImageCRS, createImageDatum, createObject, createOperationMethod, createParameterDescriptor, createPolarCS, createPrimeMeridian, createProjectedCRS, createSphericalCS, createTemporalCRS, createTemporalDatum, createTimeCS, createUnit, createVerticalCRS, createVerticalCS, createVerticalDatum, getAuthorityCodes, getAuthorityFactory, getBackingStoreDescription, getDescriptionText, getImplementationHints, getVendor
 
Methods inherited from class AbstractAuthorityFactory
dispose, noSuchAuthorityCode, trimAuthority
 
Methods inherited from class ReferencingFactory
ensureNonNull
 
Methods inherited from class Factory
equals, hashCode, toString
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface CRSAuthorityFactory
createCompoundCRS, createCoordinateReferenceSystem, createDerivedCRS, createEngineeringCRS, createGeocentricCRS, createGeographicCRS, createImageCRS, createProjectedCRS, createTemporalCRS, createVerticalCRS
 
Methods inherited from interface CSAuthorityFactory
createCartesianCS, createCoordinateSystem, createCoordinateSystemAxis, createCylindricalCS, createEllipsoidalCS, createPolarCS, createSphericalCS, createTimeCS, createUnit, createVerticalCS
 
Methods inherited from interface DatumAuthorityFactory
createDatum, createEllipsoid, createEngineeringDatum, createGeodeticDatum, createImageDatum, createPrimeMeridian, createTemporalDatum, createVerticalDatum
 
Methods inherited from interface CoordinateOperationAuthorityFactory
createCoordinateOperation, createFromCoordinateReferenceSystemCodes, createOperationMethod
 
Methods inherited from interface AuthorityFactory
createObject, getAuthorityCodes, getDescriptionText
 
Methods inherited from interface Factory
getVendor
 

Constructor Detail

URN_AuthorityFactory

public URN_AuthorityFactory()
Creates a default wrapper.


URN_AuthorityFactory

public URN_AuthorityFactory(Hints userHints)
Creates a wrapper using the specified hints. For strict compliance with OGC definition of "urn:ogc:def" namespace, the supplied hints should contains at least the FORCE_LONGITUDE_FIRST_AXIS_ORDER hint with value FALSE.

Parameters:
userHints - The hints to be given to backing factories.

URN_AuthorityFactory

public URN_AuthorityFactory(AllAuthoritiesFactory factory)
Creates a wrapper around the specified factory. The supplied factory is given unchanged to the super class constructor.

Parameters:
factory - The factory on which to delegate object creation.
Method Detail

getAuthority

public Citation getAuthority()
Returns the authority, which contains "urn:ogc:def" and "urn:x-ogc:def" identifiers.

Specified by:
getAuthority in interface AuthorityFactory
Overrides:
getAuthority in class AuthorityFactoryAdapter

getAuthorityFactory

protected AuthorityFactory getAuthorityFactory(String code)
                                        throws FactoryException
Returns an object factory for the specified code. This method invokes one of the getTypeAuthorityFactory methods where Type is inferred from the code.

Overrides:
getAuthorityFactory in class AuthorityFactoryAdapter
Parameters:
code - The authority code given to this class.
Returns:
A factory for the specified authority code (never null).
Throws:
FactoryException - if no suitable factory were found.

getDatumAuthorityFactory

protected DatumAuthorityFactory getDatumAuthorityFactory(String code)
                                                  throws FactoryException
Returns the datum factory to use for the specified URN. If the URN contains a version string, then this method will try to fetch a factory for that particular version. The createVersionedFactory(org.geotoolkit.util.Version) method may be invoked for that purpose. If no factory is provided for that specific version, then the default one is used.

Overrides:
getDatumAuthorityFactory in class AuthorityFactoryAdapter
Parameters:
code - The URN given to this class.
Returns:
A factory for the specified URN (never null).
Throws:
FactoryException - if no datum factory is available.

getCSAuthorityFactory

protected CSAuthorityFactory getCSAuthorityFactory(String code)
                                            throws FactoryException
Returns the coordinate system factory to use for the specified URN. If the URN contains a version string, then this method will try to fetch a factory for that particular version. The createVersionedFactory(org.geotoolkit.util.Version) method may be invoked for that purpose. If no factory is provided for that specific version, then the default one is used.

Overrides:
getCSAuthorityFactory in class AuthorityFactoryAdapter
Parameters:
code - The URN given to this class.
Returns:
A factory for the specified URN (never null).
Throws:
FactoryException - if no coordinate system factory is available.

getCRSAuthorityFactory

protected CRSAuthorityFactory getCRSAuthorityFactory(String code)
                                              throws FactoryException
Returns the coordinate reference system factory to use for the specified URN. If the URN contains a version string, then this method will try to fetch a factory for that particular version. The createVersionedFactory(org.geotoolkit.util.Version) method may be invoked for that purpose. If no factory is provided for that specific version, then the default one is used.

Overrides:
getCRSAuthorityFactory in class AuthorityFactoryAdapter
Parameters:
code - The URN given to this class.
Returns:
A factory for the specified URN (never null).
Throws:
FactoryException - if no coordinate reference system factory is available.

getCoordinateOperationAuthorityFactory

protected CoordinateOperationAuthorityFactory getCoordinateOperationAuthorityFactory(String code)
                                                                              throws FactoryException
Returns the coordinate operation factory to use for the specified URN. If the URN contains a version string, then this method will try to fetch a factory for that particular version. The createVersionedFactory(org.geotoolkit.util.Version) method may be invoked for that purpose. If no factory is provided for that specific version, then the default one is used.

Overrides:
getCoordinateOperationAuthorityFactory in class AuthorityFactoryAdapter
Parameters:
code - The URN given to this class.
Returns:
A factory for the specified URN (never null).
Throws:
FactoryException - if no coordinate operation factory is available.

createVersionedFactory

protected AuthorityFactory createVersionedFactory(Version version)
                                           throws FactoryException
Invoked when a factory is requested for a specific version. This method should create a factory for the exact version specified by the argument, or return null if no such factory is available. In the later case, this class will fallback on the factory specified at construction time.

Parameters:
version - The version for the factory to create.
Returns:
The factory, of null if there is none for the specified version.
Throws:
FactoryException - if an error occurred while creating the factory.

toBackingFactoryCode

protected String toBackingFactoryCode(String code)
                               throws FactoryException
Removes the URN base ("urn:ogc:def") from the specified code before to pass it to the wrapped factories.

Overrides:
toBackingFactoryCode in class AuthorityFactoryAdapter
Parameters:
code - The code given to this factory.
Returns:
The code to give to the underlying factories.
Throws:
FactoryException - if the code can't be converted.

getIdentifiedObjectFinder

public IdentifiedObjectFinder getIdentifiedObjectFinder(Class<? extends IdentifiedObject> type)
                                                 throws FactoryException
Returns a finder which can be used for looking up unidentified objects. The default implementation forwards all method calls to the finder of the underlying AllAuthoritiesFactory. No additional work is performed, except in the case of the findIdentifier method which format the code in a "urn:ogc:def" syntax.

Overrides:
getIdentifiedObjectFinder in class AuthorityFactoryAdapter
Parameters:
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 (for example the factories backed by EPSG databases).
Returns:
A finder to use for looking up unidentified objects.
Throws:
FactoryException - if the finder can not be created.
Since:
3.07

hasCompatibleHints

protected boolean hasCompatibleHints(Hints hints)
Returns true if this factory meets the requirements specified by a map of hints. This information is for FactoryRegistry usage only.

Overrides:
hasCompatibleHints in class Factory
Since:
3.00

setOrdering

protected void setOrdering(Factory.Organizer organizer)
Sets the ordering of this factory relative to other factories. By default URN_AuthorityFactory is selected only if there is no suitable instance of AbstractAuthorityFactory for user request.

Overrides:
setOrdering in class Factory
Since:
3.00


Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.