org.geotools.data.db2
Class DB2SpatialCatalog

java.lang.Object
  extended byorg.geotools.data.db2.DB2SpatialCatalog

public class DB2SpatialCatalog
extends java.lang.Object

Manage the DB2 Spatial Extender spatial catalog information in memory to improve performance.

This class is not intended to be used outside the DB2 plug-in package.

Currently, a different catalog is managed for each DB2 database and schema specified in the creation of a DB2DataStore. Multiple data stores created for the same database and schema can share the same catalog.

All schema, table and column names are case sensitive.

Convenience methods provided for access to various types of catalog information like type names, srid, etc.

Note: the 'srid' value in DB2 is different from the srid value referenced in OGC documents. The OGC srid corresponds more closely to the DB2 'csid' value. This makes life quite confusing because the DB2 'srid' is needed to construct geometries in the database. GeoTools needs the 'csid' which generally corresponds to an EPSG coordinate system identifier in order to create an OGC coordinate system reference.

We also assume that there is a single 'srid' associated with all the geometries in a particular geometry column. This is not required by DB2.

Do we need to consider freeing this up at some point as the HashMap of catalogs is stored in a class variable?

Author:
David Adler - IBM Corporation

Method Summary
static java.lang.String geomID(java.lang.String tableSchema, java.lang.String tableName, java.lang.String columnName)
          A convenience method to nicely format the schema, table and column name.
static DB2SpatialCatalog getInstance(java.lang.String dbURL, java.lang.String tableSchema, java.sql.Connection conn)
          Get an instance of the DB2SpatialCatalog for the specified datastore.
static void reset()
          This method should only be called by DB2SpatialCatalogTest
 java.lang.String toString()
          Returns the database URL and table schema.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

reset

public static void reset()
This method should only be called by DB2SpatialCatalogTest


getInstance

public static DB2SpatialCatalog getInstance(java.lang.String dbURL,
                                            java.lang.String tableSchema,
                                            java.sql.Connection conn)
                                     throws java.sql.SQLException
Get an instance of the DB2SpatialCatalog for the specified datastore.

If it already exists, just return the current catalog for this database identified by the database connection URL and table schema.

If it doesn't already exist and the connection parameter is null, return null.

If not, read the DB2 Spatial Extender catalog tables and create an in-memory representation for efficient access.

Parameters:
dbURL - the database URL
tableSchema - the table schema name
conn - an active database connection or null
Returns:
a DB2SpatialCatalog.
Throws:
java.sql.SQLException - if there was a failure to create a catalog.

geomID

public static java.lang.String geomID(java.lang.String tableSchema,
                                      java.lang.String tableName,
                                      java.lang.String columnName)
A convenience method to nicely format the schema, table and column name.

Parameters:
tableSchema -
tableName -
columnName -
Returns:
a concatenated key value.

toString

public java.lang.String toString()
Returns the database URL and table schema.

Returns:
the database URL and table schema as a String.


Copyright © GeoTools. All Rights Reserved.