org.geotools.data
Interface FeatureStore<T extends FeatureType,F extends Feature>

All Superinterfaces:
FeatureSource<T,F>
All Known Subinterfaces:
FeatureLocking<T,F>
All Known Implementing Classes:
AbstractFeatureLocking, AbstractFeatureStore, ArcSdeFeatureStore, ContentFeatureStore, DB2FeatureLocking, DB2FeatureStore, DirectoryFeatureLocking, DirectoryFeatureStore, JDBCFeatureLocking, JDBCFeatureStore, JDBCFeatureStore, PostgisFeatureLocking, PostgisFeatureStore, PropertyFeatureSource, ShapefileFeatureLocking, ShapefileFeatureStore, WFSFeatureStore

public interface FeatureStore<T extends FeatureType,F extends Feature>
extends FeatureSource<T,F>

Provides storage of data for Features.

Individual shapefiles, database tables, etc. are modified through this interface.

This is a prototype DataSource replacement please see FeatureSource for more information.

Author:
Jody Garnett, Ray Gallagher, Rob Hranac, TOPP, Chris Holmes, TOPP
Module:
modules/library/api (gt-api.jar)

Method Summary
 List<FeatureId> addFeatures(FeatureCollection<T,F> collection)
          Adds all features from the passed feature collection to the datasource.
 Transaction getTransaction()
          Used to access the Transaction this DataSource is currently opperating against.
 void modifyFeatures(AttributeDescriptor[] type, Object[] value, Filter filter)
          Modifies the passed attribute types with the passed objects in all features that correspond to the passed OGS filter.
 void modifyFeatures(AttributeDescriptor type, Object value, Filter filter)
          Modifies the passed attribute types with the passed objects in all features that correspond to the passed OGS filter.
 void removeFeatures(Filter filter)
          Removes all of the features specificed by the passed filter from the collection.
 void setFeatures(FeatureReader<T,F> reader)
          Deletes the all the current Features of this datasource and adds the new collection.
 void setTransaction(Transaction transaction)
          Provides a transaction for commit/rollback control of this FeatureStore.
 
Methods inherited from interface FeatureSource
addFeatureListener, getBounds, getBounds, getCount, getDataStore, getFeatures, getFeatures, getFeatures, getInfo, getName, getQueryCapabilities, getSchema, getSupportedHints, removeFeatureListener
 

Method Detail

addFeatures

List<FeatureId> addFeatures(FeatureCollection<T,F> collection)
                            throws IOException
Adds all features from the passed feature collection to the datasource.

A list of FeatureIds is returned; one for each Feature in the order created. Please note that these FeatureIds may not be assigned until after a commit has been performed.

Parameters:
collection - The collection of features to add.
Returns:
the FeatureIds of the newly added features.
Throws:
IOException - if anything goes wrong.

removeFeatures

void removeFeatures(Filter filter)
                    throws IOException
Removes all of the features specificed by the passed filter from the collection.

Parameters:
filter - An OpenGIS filter; specifies which features to remove.
Throws:
IOException - If anything goes wrong.

modifyFeatures

void modifyFeatures(AttributeDescriptor[] type,
                    Object[] value,
                    Filter filter)
                    throws IOException
Modifies the passed attribute types with the passed objects in all features that correspond to the passed OGS filter.

Parameters:
type - The attributes to modify.
value - The values to put in the attribute types.
filter - An OGC filter to note which attributes to modify.
Throws:
IOException - if the attribute and object arrays are not eqaul length, if the object types do not match the attribute types, or if there are backend errors.

modifyFeatures

void modifyFeatures(AttributeDescriptor type,
                    Object value,
                    Filter filter)
                    throws IOException
Modifies the passed attribute types with the passed objects in all features that correspond to the passed OGS filter. A convenience method for single attribute modifications.

Parameters:
type - The attributes to modify.
value - The values to put in the attribute types.
filter - An OGC filter to note which attributes to modify.
Throws:
IOException - If modificaton is not supported, if the object type do not match the attribute type.

setFeatures

void setFeatures(FeatureReader<T,F> reader)
                 throws IOException
Deletes the all the current Features of this datasource and adds the new collection. Primarily used as a convenience method for file datasources.

Parameters:
reader - - the collection to be written
Throws:
IOException - if there are any datasource errors.

setTransaction

void setTransaction(Transaction transaction)
Provides a transaction for commit/rollback control of this 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.

Parameters:
transaction - DOCUMENT ME!

getTransaction

Transaction getTransaction()
Used to access the Transaction this DataSource is currently opperating against.

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();
 }
 

Returns:
Transaction in use, or Transaction.AUTO_COMMIT


Copyright © 1996-2009 Geotools. All Rights Reserved.