Class GeoPkgDataStoreFactory
- Object
-
- JDBCDataStoreFactory
-
- GeoPkgDataStoreFactory
-
- All Implemented Interfaces:
DataAccessFactory,DataStoreFactorySpi,Factory
public class GeoPkgDataStoreFactory extends JDBCDataStoreFactory
The GeoPackage DataStore Factory.- Author:
- Justin Deoliveira, Niels Charlier
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface DataAccessFactory
DataAccessFactory.Param
-
-
Field Summary
Fields Modifier and Type Field Description static DataAccessFactory.ParamCONTENTS_ONLYstatic DataAccessFactory.ParamDATABASEparameter for database instancestatic DataAccessFactory.ParamDBTYPEparameter for database typestatic DataAccessFactory.ParamMEMORY_MAP_SIZEMaximum mapped memory, defaults to nullstatic DataAccessFactory.ParamREAD_ONLY-
Fields inherited from class JDBCDataStoreFactory
BATCH_INSERT_SIZE, CALLBACK_FACTORY, DATASOURCE, EVICTOR_TESTS_PER_RUN, EXPOSE_PK, FETCHSIZE, HOST, MAX_OPEN_PREPARED_STATEMENTS, MAXCONN, MAXWAIT, MIN_EVICTABLE_TIME, MINCONN, NAMESPACE, PASSWD, PK_METADATA_TABLE, PORT, SCHEMA, SQL_ON_BORROW, SQL_ON_RELEASE, TEST_WHILE_IDLE, TIME_BETWEEN_EVICTOR_RUNS, USER, VALIDATECONN
-
-
Constructor Summary
Constructors Constructor Description GeoPkgDataStoreFactory()GeoPkgDataStoreFactory(GeoPkgGeomWriter.Configuration writerConfig)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BasicDataSourcecreateDataSource(Map<String,?> params)This is left for public API compatibility but it's not as efficient as using the GeoPackage internal poolprotected DataSourcecreateDataSource(Map<String,?> params, SQLDialect dialect)Creates the datasource for the data store.protected JDBCDataStorecreateDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params)Subclass hook to do additional initialization of a newly created datastore.protected SQLDialectcreateSQLDialect(JDBCDataStore dataStore)Creates the dialect that the datastore uses for communication with the underlying database.protected SQLDialectcreateSQLDialect(JDBCDataStore dataStore, Map<String,?> params)Creates the dialect that the datastore uses for communication with the underlying database.protected StringgetDatabaseID()Returns a string to identify the type of the database.StringgetDescription()Describe the nature of the datasource constructed by this factory.protected StringgetDriverClassName()Returns the fully qualified class name of the jdbc driver.protected StringgetJDBCUrl(Map<String,?> params)Builds up the JDBC url in a jdbc::// : / Override if you need a different setup protected StringgetValidationQuery()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.voidsetBaseDirectory(File baseDirectory)Sets the base location to store database files.static voidsetSqlLiteConnectTimeout(int sqlLiteConnectTimeout)Sets the timeout for SQLite connections in miliseconds (for testing).protected voidsetupParameters(Map<String,Object> parameters)Sets up the database connection parameters.-
Methods inherited from class JDBCDataStoreFactory
canProcess, checkDBType, checkDBType, createDataStore, createNewDataStore, getDisplayName, getImplementationHints, getParametersInfo, isAvailable
-
-
-
-
Field Detail
-
DBTYPE
public static final DataAccessFactory.Param DBTYPE
parameter for database type
-
DATABASE
public static final DataAccessFactory.Param DATABASE
parameter for database instance
-
READ_ONLY
public static final DataAccessFactory.Param READ_ONLY
-
CONTENTS_ONLY
public static final DataAccessFactory.Param CONTENTS_ONLY
-
MEMORY_MAP_SIZE
public static final DataAccessFactory.Param MEMORY_MAP_SIZE
Maximum mapped memory, defaults to null
-
-
Constructor Detail
-
GeoPkgDataStoreFactory
public GeoPkgDataStoreFactory()
-
GeoPkgDataStoreFactory
public GeoPkgDataStoreFactory(GeoPkgGeomWriter.Configuration writerConfig)
-
-
Method Detail
-
setBaseDirectory
public void setBaseDirectory(File baseDirectory)
Sets the base location to store database files.- Parameters:
baseDirectory- A directory.
-
getDatabaseID
protected String getDatabaseID()
Description copied from class:JDBCDataStoreFactoryReturns a string to identify the type of the database.Example: 'postgis'.
- Specified by:
getDatabaseIDin classJDBCDataStoreFactory
-
getDescription
public String getDescription()
Description copied from interface:DataAccessFactoryDescribe 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:JDBCDataStoreFactoryReturns the fully qualified class name of the jdbc driver.For example: org.postgresql.Driver
- Specified by:
getDriverClassNamein classJDBCDataStoreFactory
-
createSQLDialect
protected SQLDialect createSQLDialect(JDBCDataStore dataStore, Map<String,?> params)
Description copied from class:JDBCDataStoreFactoryCreates the dialect that the datastore uses for communication with the underlying database.- Overrides:
createSQLDialectin classJDBCDataStoreFactory- Parameters:
dataStore- The datastore.params- The connection parameters
-
createSQLDialect
protected SQLDialect createSQLDialect(JDBCDataStore dataStore)
Description copied from class:JDBCDataStoreFactoryCreates the dialect that the datastore uses for communication with the underlying database.- Specified by:
createSQLDialectin classJDBCDataStoreFactory- Parameters:
dataStore- The datastore.
-
getValidationQuery
protected String getValidationQuery()
Description copied from class:JDBCDataStoreFactoryOverride 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:
getValidationQueryin classJDBCDataStoreFactory
-
getJDBCUrl
protected String getJDBCUrl(Map<String,?> params) throws IOException
Description copied from class:JDBCDataStoreFactoryBuilds up the JDBC url in a jdbc::// : / Override if you need a different setup - Overrides:
getJDBCUrlin classJDBCDataStoreFactory- Throws:
IOException
-
setupParameters
protected void setupParameters(Map<String,Object> parameters)
Description copied from class:JDBCDataStoreFactorySets 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:
setupParametersin classJDBCDataStoreFactory- Parameters:
parameters- Map ofDataAccessFactory.Paramobjects.
-
createDataSource
public BasicDataSource createDataSource(Map<String,?> params) throws IOException
This is left for public API compatibility but it's not as efficient as using the GeoPackage internal pool- Overrides:
createDataSourcein classJDBCDataStoreFactory- Parameters:
params- Map of connection parameter.- Returns:
- DataSource for SQL use
- Throws:
IOException
-
createDataSource
protected DataSource createDataSource(Map<String,?> params, SQLDialect dialect) throws IOException
Description copied from class:JDBCDataStoreFactoryCreates the datasource for the data store.This method creates a
BasicDataSourceinstance 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:
createDataSourcein classJDBCDataStoreFactory- Throws:
IOException
-
createDataStoreInternal
protected JDBCDataStore createDataStoreInternal(JDBCDataStore dataStore, Map<String,?> params) throws IOException
Description copied from class:JDBCDataStoreFactorySubclass 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:
createDataStoreInternalin classJDBCDataStoreFactory- Parameters:
dataStore- The newly created datastore.params- THe datastore parameters.- Throws:
IOException
-
setSqlLiteConnectTimeout
public static void setSqlLiteConnectTimeout(int sqlLiteConnectTimeout)
Sets the timeout for SQLite connections in miliseconds (for testing). Default is 60 seconds.- Parameters:
sqlLiteConnectTimeout- timeout in miliseconds
-
-