|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.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(JDBCDataStore 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(JDBCDataStore jdbcDataStore,
FeatureType featureType)
| Method Detail |
public Transaction getTransaction()
FeatureStoreExample 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 FeatureStoregetTransaction in class JDBCFeatureSourceprotected 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 FeatureStoretype - Attribute to modifyvalue - Modification being made to typefilter - Identifies features to modify
java.io.IOExceptionFeatureStore.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 FeatureStoretype - Attributes to modifyvalue - Modifications being made to typefilter - Identifies features to modify
java.io.IOExceptionFeatureStore.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 FeatureStorereader -
java.io.IOExceptionFeatureStore.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 FeatureStorefilter - Identifies features to remove
java.io.IOExceptionFeatureStore.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 FeatureStorereader - Contents to replace with
java.io.IOExceptionFeatureStore.modifyFeatures(org.geotools.feature.AttributeType,
java.lang.Object, org.geotools.filter.Filter)public void setTransaction(Transaction transaction)
FeatureStoreThis 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
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||