org.geotools.data.postgis
Class PostgisDataStoreFactory

java.lang.Object
  extended by org.geotools.data.AbstractDataStoreFactory
      extended by org.geotools.data.postgis.PostgisDataStoreFactory
All Implemented Interfaces:
DataAccessFactory, DataStoreFactorySpi, Factory

public class PostgisDataStoreFactory
extends AbstractDataStoreFactory
implements DataStoreFactorySpi

Creates a PostgisDataStore baed on the correct params.

This factory should be registered in the META-INF/ folder, under services/ in the DataStoreFactorySpi file.

Author:
Jody Garnett, Refractions Research

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.geotools.data.DataAccessFactory
DataAccessFactory.Param
 
Field Summary
static DataAccessFactory.Param DATABASE
           
static DataAccessFactory.Param DBTYPE
           
static DataAccessFactory.Param ESTIMATEDEXTENT
           
static DataAccessFactory.Param HOST
           
static DataAccessFactory.Param LOOSEBBOX
           
static DataAccessFactory.Param MAXCONN
           
static DataAccessFactory.Param MINCONN
           
static DataAccessFactory.Param NAMESPACE
           
static DataAccessFactory.Param PASSWD
           
static DataAccessFactory.Param PORT
           
static DataAccessFactory.Param SCHEMA
           
static DataAccessFactory.Param USER
           
static DataAccessFactory.Param VALIDATECONN
           
static DataAccessFactory.Param WKBENABLED
           
 
Constructor Summary
PostgisDataStoreFactory()
          Creates a new instance of PostgisDataStoreFactory
 
Method Summary
 boolean canProcess(java.util.Map params)
          Checks to see if all the postgis params are there.
 DataStore createDataStore(java.util.Map params)
          Construct a postgis data store using the params.
protected  PostgisDataStore createDataStoreInternal(javax.sql.DataSource dataSource, java.lang.String namespace, java.lang.String schema)
           
 DataStore createNewDataStore(java.util.Map params)
          Postgis cannot create a new database.
static ManageableDataSource getDefaultDataSource(java.lang.String host, java.lang.String user, java.lang.String passwd, int port, java.lang.String database, int maxActive, int minIdle, boolean validate)
           
 java.lang.String getDescription()
          Describe the nature of the datasource constructed by this factory.
 java.lang.String getDisplayName()
          Default Implementation abuses the naming convention.
 DataAccessFactory.Param[] getParametersInfo()
          Describe parameters.
 boolean isAvailable()
          Determines if the appropriate libraries are present for this datastore factory to successfully produce postgis datastores.
 
Methods inherited from class org.geotools.data.AbstractDataStoreFactory
getImplementationHints, getParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.geotools.factory.Factory
getImplementationHints
 

Field Detail

DBTYPE

public static final DataAccessFactory.Param DBTYPE

HOST

public static final DataAccessFactory.Param HOST

PORT

public static final DataAccessFactory.Param PORT

DATABASE

public static final DataAccessFactory.Param DATABASE

SCHEMA

public static final DataAccessFactory.Param SCHEMA

USER

public static final DataAccessFactory.Param USER

PASSWD

public static final DataAccessFactory.Param PASSWD

MAXCONN

public static final DataAccessFactory.Param MAXCONN

MINCONN

public static final DataAccessFactory.Param MINCONN

VALIDATECONN

public static final DataAccessFactory.Param VALIDATECONN

NAMESPACE

public static final DataAccessFactory.Param NAMESPACE

WKBENABLED

public static final DataAccessFactory.Param WKBENABLED

LOOSEBBOX

public static final DataAccessFactory.Param LOOSEBBOX

ESTIMATEDEXTENT

public static final DataAccessFactory.Param ESTIMATEDEXTENT
Constructor Detail

PostgisDataStoreFactory

public PostgisDataStoreFactory()
Creates a new instance of PostgisDataStoreFactory

Method Detail

canProcess

public boolean canProcess(java.util.Map params)
Checks to see if all the postgis params are there.

Should have:

Specified by:
canProcess in interface DataAccessFactory
Overrides:
canProcess in class AbstractDataStoreFactory
Parameters:
params - Set of parameters needed for a postgis data store.
Returns:
true if dbtype equals postgis, and contains keys for host, user, passwd, and database.

createDataStore

public DataStore createDataStore(java.util.Map params)
                          throws java.io.IOException
Construct a postgis data store using the params.

Specified by:
createDataStore in interface DataAccessFactory
Specified by:
createDataStore in interface DataStoreFactorySpi
Parameters:
params - The full set of information needed to construct a live data source. Should have dbtype equal to postgis, as well as host, user, passwd, database, and table.
Returns:
The created DataSource, this may be null if the required resource was not found or if insufficent parameters were given. Note that canProcess() should have returned false if the problem is to do with insuficent parameters.
Throws:
java.io.IOException - See DataSourceException
DataSourceException - Thrown if there were any problems creating or connecting the datasource.

getDefaultDataSource

public static ManageableDataSource getDefaultDataSource(java.lang.String host,
                                                        java.lang.String user,
                                                        java.lang.String passwd,
                                                        int port,
                                                        java.lang.String database,
                                                        int maxActive,
                                                        int minIdle,
                                                        boolean validate)
                                                 throws DataSourceException
Throws:
DataSourceException

createDataStoreInternal

protected PostgisDataStore createDataStoreInternal(javax.sql.DataSource dataSource,
                                                   java.lang.String namespace,
                                                   java.lang.String schema)
                                            throws java.io.IOException
Throws:
java.io.IOException

createNewDataStore

public DataStore createNewDataStore(java.util.Map params)
                             throws java.io.IOException
Postgis cannot create a new database.

Specified by:
createNewDataStore in interface DataStoreFactorySpi
Parameters:
params -
Throws:
java.io.IOException - See UnsupportedOperationException
java.lang.UnsupportedOperationException - Cannot create new database

getDisplayName

public java.lang.String getDisplayName()
Description copied from class: AbstractDataStoreFactory
Default Implementation abuses the naming convention.

Will return Foo for org.geotools.data.foo.FooFactory.

Specified by:
getDisplayName in interface DataAccessFactory
Overrides:
getDisplayName in class AbstractDataStoreFactory
Returns:
return display name based on class name

getDescription

public java.lang.String getDescription()
Describe the nature of the datasource constructed by this factory.

Specified by:
getDescription in interface DataAccessFactory
Returns:
A human readable description that is suitable for inclusion in a list of available datasources.

isAvailable

public boolean isAvailable()
Determines if the appropriate libraries are present for this datastore factory to successfully produce postgis datastores.

Specified by:
isAvailable in interface DataAccessFactory
Overrides:
isAvailable in class AbstractDataStoreFactory
Returns:
true if the postgresql jar is on the classpath.

getParametersInfo

public DataAccessFactory.Param[] getParametersInfo()
Describe parameters.

Specified by:
getParametersInfo in interface DataAccessFactory
Returns:
Param array describing the Map for createDataStore
See Also:
DataAccessFactory.getParametersInfo()


Copyright © 1996-2010 Geotools. All Rights Reserved.