Class FactoryUsingWKT
-
- All Implemented Interfaces:
AuthorityFactory
,CRSAuthorityFactory
,Factory
,BufferedFactory
,Factory
,OptionalFactory
,RegistrableFactory
- Direct Known Subclasses:
EsriExtension
,IAUAuthorityFactory
,NetCDFCRSAuthorityFactory
,UnnamedExtension
public class FactoryUsingWKT extends DeferredAuthorityFactory implements CRSAuthorityFactory
Authority factory for Coordinate Reference Systems beyong the one defined in the EPSG database. This factory is used as a fallback when a requested code is not found in the EPSG database, or when there is no connection at all to the EPSG database. The additional CRS are defined as Well Known Text in a property file located by default in theorg.geotools.referencing.factory.epsg
package, and whose name should be "epsg.properties". If no property file is found, the factory won't be activated. The property file can also be located in a custom directory; SeegetDefinitionsURL()
for more details.This factory can also be used to provide custom extensions or overrides to a main EPSG factory. In order to provide a custom extension file, override the
getDefinitionsURL()
method. In order to make the factory be an override, change the default priority by using the two arguments constructor (this factory defaults toThreadedEpsgFactory.PRIORITY
- 10, so it's used as an extension).- Since:
- 2.1
- Author:
- Martin Desruisseaux, Jody Garnett, Rueben Schulz, Andrea Aime
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
DEFAULT_PRIORITY
Default priority for this factory.static String
FILENAME
The default filename to read.-
Fields inherited from class ReferencingFactory
LOGGER
-
Fields inherited from class AbstractFactory
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority
-
-
Constructor Summary
Constructors Constructor Description FactoryUsingWKT()
Constructs an authority factory using the default set of factories.FactoryUsingWKT(Hints userHints)
Constructs an authority factory using a set of factories created from the specified hints.FactoryUsingWKT(Hints userHints, int priority)
Constructs an authority factory using the specified hints and priority.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractAuthorityFactory
createBackingStore()
Creates the backing store authority factory.protected Citation[]
getAuthorities()
Returns the set of authorities to use as identifiers for the CRS to be created.Citation
getAuthority()
Returns the authority.protected URL
getDefinitionsURL()
Returns the URL to the property file that contains CRS definitions.protected static <T extends AbstractAuthorityFactory>
TgetFactory(String authority, Class<T> type)
static void
main(String... args)
Prints a list of codes that duplicate the ones provided in theThreadedEpsgFactory
.protected static void
main(String[] args, Class<? extends FactoryUsingWKT> type)
Implementation of themain(java.lang.String...)
method, shared by subclasses.Set
reportDuplicatedCodes(PrintWriter out)
Prints a list of codes that duplicate the ones provided byThreadedEpsgFactory
.Set
reportInstantiationFailures(PrintWriter out)
Prints a list of CRS that can't be instantiated.-
Methods inherited from class DeferredAuthorityFactory
canDisposeBackingStore, dispose, disposeBackingStore, exit, getBackingStore, isAvailable, isConnected, setTimeout
-
Methods inherited from class BufferedAuthorityFactory
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, getBackingStoreDescription, getDescriptionText, getIdentifiedObjectFinder, getVendor
-
Methods inherited from class AbstractAuthorityFactory
noSuchAuthorityCode, trimAuthority
-
Methods inherited from class ReferencingFactory
ensureNonNull
-
Methods inherited from class AbstractFactory
addImplementationHints, equals, getImplementationHints, getPriority, hashCode, onDeregistration, onRegistration, toString
-
Methods inherited from interface AuthorityFactory
createObject, getAuthorityCodes, getDescriptionText
-
Methods inherited from interface CRSAuthorityFactory
createCompoundCRS, createCoordinateReferenceSystem, createDerivedCRS, createEngineeringCRS, createGeocentricCRS, createGeographicCRS, createImageCRS, createProjectedCRS, createTemporalCRS, createVerticalCRS
-
Methods inherited from interface Factory
getImplementationHints
-
-
-
-
Field Detail
-
FILENAME
public static final String FILENAME
The default filename to read. The defaultFactoryUsingWKT
implementation will search for the first occurence of this file in the following places:- In the directory specified by the system property.
- In every
org/geotools/referencing/factory/espg
directories found on the classpath.
The filename part before the extension (
"epsg"
) denotes the authority namespace where to register the content of this file. The user-directory given by the system property may contains other property files for other authorities, like"esri.properties"
, but those additional authorities are not handled by the defaultFactoryUsingWKT
class.- See Also:
getDefinitionsURL()
, Constant Field Values
-
DEFAULT_PRIORITY
protected static final int DEFAULT_PRIORITY
Default priority for this factory.- Since:
- 2.4
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FactoryUsingWKT
public FactoryUsingWKT()
Constructs an authority factory using the default set of factories.
-
FactoryUsingWKT
public FactoryUsingWKT(Hints userHints)
Constructs an authority factory using a set of factories created from the specified hints. This constructor recognizes theCRS
,CS
,DATUM
andMATH_TRANSFORM
FACTORY
hints.
-
FactoryUsingWKT
public FactoryUsingWKT(Hints userHints, int priority)
Constructs an authority factory using the specified hints and priority.
-
-
Method Detail
-
getAuthority
public Citation getAuthority()
Returns the authority. The default implementation returns the first citation returned bygetAuthorities()
, with the addition of identifiers from all additional authorities returned by the above method.- Specified by:
getAuthority
in interfaceAuthorityFactory
- Overrides:
getAuthority
in classBufferedAuthorityFactory
- Returns:
- The organization reponsible for definition of the database.
- See Also:
getAuthorities()
-
getAuthorities
protected Citation[] getAuthorities()
Returns the set of authorities to use as identifiers for the CRS to be created. This set is given to the properties-backed factory constructor.The default implementation returns a singleton containing only EPSG. Subclasses should override this method in order to enumerate all relevant authorities, with EPSG in last position. For example
EsriExtension
returns {ESRI, EPSG}.- Since:
- 2.4
-
getDefinitionsURL
protected URL getDefinitionsURL()
Returns the URL to the property file that contains CRS definitions. The default implementation performs the following search path:- If a value is set for the system property key, then the "epsg.properties" file will be searched in this directory.
- If no value is set for the above-cited system property, or if no "epsg.properties"
file was found in that directory, then the first "epsg.properties" file found in any
org/geotools/referencing/factory/epsg
directory on the classpath will be used. - If no file was found on the classpath neither, then this factory will be disabled.
- Returns:
- The URL, or
null
if none.
-
createBackingStore
protected AbstractAuthorityFactory createBackingStore() throws FactoryException
Creates the backing store authority factory.- Specified by:
createBackingStore
in classDeferredAuthorityFactory
- Returns:
- The backing store to uses in
createXXX(...)
methods. - Throws:
FactoryNotFoundException
- if the noepsg.properties
file has been found.FactoryException
- if the constructor failed to find or read the file. This exception usually has anIOException
as its cause.
-
getFactory
protected static final <T extends AbstractAuthorityFactory> T getFactory(String authority, Class<T> type)
-
reportDuplicatedCodes
public Set reportDuplicatedCodes(PrintWriter out) throws FactoryException
Prints a list of codes that duplicate the ones provided byThreadedEpsgFactory
. This is used for implementation of main method in order to check the content of the "epsg.properties" file (or whatever property file used as backing store for this factory) from the command line.- Parameters:
out
- The writer where to print the report.- Returns:
- The set of duplicated codes.
- Throws:
FactoryException
- if an error occured.- Since:
- 2.4
-
reportInstantiationFailures
public Set reportInstantiationFailures(PrintWriter out) throws FactoryException
Prints a list of CRS that can't be instantiated. This is used for implementation of main method in order to check the content of the "epsg.properties" file (or whatever property file used as backing store for this factory) from the command line.- Parameters:
out
- The writer where to print the report.- Returns:
- The set of codes that can't be instantiated.
- Throws:
FactoryException
- if an error occured while fetching authority codes.- Since:
- 2.4
-
main
public static void main(String... args) throws FactoryException
Prints a list of codes that duplicate the ones provided in theThreadedEpsgFactory
. The factory tested is the one registered inReferencingFactoryFinder
. By default, this is thisFactoryUsingWKT
class backed by the "epsg.properties" property file. This method can be invoked from the command line in order to check the content of the property file. Valid arguments are:-test
Try to instantiate all CRS and reports any failure to do so. -duplicated
List all codes from the WKT factory that are duplicating a code from the SQL factory. - Parameters:
args
- Command line arguments.- Throws:
FactoryException
- if an error occured.- Since:
- 2.4
-
main
protected static void main(String[] args, Class<? extends FactoryUsingWKT> type) throws FactoryException
Implementation of themain(java.lang.String...)
method, shared by subclasses.- Throws:
FactoryException
-
-