|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.geotools.data.jdbc.JDBCFeatureSource org.geotools.data.jdbc.JDBCFeatureStore
This is a starting point for providing your own FeatureStore implementation.
Field Summary | |
protected Transaction |
transaction
Current Transaction this FeatureSource is opperating against |
Constructor Summary | |
JDBCFeatureStore(JDBC1DataStore jdbcDataStore,
FeatureType featureType)
|
Method Summary | |
java.util.Set |
addFeatures(FeatureReader reader)
Add Features from reader to this FeatureStore. |
protected void |
assertFids(java.util.Set fids)
|
protected void |
assertFilter(Filter filter)
|
protected java.util.Set |
fids(Filter filter)
|
protected InProcessLockingManager |
getInProcessLockingManager()
Used by subclasses to access locking manager. |
Transaction |
getTransaction()
Used to access the Transaction this DataSource is currently opperating against. |
protected void |
modifyFeatures(AttributeType[] type,
java.lang.Object[] value,
FeatureWriter writer)
|
void |
modifyFeatures(AttributeType[] type,
java.lang.Object[] value,
Filter filter)
Modifies features matching filter .
|
void |
modifyFeatures(AttributeType type,
java.lang.Object value,
Filter filter)
Modifies features matching filter .
|
void |
removeFeatures(Filter filter)
Removes features indicated by provided filter. |
void |
setFeatures(FeatureReader reader)
Replace with contents of reader. |
void |
setTransaction(Transaction transaction)
Provides a transaction for commit/rollback control of this FeatureStore. |
Methods inherited from class org.geotools.data.jdbc.JDBCFeatureSource |
addFeatureListener, close, close, close, count, getBounds, getBounds, getConnection, getCount, getDataStore, getFeatures, getFeatures, getFeatures, getJDBCDataStore, getSchema, removeFeatureListener |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.geotools.data.FeatureSource |
addFeatureListener, getBounds, getBounds, getCount, getDataStore, getFeatures, getFeatures, getFeatures, getSchema, removeFeatureListener |
Field Detail |
protected Transaction transaction
Constructor Detail |
public JDBCFeatureStore(JDBC1DataStore jdbcDataStore, FeatureType featureType)
Method Detail |
public Transaction getTransaction()
FeatureStore
Example Use: adding features to a road DataSource
Transaction t = roads.getTransaction();
try{
roads.addFeatures( features );
roads.getTransaction().commit();
}
catch( IOException erp ){
//something went wrong;
roads.getTransaction().rollback();
}
getTransaction
in interface FeatureStore
getTransaction
in class JDBCFeatureSource
protected InProcessLockingManager getInProcessLockingManager()
All our implementations here are rely on FeatureWriter to check the locks.
When making your own SQL opperations, have a look at assertFids( Set fids ), and assertFids( Filter ). You may use these to check against the lockingManager if one is used.
If the lockingManager is not used, ie is null, it assumed that you are making use of native database locks. Or doing your own thing.That is the assertFids functions only when lockingManager is non null.
protected java.util.Set fids(Filter filter) throws java.util.NoSuchElementException, java.io.IOException, IllegalAttributeException
java.util.NoSuchElementException
java.io.IOException
IllegalAttributeException
protected void assertFilter(Filter filter) throws java.io.IOException
java.io.IOException
protected void assertFids(java.util.Set fids) throws FeatureLockException
FeatureLockException
public void modifyFeatures(AttributeType type, java.lang.Object value, Filter filter) throws java.io.IOException
filter
.
Equivelent to:
modifyFeatures( new AttributeType[]{ type, }, new Object[]{ value, }, filter );
Subclasses may override this method to perform the appropriate optimization for this result.
modifyFeatures
in interface FeatureStore
type
- Attribute to modifyvalue
- Modification being made to typefilter
- Identifies features to modify
java.io.IOException
FeatureStore.modifyFeatures(org.geotools.feature.AttributeType,
java.lang.Object, org.geotools.filter.Filter)
public void modifyFeatures(AttributeType[] type, java.lang.Object[] value, Filter filter) throws java.io.IOException
filter
.
Equivelent to:
FeatureWriter writer = dataStore.getFeatureWriter( typeName, filter, transaction );
Feature feature;
while( writer.hasNext() ){
feature = writer.next();
feature.setAttribute( type[0].getName(), value[0] );
feature.setAttribute( type[1].getName(), value[1] );
...
feature.setAttribute( type[N].getName(), value[N] );
writer.write();
}
writer.close();
Subclasses may override this method to perform the appropriate optimization for this result.
modifyFeatures
in interface FeatureStore
type
- Attributes to modifyvalue
- Modifications being made to typefilter
- Identifies features to modify
java.io.IOException
FeatureStore.modifyFeatures(org.geotools.feature.AttributeType,
java.lang.Object, org.geotools.filter.Filter)
protected void modifyFeatures(AttributeType[] type, java.lang.Object[] value, FeatureWriter writer) throws DataSourceException, java.io.IOException
DataSourceException
java.io.IOException
public java.util.Set addFeatures(FeatureReader reader) throws java.io.IOException
Equivelent to:
Set set = new HashSet();
FeatureWriter writer = dataStore.getFeatureWriter( typeName, true, transaction );
Featrue feature, newFeature;
while( reader.hasNext() ){
feature = reader.next();
newFeature = writer.next();
newFeature.setAttributes( feature.getAttribtues( null ) );
writer.write();
set.add( newfeature.getID() );
}
reader.close();
writer.close();
return set;
(If you don't have a FeatureReader handy DataUtilities.reader() may be able to help out)
Subclasses may override this method to perform the appropriate optimization for this result.
addFeatures
in interface FeatureStore
reader
-
java.io.IOException
FeatureStore.addFeatures(org.geotools.data.FeatureReader)
public void removeFeatures(Filter filter) throws java.io.IOException
Equivelent to:
FeatureWriter writer = dataStore.getFeatureWriter( typeName, filter, transaction );
Feature feature;
while( writer.hasNext() ){
feature = writer.next();
writer.remove();
}
writer.close();
Subclasses may override this method to perform the appropriate optimization for this result.
removeFeatures
in interface FeatureStore
filter
- Identifies features to remove
java.io.IOException
FeatureStore.modifyFeatures(org.geotools.feature.AttributeType,
java.lang.Object, org.geotools.filter.Filter)
public void setFeatures(FeatureReader reader) throws java.io.IOException
Equivelent to:
FeatureWriter writer = dataStore.getFeatureWriter( typeName, false, transaction );
Feature feature, newFeature;
while( writer.hasNext() ){
feature = writer.next();
writer.remove();
}
while( reader.hasNext() ){
newFeature = reader.next();
feature = writer.next();
newFeature.setAttributes( feature.getAttributes( null ) );
writer.write();
}
reader.close();
writer.close();
Subclasses may override this method to perform the appropriate optimization for this result.
setFeatures
in interface FeatureStore
reader
- Contents to replace with
java.io.IOException
FeatureStore.modifyFeatures(org.geotools.feature.AttributeType,
java.lang.Object, org.geotools.filter.Filter)
public void setTransaction(Transaction transaction)
FeatureStore
This method operates as a replacement for setAutoCommitMode. When a transaction is provided you are no longer automatically committing.
In order to return to AutoCommit mode supply the Transaction.AUTO_COMMIT to this method. Since this represents a return to AutoCommit mode the previous Transaction will be commited.
setTransaction
in interface FeatureStore
transaction
- DOCUMENT ME!
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |