org.geotools.referencing.factory.epsg
Class ThreadedPostgreSQLEpsgFactory

java.lang.Object
  extended by org.geotools.factory.AbstractFactory
      extended by org.geotools.referencing.factory.ReferencingFactory
          extended by org.geotools.referencing.factory.AbstractAuthorityFactory
              extended by org.geotools.referencing.factory.BufferedAuthorityFactory
                  extended by org.geotools.referencing.factory.DeferredAuthorityFactory
                      extended by org.geotools.referencing.factory.epsg.ThreadedEpsgFactory
                          extended by org.geotools.referencing.factory.epsg.ThreadedPostgreSQLEpsgFactory
All Implemented Interfaces:
javax.imageio.spi.RegisterableService, BufferedFactory, Factory, OptionalFactory, org.opengis.referencing.AuthorityFactory, org.opengis.referencing.crs.CRSAuthorityFactory, org.opengis.referencing.cs.CSAuthorityFactory, org.opengis.referencing.datum.DatumAuthorityFactory, org.opengis.referencing.operation.CoordinateOperationAuthorityFactory

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 suffisient 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
Version:
$Id: ThreadedPostgreSQLEpsgFactory.java 32612 2009-03-09 16:32:57Z aaime $
Author:
Didier Richard, Martin Desruisseaux

Field Summary
static java.lang.String CONFIGURATION_FILE
          The user configuration file.
 
Fields inherited from class org.geotools.referencing.factory.epsg.ThreadedEpsgFactory
DATASOURCE_NAME
 
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
ThreadedPostgreSQLEpsgFactory()
          Creates a new instance of this factory.
ThreadedPostgreSQLEpsgFactory(Hints hints)
          Creates a new instance of this factory with the specified hints.
 
Method Summary
protected  AbstractAuthorityFactory createBackingStore(Hints hints)
          Returns the backing-store factory for PostgreSQL syntax.
protected  javax.sql.DataSource createDataSource()
          Returns a data source for the PostgreSQL database.
 
Methods inherited from class org.geotools.referencing.factory.epsg.ThreadedEpsgFactory
canDisposeBackingStore, createBackingStore, getAuthority, getDataSource, setDataSource
 
Methods inherited from class org.geotools.referencing.factory.DeferredAuthorityFactory
dispose, exit, isAvailable, isConnected, setTimeout
 
Methods inherited from class org.geotools.referencing.factory.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 org.geotools.referencing.factory.AbstractAuthorityFactory
noSuchAuthorityCode, trimAuthority
 
Methods inherited from class org.geotools.referencing.factory.ReferencingFactory
ensureNonNull
 
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.crs.CRSAuthorityFactory
createCompoundCRS, createCoordinateReferenceSystem, createDerivedCRS, createEngineeringCRS, createGeocentricCRS, createGeographicCRS, createImageCRS, createProjectedCRS, createTemporalCRS, createVerticalCRS
 
Methods inherited from interface org.opengis.referencing.cs.CSAuthorityFactory
createCartesianCS, createCoordinateSystem, createCoordinateSystemAxis, createCylindricalCS, createEllipsoidalCS, createPolarCS, createSphericalCS, createTimeCS, createUnit, createVerticalCS
 
Methods inherited from interface org.opengis.referencing.datum.DatumAuthorityFactory
createDatum, createEllipsoid, createEngineeringDatum, createGeodeticDatum, createImageDatum, createPrimeMeridian, createTemporalDatum, createVerticalDatum
 
Methods inherited from interface org.opengis.referencing.operation.CoordinateOperationAuthorityFactory
createCoordinateOperation, createFromCoordinateReferenceSystemCodes
 
Methods inherited from interface org.opengis.referencing.AuthorityFactory
createObject, getAuthorityCodes, getDescriptionText
 
Methods inherited from interface org.opengis.referencing.Factory
getVendor
 
Methods inherited from interface org.geotools.factory.Factory
getImplementationHints
 

Field Detail

CONFIGURATION_FILE

public static final java.lang.String CONFIGURATION_FILE
The user configuration file. This class search first for the first file found in the following directories:

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 javax.sql.DataSource createDataSource()
                                         throws java.sql.SQLException
Returns a data source for the PostgreSQL database.

Overrides:
createDataSource in class ThreadedEpsgFactory
Returns:
The EPSG data source, or null if none where found.
Throws:
java.sql.SQLException - if an error occured while creating the data source.

createBackingStore

protected AbstractAuthorityFactory createBackingStore(Hints hints)
                                               throws java.sql.SQLException
Returns the backing-store factory for PostgreSQL syntax.

Overrides:
createBackingStore in class ThreadedEpsgFactory
Parameters:
hints - A map of hints, including the low-level factories to use for CRS creation.
Returns:
The EPSG factory using PostgreSQL syntax.
Throws:
java.sql.SQLException - if connection to the database failed.


Copyright © 1996-2010 Geotools. All Rights Reserved.