org.geotools.data.hsql
Class HsqlDataStoreFactory

java.lang.Object
  extended byorg.geotools.data.hsql.HsqlDataStoreFactory
All Implemented Interfaces:
DataStoreFactorySpi, Factory

public class HsqlDataStoreFactory
extends java.lang.Object
implements DataStoreFactorySpi

Creates a HsqlDataStoreFactory based on the correct params.

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

Author:
Amr Alam, Refractions Research

Nested Class Summary
 
Nested classes inherited from class org.geotools.data.DataStoreFactorySpi
DataStoreFactorySpi.Param
 
Field Summary
static DataStoreFactorySpi.Param[] arrayParameters
          Array with all of the params
static DataStoreFactorySpi.Param DATABASE
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param DBFILENAME
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param DBTYPE
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param HOST
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param NAMESPACE
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param PASSWD
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param PORT
          Param, package visibiity for JUnit tests
static DataStoreFactorySpi.Param USER
          Param, package visibiity for JUnit tests
 
Constructor Summary
HsqlDataStoreFactory()
          Creates a new instance of HsqlDataStoreFactory
 
Method Summary
 boolean canProcess(java.util.Map params)
          Checks to see if all the hsql params are there.
 DataStore createDataStore(java.util.Map params)
          Construct a hsql data store using the params.
 DataStore createNewDataStore(java.util.Map params)
          DOCUMENT ME!
 java.lang.String getDescription()
          Describe the nature of the datasource constructed by this factory.
 java.lang.String getDisplayName()
          DOCUMENT ME!
 java.util.Map getImplementationHints()
          Map of hints (maybe unmodifiable) used by this factory to customize its use.
 DataStoreFactorySpi.Param[] getParametersInfo()
          Describe parameters.
 boolean isAvailable()
          Test to see if this datastore is available, if it has all the appropriate libraries to construct a datastore.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DBTYPE

public static final DataStoreFactorySpi.Param DBTYPE
Param, package visibiity for JUnit tests


HOST

public static final DataStoreFactorySpi.Param HOST
Param, package visibiity for JUnit tests


PORT

public static final DataStoreFactorySpi.Param PORT
Param, package visibiity for JUnit tests


DATABASE

public static final DataStoreFactorySpi.Param DATABASE
Param, package visibiity for JUnit tests


DBFILENAME

public static final DataStoreFactorySpi.Param DBFILENAME
Param, package visibiity for JUnit tests


USER

public static final DataStoreFactorySpi.Param USER
Param, package visibiity for JUnit tests


PASSWD

public static final DataStoreFactorySpi.Param PASSWD
Param, package visibiity for JUnit tests


NAMESPACE

public static final DataStoreFactorySpi.Param NAMESPACE
Param, package visibiity for JUnit tests


arrayParameters

public static final DataStoreFactorySpi.Param[] arrayParameters
Array with all of the params

Constructor Detail

HsqlDataStoreFactory

public HsqlDataStoreFactory()
Creates a new instance of HsqlDataStoreFactory

Method Detail

canProcess

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

Should have:

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

createDataStore

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

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 'hsql', as well as dbfilename, user, passwd, and namespace (optional).
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

createNewDataStore

public DataStore createNewDataStore(java.util.Map params)
                             throws java.io.IOException
DOCUMENT ME!

Specified by:
createNewDataStore in interface DataStoreFactorySpi
Parameters:
params -
Returns:
Throws:
java.io.IOException - See UnsupportedOperationException

getDisplayName

public java.lang.String getDisplayName()
DOCUMENT ME!

Specified by:
getDisplayName in interface DataStoreFactorySpi
Returns:
"HSQL"

getDescription

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

Specified by:
getDescription in interface DataStoreFactorySpi
Returns:
A human readable description that is suitable for inclusion in a list of available datasources. Currently uses the string "HSQL Database"

isAvailable

public boolean isAvailable()
Test to see if this datastore is available, if it has all the appropriate libraries to construct a datastore. This datastore just returns true for now. This method is used for gui apps, so as to not advertise data store capabilities they don't actually have.

Specified by:
isAvailable in interface DataStoreFactorySpi
Returns:
true if and only if this factory is available to create DataStores.

getParametersInfo

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

Specified by:
getParametersInfo in interface DataStoreFactorySpi
Returns:
See Also:
DataStoreFactorySpi.getParametersInfo()

getImplementationHints

public java.util.Map getImplementationHints()
Description copied from interface: Factory
Map of hints (maybe unmodifiable) used by this factory to customize its use. This map is not guaranteed to contains all the hints supplied by the user; it may be only a subset. Consequently, hints provided here are usually not suitable for creating new factories, unless the implementation make some additional garantees (e.g. FactoryUsingVolatileDependencies).

The primary purpose of this method is to determine if an existing factory instance can be reused for a set of user-supplied hints. This method is invoked by FactoryRegistry in order to compare this factory's hints against user's hints. This is dependency introspection only; never invokes this method for creating new factories.

Keys are usually static constants from the Hints class, while values are instances of some key-dependent class. The key set must contains at least all hints impacting functionality. While the key set may contains all hints supplied by the user, it is recommended to limit the set to only the hints used by this particular factory instance. A minimal set will helps FactoryRegistry to compares only hints that matter and avoid the creation of unnecessary instances of this factory.

The hint values may be different than the one supplied by the user. If a user supplied a hint as a Class object, this method shall replace it by the actual instance used, if possible.

Implementations of this method are usually quite simple. For example if a datum authority factory uses an ordinary datum factory, its method could be implemented as below (note that we should not check if the datum factory is null, since key with null value is the expected behaviour in this case). Example:


 Map hints = new HashMap();
 hints.put(Hints.DATUM_FACTORY, datumFactory);
 return hints;
 

Specified by:
getImplementationHints in interface Factory
Returns:
Returns the implementation hints. The default implementation returns en empty map.


Copyright © GeoTools. All Rights Reserved.