|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectAbstractFIDMapper
OIDFidMapper
public class OIDFidMapper
Supports the creation of a Feature ID based on the Potgres row OID field.
This is NOT a stable approach for FID (as updates and so on will change the OID), but it will be our best guess in the case of read only access where an index is not present.
Field Summary |
---|
Fields inherited from class AbstractFIDMapper |
---|
autoIncrement, colDecimalDigits, colNames, colSizes, colTypes, returnFIDColumnsAsAttributes, tableName, tableSchemaName |
Constructor Summary | |
---|---|
OIDFidMapper()
|
Method Summary | |
---|---|
String |
createID(Connection conn,
SimpleFeature feature,
Statement statement)
Creates a new ID for a feature. |
int |
getColumnCount()
Returns the number of columns in the primary keys handled by this mapper |
int |
getColumnDecimalDigits(int colIndex)
Provides the number of decimal digits for this column. |
String |
getColumnName(int colIndex)
Returns the name of the specified column in the primary key |
int |
getColumnSize(int colIndex)
Returns the size of a primary key column as it would be provided by the database metadata. |
int |
getColumnType(int colIndex)
Returns the column type by using a constant available in the java.sql.Types interface |
String |
getID(Object[] attributes)
Returns the FID given the values of the prymary key attributes |
Object[] |
getPKAttributes(String FID)
Will always return an emtpy array since OIDs are not updatable, so we don't try to parse the Feature ID at all. |
void |
initSupportStructures()
This method will be called by JDBCDataStore when creating new tables to give the FID mapper an opportunity to initialize needed data structures, such as support tables, sequences, and so on. |
boolean |
isAutoIncrement(int colIndex)
Returns true if the column is of serial type, that is, its value is automatically generated by the database if the user does not provide one |
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. |
boolean |
returnFIDColumnsAsAttributes()
If true the primary key columns will be returned as attributes. |
Methods inherited from class AbstractFIDMapper |
---|
getColumnDecimalDigits, getColumnName, getColumnSize, getColumnType, getTableName, getTableSchemaName, hasAutoIncrementColumns, isAutoIncrement, isVolatile, setInfo, toString |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public OIDFidMapper()
Method Detail |
---|
public void initSupportStructures()
FIDMapper
initSupportStructures
in interface FIDMapper
initSupportStructures
in class AbstractFIDMapper
FIDMapper.initSupportStructures()
public String getID(Object[] attributes)
FIDMapper
attributes
- DOCUMENT ME!FIDMapper.getID(java.lang.Object[])
public Object[] getPKAttributes(String FID) throws IOException
FID
- The feature ID is going to be parsed
IOException
FIDMapper.getPKAttributes(java.lang.String)
public String createID(Connection conn, SimpleFeature feature, Statement statement) throws IOException
FIDMapper
conn
- - the database connectionfeature
- - the feature that needs the new FIDstatement
- - the statement used to insert the feature into the
database
IOException
org.geotools.data.jdbc.fidmapper.FIDMapper#createID(java.sql.Connection, org.geotools.feature.Feature, Statement)
public boolean returnFIDColumnsAsAttributes()
FIDMapper
returnFIDColumnsAsAttributes
in interface FIDMapper
returnFIDColumnsAsAttributes
in class AbstractFIDMapper
FIDMapper.returnFIDColumnsAsAttributes()
public int getColumnCount()
FIDMapper
getColumnCount
in interface FIDMapper
getColumnCount
in class AbstractFIDMapper
FIDMapper.getColumnCount()
public String getColumnName(int colIndex)
FIDMapper
getColumnName
in interface FIDMapper
getColumnName
in class AbstractFIDMapper
FIDMapper.getColumnName(int)
public int getColumnType(int colIndex)
FIDMapper
getColumnType
in interface FIDMapper
getColumnType
in class AbstractFIDMapper
FIDMapper.getColumnType(int)
public int getColumnSize(int colIndex)
FIDMapper
getColumnSize
in interface FIDMapper
getColumnSize
in class AbstractFIDMapper
FIDMapper.getColumnSize(int)
public int getColumnDecimalDigits(int colIndex)
FIDMapper
getColumnDecimalDigits
in interface FIDMapper
getColumnDecimalDigits
in class AbstractFIDMapper
FIDMapper.getColumnDecimalDigits(int)
public boolean isAutoIncrement(int colIndex)
FIDMapper
isAutoIncrement
in interface FIDMapper
isAutoIncrement
in class AbstractFIDMapper
FIDMapper.isAutoIncrement(int)
public boolean isValid(String fid)
FIDMapper
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.
fid
- a feature id to check for structural validity
true
if fid can be parsed to a long, as OID's are longsFIDMapper.isValid(String)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |