Package org.geotools.data.transform
Class TransformFeatureStore
- Object
-
- TransformFeatureSource
-
- TransformFeatureStore
-
- All Implemented Interfaces:
FeatureSource<SimpleFeatureType,SimpleFeature>
,FeatureStore<SimpleFeatureType,SimpleFeature>
,SimpleFeatureSource
,SimpleFeatureStore
- Direct Known Subclasses:
OracleTransformFeatureStore
,PostgisTransformFeatureStore
,SQLServerTransformFeatureStore
,TransformFeatureLocking
public class TransformFeatureStore extends TransformFeatureSource implements SimpleFeatureStore
A transforming feature store, will transform on the fly all attempts to write so that the underlying features are getting modified while exposing a different feature type to its callers.- Author:
- Andrea Aime - GeoSolutions
-
-
Field Summary
Fields Modifier and Type Field Description protected Transformer
invertedTransformer
protected SimpleFeatureStore
store
-
Fields inherited from class TransformFeatureSource
FF, LOGGER, source, transformer
-
-
Constructor Summary
Constructors Constructor Description TransformFeatureStore(SimpleFeatureStore store, Name name, List<Definition> definitions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<FeatureId>
addFeatures(FeatureCollection<SimpleFeatureType,SimpleFeature> collection)
Adds all features from the feature collection.Transaction
getTransaction()
Gets theTransaction
that thisFeatureStore
is currently operating against.void
modifyFeatures(String[] nameArray, Object[] attributeValues, Filter filter)
void
modifyFeatures(String name, Object attributeValue, Filter filter)
void
modifyFeatures(Name[] attributeNames, Object[] attributeValues, Filter filter)
Modifies the attributes with the supplied values in all features selected by the given filter.void
modifyFeatures(Name attributeName, Object attributeValue, Filter filter)
Modifies an attribute with the supplied value in all features selected by the given filter.void
removeFeatures(Filter filter)
Removes features selected by the given filter.void
setFeatures(FeatureReader<SimpleFeatureType,SimpleFeature> reader)
Deletes any existing features in the data source and then inserts new features provided by the given reader.void
setTransaction(Transaction transaction)
Provide a transaction for commit/rollback control of a modifying operation on thisFeatureStore
.-
Methods inherited from class TransformFeatureSource
addFeatureListener, getBounds, getBounds, getCount, getDataStore, getFeatures, getFeatures, getFeatures, getInfo, getName, getQueryCapabilities, getSchema, getSupportedHints, removeFeatureListener
-
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface FeatureSource
addFeatureListener, getBounds, getBounds, getCount, getDataStore, getInfo, getName, getQueryCapabilities, getSchema, getSupportedHints, removeFeatureListener
-
Methods inherited from interface SimpleFeatureStore
getFeatures, getFeatures, getFeatures
-
-
-
-
Field Detail
-
store
protected SimpleFeatureStore store
-
invertedTransformer
protected Transformer invertedTransformer
-
-
Constructor Detail
-
TransformFeatureStore
public TransformFeatureStore(SimpleFeatureStore store, Name name, List<Definition> definitions) throws IOException
- Throws:
IOException
-
-
Method Detail
-
setTransaction
public void setTransaction(Transaction transaction)
Description copied from interface:FeatureStore
Provide a transaction for commit/rollback control of a modifying operation on thisFeatureStore
.Transaction t = new DefaultTransaction(); featureStore.setTransaction(t); try { featureStore.addFeatures( someFeatures ); t.commit(); } catch ( IOException ex ) { // something went wrong; java.util.logging.Logger.getGlobal().log(java.util.logging.Level.INFO, "", ex); t.rollback(); } finally { t.close(); }
- Specified by:
setTransaction
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
transaction
- the transaction
-
getTransaction
public Transaction getTransaction()
Description copied from interface:FeatureStore
Gets theTransaction
that thisFeatureStore
is currently operating against.Transaction t = featureStore.getTransaction(); try { featureStore.addFeatures( features ); t.commit(); } catch( IOException erp ){ // something went wrong; java.util.logging.Logger.getGlobal().log(java.util.logging.Level.INFO, "", ex); t.rollback(); }
- Specified by:
getTransaction
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Returns:
- Transaction in use, or Transaction.AUTO_COMMIT
-
removeFeatures
public void removeFeatures(Filter filter) throws IOException
Description copied from interface:FeatureStore
Removes features selected by the given filter.- Specified by:
removeFeatures
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
filter
- an OpenGIS filter- Throws:
IOException
- if an error occurs modifying the data source
-
addFeatures
public List<FeatureId> addFeatures(FeatureCollection<SimpleFeatureType,SimpleFeature> collection) throws IOException
Description copied from interface:FeatureStore
Adds all features from the feature collection.A list of
FeatureIds
is returned, one for each feature in the order created. However, these might not be assigned until after a commit has been performed.- Specified by:
addFeatures
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
collection
- the collection of features to add- Returns:
- the
FeatureIds
of the newly added features - Throws:
IOException
- if an error occurs modifying the data source
-
setFeatures
public void setFeatures(FeatureReader<SimpleFeatureType,SimpleFeature> reader) throws IOException
Description copied from interface:FeatureStore
Deletes any existing features in the data source and then inserts new features provided by the given reader. This is primarily used as a convenience method for file-based data sources.- Specified by:
setFeatures
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
reader
- - the collection to be written- Throws:
IOException
- if there are any datasource errors.
-
modifyFeatures
public void modifyFeatures(Name[] attributeNames, Object[] attributeValues, Filter filter) throws IOException
Description copied from interface:FeatureStore
Modifies the attributes with the supplied values in all features selected by the given filter.- Specified by:
modifyFeatures
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
attributeNames
- the attributes to modifyattributeValues
- the new values for the attributesfilter
- an OpenGIS filter- Throws:
IOException
- if the attribute and object arrays are not equal in length; if the value types do not match the attribute types; if modification is not supported; or if there errors accessing the data source
-
modifyFeatures
public void modifyFeatures(Name attributeName, Object attributeValue, Filter filter) throws IOException
Description copied from interface:FeatureStore
Modifies an attribute with the supplied value in all features selected by the given filter.- Specified by:
modifyFeatures
in interfaceFeatureStore<SimpleFeatureType,SimpleFeature>
- Parameters:
attributeName
- the attribute to modifyattributeValue
- the new value for the attributefilter
- an OpenGIS filter- Throws:
IOException
- if modification is not supported; if the value type does not match the attribute type; or if there errors accessing the data source
-
modifyFeatures
public void modifyFeatures(String name, Object attributeValue, Filter filter) throws IOException
- Specified by:
modifyFeatures
in interfaceSimpleFeatureStore
- Throws:
IOException
-
modifyFeatures
public void modifyFeatures(String[] nameArray, Object[] attributeValues, Filter filter) throws IOException
- Specified by:
modifyFeatures
in interfaceSimpleFeatureStore
- Throws:
IOException
-
-