Class ThreadedPostgreSQLEpsgFactory
- Object
-
- AbstractFactory
-
- ReferencingFactory
-
- AbstractAuthorityFactory
-
- BufferedAuthorityFactory
-
- DeferredAuthorityFactory
-
- ThreadedEpsgFactory
-
- ThreadedPostgreSQLEpsgFactory
-
- All Implemented Interfaces:
AuthorityFactory
,CRSAuthorityFactory
,CSAuthorityFactory
,DatumAuthorityFactory
,Factory
,CoordinateOperationAuthorityFactory
,BufferedFactory
,Factory
,OptionalFactory
,RegistrableFactory
public class ThreadedPostgreSQLEpsgFactory extends ThreadedEpsgFactory
Connection to the EPSG database in PostgreSQL database engine using JDBC. The EPSG database can be downloaded from http://www.epsg.org. It should have been imported into a PostgreSQL database, which doesn't need to be on the local machine.Connection parameters
The preferred way to specify connection parameters is through the JNDI interface. However, this datasource provides the following alternative as a convenience: if a "EPSG-DataSource.properties" file is found in current directory or in the user's home directory, then the following properties are fetch. Note that the default value may change in a future version if a public server become available.Property Type Description Geotools Default serverName
String PostgreSQL database server host name localhost
databaseName
String PostgreSQL database name EPSG
schema
String The schema for the EPSG tables portNumber
int TCP port which the PostgreSQL database server is listening on 5432
user
String User used to make database connections GeoTools
password
String Password used to make database connections GeoTools
The database version is given in the edition attribute of the authority. The postgreSQL database should be read only.
Just having this class accessible in the classpath, together with the registration in the
META-INF/services/
directory, is sufficient to get a working EPSG authority factory backed by this database. Vendors can create a copy of this class, modify it and bundle it with their own distribution if they want to connect their users to an other database.- Since:
- 2.4
- Author:
- Didier Richard, Martin Desruisseaux
-
-
Field Summary
Fields Modifier and Type Field Description static String
CONFIGURATION_FILE
The user configuration file.-
Fields inherited from class ThreadedEpsgFactory
datasource, DATASOURCE_NAME, dynamicDataSource, PRIORITY
-
Fields inherited from class ReferencingFactory
LOGGER
-
Fields inherited from class AbstractFactory
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority
-
-
Constructor Summary
Constructors Constructor Description ThreadedPostgreSQLEpsgFactory()
Creates a new instance of this factory.ThreadedPostgreSQLEpsgFactory(Hints hints)
Creates a new instance of this factory with the specified hints.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractAuthorityFactory
createBackingStore(Hints hints)
Returns the backing-store factory for PostgreSQL syntax.protected DataSource
createDataSource()
Returns a data source for the PostgreSQL database.-
Methods inherited from class ThreadedEpsgFactory
canDisposeBackingStore, createBackingStore, dispose, disposeBackingStore, getAuthority, getDataSource, setDataSource
-
Methods inherited from class DeferredAuthorityFactory
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 CoordinateOperationAuthorityFactory
createCoordinateOperation, createFromCoordinateReferenceSystemCodes
-
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 Factory
getImplementationHints
-
-
-
-
Field Detail
-
CONFIGURATION_FILE
public static final String CONFIGURATION_FILE
The user configuration file. This class search first for the first file found in the following directories:- The current directory
- The user's home directory
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ThreadedPostgreSQLEpsgFactory
public ThreadedPostgreSQLEpsgFactory()
Creates a new instance of this factory.
-
ThreadedPostgreSQLEpsgFactory
public ThreadedPostgreSQLEpsgFactory(Hints hints)
Creates a new instance of this factory with the specified hints. The priority is set to a lower value than the FactoryOnAccess's one in order to give the priority to any "official" database installed locally by the user, when available.
-
-
Method Detail
-
createDataSource
protected DataSource createDataSource() throws SQLException
Returns a data source for the PostgreSQL database.- Overrides:
createDataSource
in classThreadedEpsgFactory
- Returns:
- The EPSG data source, or
null
if none where found. - Throws:
SQLException
- if an error occured while creating the data source.
-
createBackingStore
protected AbstractAuthorityFactory createBackingStore(Hints hints) throws SQLException
Returns the backing-store factory for PostgreSQL syntax.- Overrides:
createBackingStore
in classThreadedEpsgFactory
- Parameters:
hints
- A map of hints, including the low-level factories to use for CRS creation.- Returns:
- The EPSG factory using PostgreSQL syntax.
- Throws:
SQLException
- if connection to the database failed.
-
-