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
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
FieldsFields inherited from class TransformFeatureSource
FF, LOGGER, source, transformer -
Constructor Summary
ConstructorsConstructorDescriptionTransformFeatureStore(SimpleFeatureStore store, Name name, List<Definition> definitions) -
Method Summary
Modifier and TypeMethodDescriptionaddFeatures(FeatureCollection<SimpleFeatureType, SimpleFeature> collection) Adds all features from the feature collection.Gets theTransactionthat thisFeatureStoreis currently operating against.voidmodifyFeatures(String[] nameArray, Object[] attributeValues, Filter filter) voidmodifyFeatures(String name, Object attributeValue, Filter filter) voidmodifyFeatures(Name[] attributeNames, Object[] attributeValues, Filter filter) Modifies the attributes with the supplied values in all features selected by the given filter.voidmodifyFeatures(Name attributeName, Object attributeValue, Filter filter) Modifies an attribute with the supplied value in all features selected by the given filter.voidremoveFeatures(Filter filter) Removes features selected by the given filter.voidDeletes any existing features in the data source and then inserts new features provided by the given reader.voidsetTransaction(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, removeFeatureListenerMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FeatureSource
addFeatureListener, getBounds, getBounds, getCount, getDataStore, getInfo, getName, getQueryCapabilities, getSchema, getSupportedHints, removeFeatureListenerMethods inherited from interface SimpleFeatureStore
getFeatures, getFeatures, getFeatures
-
Field Details
-
store
-
invertedTransformer
protected Transformer invertedTransformer
-
-
Constructor Details
-
TransformFeatureStore
public TransformFeatureStore(SimpleFeatureStore store, Name name, List<Definition> definitions) throws IOException - Throws:
IOException
-
-
Method Details
-
setTransaction
Description copied from interface:FeatureStoreProvide 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:
setTransactionin interfaceFeatureStore<SimpleFeatureType,SimpleFeature> - Parameters:
transaction- the transaction
-
getTransaction
Description copied from interface:FeatureStoreGets theTransactionthat thisFeatureStoreis 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:
getTransactionin interfaceFeatureStore<SimpleFeatureType,SimpleFeature> - Returns:
- Transaction in use, or Transaction.AUTO_COMMIT
-
removeFeatures
Description copied from interface:FeatureStoreRemoves features selected by the given filter.- Specified by:
removeFeaturesin 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 IOExceptionDescription copied from interface:FeatureStoreAdds all features from the feature collection.A list of
FeatureIdsis returned, one for each feature in the order created. However, these might not be assigned until after a commit has been performed.- Specified by:
addFeaturesin interfaceFeatureStore<SimpleFeatureType,SimpleFeature> - Parameters:
collection- the collection of features to add- Returns:
- the
FeatureIdsof the newly added features - Throws:
IOException- if an error occurs modifying the data source
-
setFeatures
Description copied from interface:FeatureStoreDeletes 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:
setFeaturesin 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:FeatureStoreModifies the attributes with the supplied values in all features selected by the given filter.- Specified by:
modifyFeaturesin 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:FeatureStoreModifies an attribute with the supplied value in all features selected by the given filter.- Specified by:
modifyFeaturesin 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
- Specified by:
modifyFeaturesin interfaceSimpleFeatureStore- Throws:
IOException
-
modifyFeatures
public void modifyFeatures(String[] nameArray, Object[] attributeValues, Filter filter) throws IOException - Specified by:
modifyFeaturesin interfaceSimpleFeatureStore- Throws:
IOException
-