org.geotools.data.jdbc.fidmapper
Class AutoIncrementFIDMapper

Object
  extended by AbstractFIDMapper
      extended by AutoIncrementFIDMapper
All Implemented Interfaces:
Serializable, FIDMapper
Direct Known Subclasses:
DB2AutoIncrementFIDMapper, PostGISAutoIncrementFIDMapper

public class AutoIncrementFIDMapper
extends AbstractFIDMapper

Support primary key columns that are automatically generated by the database.

Author:
wolf
See Also:
Serialized Form
Module:

Field Summary
 
Fields inherited from class AbstractFIDMapper
autoIncrement, colDecimalDigits, colNames, colSizes, colTypes, returnFIDColumnsAsAttributes, tableName, tableSchemaName
 
Constructor Summary
AutoIncrementFIDMapper(String colName, int dataType)
          Construct an AutoIncrementFIDMapper
AutoIncrementFIDMapper(String tableName, String colName, int dataType)
          Construct an AutoIncrementFIDMapper
AutoIncrementFIDMapper(String tableSchemaName, String tableName, String colName, int dataType)
          Construct an AutoIncrementFIDMapper
 
Method Summary
 String createID(Connection conn, SimpleFeature feature, Statement statement)
          Creates a new ID for a feature.
 String getID(Object[] attributes)
          Returns the FID given the values of the prymary key attributes
 Object[] getPKAttributes(String FID)
          Creates the value for the PK attributes given the feature.
 boolean isValid(String fid)
          Provides a simple means of assessing if a feature id is structurally valid with respect to the fids this FIDMapper creates.
 
Methods inherited from class AbstractFIDMapper
getColumnCount, getColumnDecimalDigits, getColumnDecimalDigits, getColumnName, getColumnName, getColumnSize, getColumnSize, getColumnType, getColumnType, getTableName, getTableSchemaName, hasAutoIncrementColumns, initSupportStructures, isAutoIncrement, isAutoIncrement, isVolatile, returnFIDColumnsAsAttributes, setInfo, toString
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AutoIncrementFIDMapper

public AutoIncrementFIDMapper(String colName,
                              int dataType)
Construct an AutoIncrementFIDMapper

Parameters:
colName -
dataType -

AutoIncrementFIDMapper

public AutoIncrementFIDMapper(String tableSchemaName,
                              String tableName,
                              String colName,
                              int dataType)
Construct an AutoIncrementFIDMapper

Parameters:
tableSchemaName -
tableName -
colName -
dataType -

AutoIncrementFIDMapper

public AutoIncrementFIDMapper(String tableName,
                              String colName,
                              int dataType)
Construct an AutoIncrementFIDMapper

Parameters:
tableName -
colName -
dataType -
Method Detail

getID

public String getID(Object[] attributes)
Description copied from interface: FIDMapper
Returns the FID given the values of the prymary key attributes

Parameters:
attributes - DOCUMENT ME!
See Also:
FIDMapper.getID(java.lang.Object[])

getPKAttributes

public Object[] getPKAttributes(String FID)
                         throws IOException
Description copied from interface: FIDMapper
Creates the value for the PK attributes given the feature. If the FID is null, will throw an IOException if not possible. If null is returned, no primary key value needs to be specified, which is what we want for auto-increment fields.

Parameters:
FID - The feature ID is going to be parsed
Throws:
IOException
See Also:
FIDMapper.getPKAttributes(java.lang.String)

createID

public String createID(Connection conn,
                       SimpleFeature feature,
                       Statement statement)
                throws IOException
Description copied from interface: FIDMapper
Creates a new ID for a feature.
This is done either by querying the database (for auto-increment like types, for example sequences) or by inspecting the Feature (for example, for primary keys with business meaning that whose attributes are included in the Feature ones).

Parameters:
conn - - the database connection
feature - - the feature that needs the new FID
statement - - the statement used to insert the feature into the database
Throws:
IOException
See Also:
org.geotools.data.jdbc.fidmapper.FIDMapper#createID(java.sql.Connection, org.geotools.feature.Feature, Statement)

isValid

public boolean isValid(String fid)
Description copied from interface: FIDMapper
Provides a simple means of assessing if a feature id is structurally valid with respect to the fids this FIDMapper creates.

The primary purpose of this method is to help in filtering out fids from filters that are not appropriate for a given FeatureType but that may otherwise being treated as valid if they get down to the actual SQL query.

The validity check may be as strict or as loose as the concrete FIDMapper wishes, since there may be cases where whether a fid in a filter is valid or not is not that important, or where it may result in deleting a Feature that was not expected to be deleted.

An example of such a need for validation may be a feature id composed like <featureTypeName>.<number>, where the actual table PK is just the <number> part. If a request over the FeatureType "ft1" is made with a fid filter like ft2.1, this method can ensure the number 1 is not send out in the SQL query at all.

Parameters:
fid - a feature id to check for structural validity
Returns:
true if fid is an integer, false othwerwise
See Also:
FIDMapper.isValid(String)


Copyright © 1996-2009 Geotools. All Rights Reserved.