Interface DataStore
-
- All Superinterfaces:
DataAccess<SimpleFeatureType,SimpleFeature>
- All Known Subinterfaces:
FileDataStore
- All Known Implementing Classes:
ContentDataStore
,CSVDataStore
,DataStoreWrapper
,DecoratingDataStore
,DirectoryDataStore
,GeoJSONDataStore
,JDBCDataStore
,MBTilesDataStore
,MemoryDataStore
,MongoDataStore
,OGRDataStore
,OracleDatastoreWrapper
,PostgisDatastoreWrapper
,PreGeneralizedDataStore
,PropertyDataStore
,ShapefileDataStore
,SingleFeatureSourceDataStore
,SQLServerDatastoreWrapper
,STACDataStore
,VectorMosaicStore
,VPFFileStore
,VPFLibrary
,WFSDataStore
public interface DataStore extends DataAccess<SimpleFeatureType,SimpleFeature>
This represents a physical source of feature data, such as a shapefiles or database, where the features will be instances ofSimpleFeature
. It is derived from theDataAccess
interface (which works at the more generalFeature
level).- Author:
- Jody Garnett, Refractions Research
- See Also:
DataAccess
,Feature
,SimpleFeature
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description FeatureReader<SimpleFeatureType,SimpleFeature>
getFeatureReader(Query query, Transaction transaction)
Gets aFeatureReader
for features selected by the givenQuery
.SimpleFeatureSource
getFeatureSource(String typeName)
Gets aSimpleFeatureSource
for features of the specified type.SimpleFeatureSource
getFeatureSource(Name typeName)
Gets aSimpleFeatureSource
for features of the type specified by a qualified name (namespace plus type name).FeatureWriter<SimpleFeatureType,SimpleFeature>
getFeatureWriter(String typeName, Transaction transaction)
Gets aFeatureWriter
to modify features in thisDataStore
.FeatureWriter<SimpleFeatureType,SimpleFeature>
getFeatureWriter(String typeName, Filter filter, Transaction transaction)
Gets aFeatureWriter
to modify features in thisDataStore
.FeatureWriter<SimpleFeatureType,SimpleFeature>
getFeatureWriterAppend(String typeName, Transaction transaction)
Gets aFeatureWriter
that can add new features to theDataStore
.LockingManager
getLockingManager()
Retrieve a per featureID based locking service from thisDataStore
.SimpleFeatureType
getSchema(String typeName)
Gets the type information (schema) for the specified feature type.String[]
getTypeNames()
Gets the names of feature types available in thisDataStore
.void
removeSchema(String typeName)
Used to permanently remove a schema from the underlying storagevoid
updateSchema(String typeName, SimpleFeatureType featureType)
Applies a new schema to the given feature type.-
Methods inherited from interface DataAccess
createSchema, dispose, getInfo, getNames, getSchema, removeSchema, updateSchema
-
-
-
-
Method Detail
-
updateSchema
void updateSchema(String typeName, SimpleFeatureType featureType) throws IOException
Applies a new schema to the given feature type. This can be used to add or remove properties. The resulting update will be persistent.- Parameters:
typeName
- name of the feature type to updatefeatureType
- the new schema to apply- Throws:
IOException
- on error
-
removeSchema
void removeSchema(String typeName) throws IOException
Used to permanently remove a schema from the underlying storageThis functionality is similar to an "drop table" statement in SQL. Implementation is optional; it may not be supported by all servers or files.
- Throws:
IOException
- if the operation failedUnsupportedOperation
- if functionality is not available
-
getTypeNames
String[] getTypeNames() throws IOException
Gets the names of feature types available in thisDataStore
. Please note that this is not guaranteed to return a list of unique names since the same unqualified name may be present in separate namespaces within theDataStore
.- Returns:
- names of feature types available in this
DataStore
- Throws:
IOException
- if data access errors occur
-
getSchema
SimpleFeatureType getSchema(String typeName) throws IOException
Gets the type information (schema) for the specified feature type.- Parameters:
typeName
- the feature type name- Returns:
- the requested feature type
- Throws:
IOException
- iftypeName
is not available
-
getFeatureSource
SimpleFeatureSource getFeatureSource(String typeName) throws IOException
Gets aSimpleFeatureSource
for features of the specified type.SimpleFeatureSource
provides a high-level API for feature operations.The resulting
SimpleFeatureSource
may implment more functionality as in this example:SimpleFeatureSource fsource = dataStore.getFeatureSource("roads"); if (fsource instanceof SimpleFeatureStore) { // we have write access to the feature data SimpleFeatureStore fstore = (SimpleFeatureStore) fs; } else { // System.out.println("We do not have write access to roads"); }
- Parameters:
typeName
- the feature type- Returns:
- a
SimpleFeatureSource
(or possibly a subclass) providing operations for features of the specified type - Throws:
IOException
- if data access errors occur- See Also:
SimpleFeatureSource
,SimpleFeatureStore
-
getFeatureSource
SimpleFeatureSource getFeatureSource(Name typeName) throws IOException
Gets aSimpleFeatureSource
for features of the type specified by a qualified name (namespace plus type name).- Specified by:
getFeatureSource
in interfaceDataAccess<SimpleFeatureType,SimpleFeature>
- Parameters:
typeName
- the qualified name of the feature type- Returns:
- a
SimpleFeatureSource
(or possibly a subclass) providing operations for features of the specified type - Throws:
IOException
- if data access errors occur- See Also:
getFeatureSource(String)
,SimpleFeatureSource
,SimpleFeatureStore
-
getFeatureReader
FeatureReader<SimpleFeatureType,SimpleFeature> getFeatureReader(Query query, Transaction transaction) throws IOException
Gets aFeatureReader
for features selected by the givenQuery
.FeatureReader
provies an iterator-style API to feature data.The
Query
provides the schema for the form of the returned features as well as aFilter
to constrain the features available via the reader.The
Transaction
can be used to externalize the state of theDataStore
. Examples of this include aJDBCDataStore
sharing a connection for use across severalFeatureReader
requests; and aShapefileDataStore
redirecting requests to an alternate file during the course of aTransaction
.- Parameters:
query
- a query providing the schema and constraints for features that the reader will returntransaction
- a transaction that this reader will operate against- Returns:
- an instance of
FeatureReader
- Throws:
IOException
- if data access errors occur
-
getFeatureWriter
FeatureWriter<SimpleFeatureType,SimpleFeature> getFeatureWriter(String typeName, Filter filter, Transaction transaction) throws IOException
Gets aFeatureWriter
to modify features in thisDataStore
.FeatureWriter
provides an iterator style API to features.The returned writer does not allow features to be added.
- Parameters:
typeName
- the type name for features that will be accessiblefilter
- defines additional constraints on the features that will be accessibletransaction
- the transaction that the returned writer operates against- Returns:
- an instance of
FeatureWriter
- Throws:
IOException
- if data access errors occur- See Also:
getFeatureWriterAppend(String, Transaction)
-
getFeatureWriter
FeatureWriter<SimpleFeatureType,SimpleFeature> getFeatureWriter(String typeName, Transaction transaction) throws IOException
Gets aFeatureWriter
to modify features in thisDataStore
.FeatureWriter
provides an iterator style API to features.The returned writer does not allow features to be added.
- Parameters:
typeName
- the type name for features that will be accessibletransaction
- the transaction that the returned writer operates against- Returns:
- an instance of
FeatureWriter
- Throws:
IOException
- if data access errors occur- See Also:
getFeatureWriterAppend(String, Transaction)
-
getFeatureWriterAppend
FeatureWriter<SimpleFeatureType,SimpleFeature> getFeatureWriterAppend(String typeName, Transaction transaction) throws IOException
Gets aFeatureWriter
that can add new features to theDataStore
.The
FeatureWriter
will returnfalse
when itshasNext()
method is called, butnext()
can be used to acquire new features.- Parameters:
typeName
- name of the feature type for which features will be addedtransaction
- the transaction to operate against- Returns:
- an instance of
FeatureWriter
that can only be used to append new features - Throws:
IOException
- if data access errors occur
-
getLockingManager
LockingManager getLockingManager()
Retrieve a per featureID based locking service from thisDataStore
.- Returns:
- an instance of
LockingManager
; ornull
if locking is handled by theDataStore
in a different fashion
-
-