org.geotools.data
Interface DataStoreFactorySpi

All Superinterfaces:
Factory

public interface DataStoreFactorySpi
extends Factory

Constructs a live DataStore from a set of parameters.

An instance of this interface should exist for all data stores which want to take advantage of the dynamic plugin system. In addition to implementing this interface datastores should have a services file:

META-INF/services/org.geotools.data.DataStoreFactorySpi

The file should contain a single line which gives the full name of the implementing class.

example:
e.g. org.geotools.data.mytype.MyTypeDataSourceFacotry

The factories are never called directly by users, instead the DataStoreFinder class is used.The DataStoreFinder may implements the Catalog interface

The following example shows how a user might connect to a PostGIS database:


 HashMap params = new HashMap();
 params.put("namespace", "leeds"); 
 params.put("dbtype", "postgis");
 params.put("host","feathers.leeds.ac.uk");
 params.put("port", "5432");
 params.put("database","postgis_test");
 params.put("user","postgis_ro");
 params.put("passwd","postgis_ro");
 
 DataStoreFinder catalog = DataStoreFinder();
 catalog.addDataStore("leeds", params);
 
 DataStore postgis = catalog.getDataStore( "leeds" );
 FeatureSource = postgis.getFeatureSource( "table" );
 

Author:
Jody Garnett, Refractions Research

Nested Class Summary
static class DataStoreFactorySpi.Param
          Data class used to capture Parameter requirements.
 
Method Summary
 boolean canProcess(java.util.Map params)
          Test to see if this factory is suitable for processing the data pointed to by the param tags.
 DataStore createDataStore(java.util.Map params)
          Construct a live data source using the params specifed.
 DataStore createNewDataStore(java.util.Map params)
           
 java.lang.String getDescription()
          Describe the nature of the datasource constructed by this factory.
 DataStoreFactorySpi.Param[] getParametersInfo()
          MetaData about the required Parameters.
 

Method Detail

createDataStore

public DataStore createDataStore(java.util.Map params)
                          throws java.io.IOException
Construct a live data source using the params specifed.

Parameters:
params - The full set of information needed to construct a live data store. Typical key values for the map include: url - location of a resource, used by file reading datasources. dbtype - the type of the database to connect to, e.g. postgis, mysql
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 - if there were any problems creating or connecting the datasource.

createNewDataStore

public DataStore createNewDataStore(java.util.Map params)
                             throws java.io.IOException
Throws:
java.io.IOException

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.

getParametersInfo

public DataStoreFactorySpi.Param[] getParametersInfo()
MetaData about the required Parameters.

Interpretation of FeatureDescriptor values:

This should be the same as:


 Object params = factory.getParameters();
 BeanInfo info = getBeanInfo( params );
 
 return info.getPropertyDescriptors();
 

Returns:

canProcess

public boolean canProcess(java.util.Map params)
Test to see if this factory is suitable for processing the data pointed to by the param tags. If this datasource requires a number of parameters then this mehtod should check that they are all present and that they are all valid. If the datasource is a file reading data source then the extentions or mime types of any files specified should be checked. For example, a Shapefile datasource should check that the url param ends with shp, such tests should be case insensative.

Parameters:
params - The full set of information needed to construct a live data source.
Returns:
booean true if and only if this factory can process the resource indicated by the param set and all the required params are pressent.


Copyright © 1996-2003 GeoTools. All Rights Reserved.