org.geotools.data.postgis
Class VersionedPostgisDataStoreFactory

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

public class VersionedPostgisDataStoreFactory
extends AbstractDataStoreFactory

Builds instances of the versioned Postgis datastore

Since:
2.4
Author:
aaime

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.geotools.data.DataAccessFactory
DataAccessFactory.Param
 
Field Summary
static DataAccessFactory.Param DATABASE
           
static DataAccessFactory.Param DATASOURCE
          parameter for data source
static DataAccessFactory.Param DBTYPE
           
static DataAccessFactory.Param HOST
           
protected static java.util.logging.Logger LOGGER
          The logger for the postgis module.
static DataAccessFactory.Param LOOSEBBOX
           
static DataAccessFactory.Param NAMESPACE
           
static DataAccessFactory.Param PASSWD
           
static DataAccessFactory.Param PORT
           
static DataAccessFactory.Param SCHEMA
           
static DataAccessFactory.Param USER
           
static DataAccessFactory.Param VERSIONALL
           
static DataAccessFactory.Param WKBENABLED
           
 
Constructor Summary
VersionedPostgisDataStoreFactory()
          Creates a new instance of PostgisDataStoreFactory
 
Method Summary
 boolean canProcess(java.util.Map params)
          Default implementation verifies the Map against the Param information.
 DataStore createDataStore(java.util.Map params)
          Construct a postgis data store using the params.
protected  VersionedPostgisDataStore 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.
 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
 

Field Detail

LOGGER

protected static final java.util.logging.Logger LOGGER
The logger for the postgis module.


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

NAMESPACE

public static final DataAccessFactory.Param NAMESPACE

DATASOURCE

public static final DataAccessFactory.Param DATASOURCE
parameter for data source


WKBENABLED

public static final DataAccessFactory.Param WKBENABLED

LOOSEBBOX

public static final DataAccessFactory.Param LOOSEBBOX

VERSIONALL

public static final DataAccessFactory.Param VERSIONALL
Constructor Detail

VersionedPostgisDataStoreFactory

public VersionedPostgisDataStoreFactory()
Creates a new instance of PostgisDataStoreFactory

Method Detail

canProcess

public boolean canProcess(java.util.Map params)
Description copied from class: AbstractDataStoreFactory
Default implementation verifies the Map against the Param information.

It will ensure that:

Why would you ever want to override this method? If you want to check that a expected file exists and is a directory.

Overrride:

 public boolean canProcess( Map params ) {
     if( !super.canProcess( params ) ){
          return false; // was not in agreement with getParametersInfo
     }
     // example check
     File file = (File) DIRECTORY.lookup( params ); // DIRECTORY is a param
     return file.exists() && file.isDirectory();
 }
 

Specified by:
canProcess in interface DataAccessFactory
Overrides:
canProcess in class AbstractDataStoreFactory
Parameters:
params - The full set of information needed to construct a live data source.
Returns:
true if params is in agreement with getParametersInfo, override for additional checks.

createDataStore

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

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.

createDataStoreInternal

protected VersionedPostgisDataStore 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.

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.

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.

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


Copyright © 1996-2010 Geotools. All Rights Reserved.