Class PostgisNGDataStoreFactory
- Object
-
- JDBCDataStoreFactory
-
- PostgisNGDataStoreFactory
-
- All Implemented Interfaces:
DataAccessFactory
,DataStoreFactorySpi
,Factory
public class PostgisNGDataStoreFactory extends JDBCDataStoreFactory
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface DataAccessFactory
DataAccessFactory.Param
-
-
Field Summary
Fields Modifier and Type Field Description static DataAccessFactory.Param
CREATE_DB_IF_MISSING
attempt to create the database if missingstatic DataAccessFactory.Param
CREATE_PARAMS
attempt to create the database if missingstatic DataAccessFactory.Param
DBTYPE
parameter for database typestatic DataAccessFactory.Param
ENCODE_FUNCTIONS
Enables direct encoding of selected filter functions in sqlstatic DataAccessFactory.Param
ESTIMATED_EXTENTS
parameter that enables estimated extends instead of exact onesstatic DataAccessFactory.Param
LOOSEBBOX
enables using && in bbox queriesstatic DataAccessFactory.Param
PORT
parameter for database portstatic DataAccessFactory.Param
PREPARED_STATEMENTS
Whether a prepared statements based dialect should be used, or notstatic DataAccessFactory.Param
REWRITE_BATCHED_INSERTS
static DataAccessFactory.Param
SCHEMA
parameter for database schemastatic DataAccessFactory.Param
SIMPLIFICATION_METHOD
Simplification method to use if SIMPLIFY is true.static DataAccessFactory.Param
SIMPLIFY
Enables usage of a simplification function, when the queries contain geometry simplification hints The simplification function used depends on SIMPLIFICATION_METHOD setting, and is ST_Simplify by defaultstatic DataAccessFactory.Param
SSL_MODE
-
Fields inherited from class JDBCDataStoreFactory
BATCH_INSERT_SIZE, CALLBACK_FACTORY, DATABASE, DATASOURCE, EVICTOR_TESTS_PER_RUN, EXPOSE_PK, FETCHSIZE, HOST, MAX_OPEN_PREPARED_STATEMENTS, MAXCONN, MAXWAIT, MIN_EVICTABLE_TIME, MINCONN, NAMESPACE, PASSWD, PK_METADATA_TABLE, SQL_ON_BORROW, SQL_ON_RELEASE, TEST_WHILE_IDLE, TIME_BETWEEN_EVICTOR_RUNS, USER, VALIDATECONN
-
-
Constructor Summary
Constructors Constructor Description PostgisNGDataStoreFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
checkDBType(Map<String,?> params)
protected DataSource
createDataSource(Map<String,?> params, SQLDialect dialect)
Creates the datasource for the data store.protected JDBCDataStore
createDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params)
Subclass hook to do additional initialization of a newly created datastore.protected SQLDialect
createSQLDialect(JDBCDataStore dataStore)
Creates the dialect that the datastore uses for communication with the underlying database.protected SQLDialect
createSQLDialect(JDBCDataStore dataStore, Map<String,?> params)
Creates the dialect that the datastore uses for communication with the underlying database.void
dropDatabase(Map<String,Object> params)
Drops the database specified in the connection params.protected String
getDatabaseID()
Returns a string to identify the type of the database.String
getDescription()
Describe the nature of the datasource constructed by this factory.String
getDisplayName()
Name suitable for display to end user.protected String
getDriverClassName()
Returns the fully qualified class name of the jdbc driver.protected String
getJDBCUrl(Map<String,?> params)
Builds up the JDBC url in a jdbc::// : / Override if you need a different setup protected String
getValidationQuery()
Override this to return a good validation query (a very quick one, such as one that asks the database what time is it) or return null if the factory does not support validation.protected void
setupParameters(Map<String,Object> parameters)
Sets up the database connection parameters.-
Methods inherited from class JDBCDataStoreFactory
canProcess, checkDBType, createDataSource, createDataStore, createNewDataStore, getImplementationHints, getParametersInfo, isAvailable
-
-
-
-
Field Detail
-
DBTYPE
public static final DataAccessFactory.Param DBTYPE
parameter for database type
-
LOOSEBBOX
public static final DataAccessFactory.Param LOOSEBBOX
enables using && in bbox queries
-
ESTIMATED_EXTENTS
public static final DataAccessFactory.Param ESTIMATED_EXTENTS
parameter that enables estimated extends instead of exact ones
-
PORT
public static final DataAccessFactory.Param PORT
parameter for database port
-
SCHEMA
public static final DataAccessFactory.Param SCHEMA
parameter for database schema
-
CREATE_DB_IF_MISSING
public static final DataAccessFactory.Param CREATE_DB_IF_MISSING
attempt to create the database if missing
-
CREATE_PARAMS
public static final DataAccessFactory.Param CREATE_PARAMS
attempt to create the database if missing
-
PREPARED_STATEMENTS
public static final DataAccessFactory.Param PREPARED_STATEMENTS
Whether a prepared statements based dialect should be used, or not
-
ENCODE_FUNCTIONS
public static final DataAccessFactory.Param ENCODE_FUNCTIONS
Enables direct encoding of selected filter functions in sql
-
SIMPLIFY
public static final DataAccessFactory.Param SIMPLIFY
Enables usage of a simplification function, when the queries contain geometry simplification hints The simplification function used depends on SIMPLIFICATION_METHOD setting, and is ST_Simplify by default
-
SIMPLIFICATION_METHOD
public static final DataAccessFactory.Param SIMPLIFICATION_METHOD
Simplification method to use if SIMPLIFY is true. By default ST_Simplify is used.
-
SSL_MODE
public static final DataAccessFactory.Param SSL_MODE
-
REWRITE_BATCHED_INSERTS
public static final DataAccessFactory.Param REWRITE_BATCHED_INSERTS
-
-
Method Detail
-
createSQLDialect
protected SQLDialect createSQLDialect(JDBCDataStore dataStore, Map<String,?> params)
Description copied from class:JDBCDataStoreFactory
Creates the dialect that the datastore uses for communication with the underlying database.- Overrides:
createSQLDialect
in classJDBCDataStoreFactory
- Parameters:
dataStore
- The datastore.params
- The connection parameters
-
createSQLDialect
protected SQLDialect createSQLDialect(JDBCDataStore dataStore)
Description copied from class:JDBCDataStoreFactory
Creates the dialect that the datastore uses for communication with the underlying database.- Specified by:
createSQLDialect
in classJDBCDataStoreFactory
- Parameters:
dataStore
- The datastore.
-
getDatabaseID
protected String getDatabaseID()
Description copied from class:JDBCDataStoreFactory
Returns a string to identify the type of the database.Example: 'postgis'.
- Specified by:
getDatabaseID
in classJDBCDataStoreFactory
-
getDisplayName
public String getDisplayName()
Description copied from interface:DataAccessFactory
Name suitable for display to end user.A non localized display name for this data store type.
- Specified by:
getDisplayName
in interfaceDataAccessFactory
- Overrides:
getDisplayName
in classJDBCDataStoreFactory
- Returns:
- A short name suitable for display in a user interface.
-
getDescription
public String getDescription()
Description copied from interface:DataAccessFactory
Describe the nature of the datasource constructed by this factory.A non localized description of this data store type.
- Returns:
- A human readable description that is suitable for inclusion in a list of available datasources.
-
getDriverClassName
protected String getDriverClassName()
Description copied from class:JDBCDataStoreFactory
Returns the fully qualified class name of the jdbc driver.For example: org.postgresql.Driver
- Specified by:
getDriverClassName
in classJDBCDataStoreFactory
-
checkDBType
protected boolean checkDBType(Map<String,?> params)
- Overrides:
checkDBType
in classJDBCDataStoreFactory
-
createDataStoreInternal
protected JDBCDataStore createDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params) throws IOException
Description copied from class:JDBCDataStoreFactory
Subclass hook to do additional initialization of a newly created datastore.Typically subclasses will want to override this method in the case where they provide additional datastore parameters, those should be processed here.
This method is provided with an instance of the datastore. In some cases subclasses may wish to create a new instance of the datastore, for instance in order to wrap the original instance. This is supported but the new datastore must be returned from this method. If not is such the case this method should still return the original passed in.
- Overrides:
createDataStoreInternal
in classJDBCDataStoreFactory
- Parameters:
dataStore
- The newly created datastore.params
- THe datastore parameters.- Throws:
IOException
-
setupParameters
protected void setupParameters(Map<String,Object> parameters)
Description copied from class:JDBCDataStoreFactory
Sets up the database connection parameters.Subclasses may extend, but should not override. This implementation registers the following parameters.
Subclass implementation may remove any parameters from the map, or may overrwrite any parameters in the map.- Overrides:
setupParameters
in classJDBCDataStoreFactory
- Parameters:
parameters
- Map ofDataAccessFactory.Param
objects.
-
getValidationQuery
protected String getValidationQuery()
Description copied from class:JDBCDataStoreFactory
Override this to return a good validation query (a very quick one, such as one that asks the database what time is it) or return null if the factory does not support validation.- Specified by:
getValidationQuery
in classJDBCDataStoreFactory
-
getJDBCUrl
protected String getJDBCUrl(Map<String,?> params) throws IOException
Description copied from class:JDBCDataStoreFactory
Builds up the JDBC url in a jdbc::// : / Override if you need a different setup - Overrides:
getJDBCUrl
in classJDBCDataStoreFactory
- Throws:
IOException
-
createDataSource
protected DataSource createDataSource(Map<String,?> params, SQLDialect dialect) throws IOException
Description copied from class:JDBCDataStoreFactory
Creates the datasource for the data store.This method creates a
BasicDataSource
instance and populates it as follows:- poolPreparedStatements -> false
- driverClassName ->
JDBCDataStoreFactory.getDriverClassName()
- url -> 'jdbc:<
JDBCDataStoreFactory.getDatabaseID()
>://<JDBCDataStoreFactory.HOST
>/<JDBCDataStoreFactory.DATABASE
>' - username -> <
JDBCDataStoreFactory.USER
> - password -> <
JDBCDataStoreFactory.PASSWD
>
- Overrides:
createDataSource
in classJDBCDataStoreFactory
- Throws:
IOException
-
dropDatabase
public void dropDatabase(Map<String,Object> params) throws IOException
Drops the database specified in the connection params. The database must not be in use, and the user must have the necessary privileges- Throws:
IOException
-
-