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.epsgpackage, 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 intDEFAULT_PRIORITYDefault priority for this factory.static StringFILENAMEThe 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 AbstractAuthorityFactorycreateBackingStore()Creates the backing store authority factory.protected Citation[]getAuthorities()Returns the set of authorities to use as identifiers for the CRS to be created.CitationgetAuthority()Returns the authority.protected URLgetDefinitionsURL()Returns the URL to the property file that contains CRS definitions.protected static <T extends AbstractAuthorityFactory>
TgetFactory(String authority, Class<T> type)static voidmain(String... args)Prints a list of codes that duplicate the ones provided in theThreadedEpsgFactory.protected static voidmain(String[] args, Class<? extends FactoryUsingWKT> type)Implementation of themain(java.lang.String...)method, shared by subclasses.SetreportDuplicatedCodes(PrintWriter out)Prints a list of codes that duplicate the ones provided byThreadedEpsgFactory.SetreportInstantiationFailures(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 defaultFactoryUsingWKTimplementation 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/espgdirectories 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 defaultFactoryUsingWKTclass.- 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,DATUMandMATH_TRANSFORMFACTORYhints.
-
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:
getAuthorityin interfaceAuthorityFactory- Overrides:
getAuthorityin 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
EsriExtensionreturns {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/epsgdirectory 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
nullif none.
-
createBackingStore
protected AbstractAuthorityFactory createBackingStore() throws FactoryException
Creates the backing store authority factory.- Specified by:
createBackingStorein classDeferredAuthorityFactory- Returns:
- The backing store to uses in
createXXX(...)methods. - Throws:
FactoryNotFoundException- if the noepsg.propertiesfile has been found.FactoryException- if the constructor failed to find or read the file. This exception usually has anIOExceptionas 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 thisFactoryUsingWKTclass 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:-testTry to instantiate all CRS and reports any failure to do so. -duplicatedList 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
-
-