Class CSVFeatureStore
- All Implemented Interfaces:
FeatureLocking<SimpleFeatureType,
,SimpleFeature> FeatureSource<SimpleFeatureType,
,SimpleFeature> FeatureStore<SimpleFeatureType,
,SimpleFeature> SimpleFeatureLocking
,SimpleFeatureSource
,SimpleFeatureStore
- Author:
- Jody Garnett (GeoCat), Ian Turton (Astun)
-
Nested Class Summary
Nested classes/interfaces inherited from interface FeatureLocking
FeatureLocking.Response
-
Field Summary
Fields inherited from class ContentFeatureStore
ORIGINAL_FEATURE_KEY, WRITER_ADD, WRITER_COMMIT, WRITER_UPDATE
Fields inherited from class ContentFeatureSource
entry, hints, lock, query, queryCapabilities, schema, transaction
-
Constructor Summary
ConstructorsConstructorDescriptionCSVFeatureStore
(CSVStrategy csvStrategy, CSVFileState csvFileState, ContentEntry entry, Query query) -
Method Summary
Modifier and TypeMethodDescriptionprotected SimpleFeatureType
Creates the feature type or schema for the feature source.protected ReferencedEnvelope
getBoundsInternal
(Query query) Calculates the bounds of a specified query.protected int
getCountInternal
(Query query) Calculates the number of features of a specified query.The datastore that this feature source originated from.getEntry()
The entry for the feature source.getInfo()
A default ResourceInfo with a generic description.getName()
Returns the same name than the feature type (ie,getSchema().getName()
to honor the simple feature land common practice of calling the same both the Features produces and their typesSimpleFeatureCollection optimized for read-only access.protected FeatureReader<SimpleFeatureType,
SimpleFeature> getReaderInternal
(Query query) Subclass method for returning a native reader from the datastore.getState()
The current state for the feature source.The current transaction the feature source is working against.protected FeatureWriter<SimpleFeatureType,
SimpleFeature> getWriterInternal
(Query query, int flags) Subclass method for returning a native writer from the datastore.void
setTransaction
(Transaction transaction) Sets the current transaction the feature source is working against.Methods inherited from class ContentFeatureStore
addFeatures, addFeatures, getWriter, getWriter, getWriter, getWriter, modifyFeatures, modifyFeatures, modifyFeatures, modifyFeatures, modifyFeatures, modifyFeatures, removeFeatures, setFeatures
Methods inherited from class ContentFeatureSource
accepts, addFeatureListener, addHints, buildQueryCapabilities, canEvent, canFilter, canFilter, canLimit, canLimit, canLock, canOffset, canOffset, canReproject, canRetype, canRetype, canSort, canSort, canTransact, doLockInternal, doUnlockInternal, getAbsoluteSchema, getBounds, getBounds, getCount, getFeatures, getFeatures, getFeatures, getReader, getReader, getReader, getSchema, getSupportedHints, getView, getView, handleVisitor, isView, joinQuery, lockFeatures, lockFeatures, lockFeatures, processLock, removeFeatureListener, resolvePropertyNames, resolvePropertyNames, setFeatureLock, unLockFeatures, unLockFeatures, unLockFeatures
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface FeatureLocking
lockFeatures, lockFeatures, lockFeatures, setFeatureLock, unLockFeatures, unLockFeatures, unLockFeatures
Methods inherited from interface FeatureSource
addFeatureListener, getBounds, getBounds, getCount, getSchema, getSupportedHints, removeFeatureListener
Methods inherited from interface SimpleFeatureStore
getFeatures, getFeatures, getFeatures
-
Constructor Details
-
CSVFeatureStore
public CSVFeatureStore(CSVStrategy csvStrategy, CSVFileState csvFileState, ContentEntry entry, Query query)
-
-
Method Details
-
getWriterInternal
protected FeatureWriter<SimpleFeatureType,SimpleFeature> getWriterInternal(Query query, int flags) throws IOException Description copied from class:ContentFeatureStore
Subclass method for returning a native writer from the datastore.It is important to note that if the native writer intends to handle any of the following natively:
- reprojection
- filtering
- events
- max feature limiting
- sorting
- locking
true
:- Specified by:
getWriterInternal
in classContentFeatureStore
- Parameters:
query
- Queryflags
- SeeContentFeatureStore.WRITER_ADD
andContentFeatureStore.WRITER_UPDATE
- Throws:
IOException
-
setTransaction
Description copied from class:ContentFeatureSource
Sets the current transaction the feature source is working against.transaction may be
null
. This signifies that the auto-commit transaction is used:Transaction.AUTO_COMMIT
.- Specified by:
setTransaction
in interfaceFeatureStore<SimpleFeatureType,
SimpleFeature> - Overrides:
setTransaction
in classContentFeatureSource
- Parameters:
transaction
- The new transaction, ornull
.
-
buildFeatureType
Description copied from class:ContentFeatureSource
Creates the feature type or schema for the feature source.Implementations should use
SimpleFeatureTypeBuilder
to build the feature type. Also, the builder should be injected with the feature factory which has been set on the DataStore (seeContentDataStore.getFeatureFactory()
. Example:SimpleFeatureTypeBuilder b = new SimpleFeatureTypeBuilder(); b.setFeatureTypeFactory( getDataStore().getFeatureTypeFactory() ); //build the feature type ...
- Specified by:
buildFeatureType
in classContentFeatureSource
- Throws:
IOException
-
getBoundsInternal
Description copied from class:ContentFeatureSource
Calculates the bounds of a specified query. Subclasses must implement this method. If the computation is not fast, subclasses can returnnull
.- Specified by:
getBoundsInternal
in classContentFeatureSource
- Throws:
IOException
-
getCountInternal
Description copied from class:ContentFeatureSource
Calculates the number of features of a specified query. Subclasses must implement this method. If the computation is not fast, it's possible to return -1.- Specified by:
getCountInternal
in classContentFeatureSource
- Throws:
IOException
-
getReaderInternal
protected FeatureReader<SimpleFeatureType,SimpleFeature> getReaderInternal(Query query) throws IOException Description copied from class:ContentFeatureSource
Subclass method for returning a native reader from the datastore.It is important to note that if the native reader intends to handle any of the following natively:
- reprojection
- filtering
- max feature limiting
- sorting
- locking
- transactions
true
:ContentFeatureSource.canReproject()
- handlesQuery.getCoordinateSystemReproject()
internally. Example would be PostGIS using Proj to handle reproejction internallyContentFeatureSource.canFilter(Query)
- handlesinternally.</li> <li>{@link #canLimit(Query)} - handles {@link Query#getMaxFeatures()} and {@link Query#getStartIndex()} internally.</li> <li>{@link #canSort(Query)} - handles {@link Query#getSortBy()} natively.</li> <li>{@link #canRetype(Query)} - handles {@link Query#getProperties()} natively. Example would be only parsing the properties the user asks for from an XML file</li> <li>{@link #canLock()} - handles read-locks natively</li> <li>{@link #canTransact()} - handles transactions natively</li> </ul> </p>
- Specified by:
getReaderInternal
in classContentFeatureSource
- Throws:
IOException
-
getDataStore
Description copied from class:ContentFeatureSource
The datastore that this feature source originated from.Subclasses may wish to extend this method in order to type narrow its return type.
- Specified by:
getDataStore
in interfaceFeatureSource<SimpleFeatureType,
SimpleFeature> - Overrides:
getDataStore
in classContentFeatureSource
- Returns:
- the data source providing this
FeatureSource
-
getEntry
Description copied from class:ContentFeatureSource
The entry for the feature source.- Overrides:
getEntry
in classContentFeatureSource
-
getTransaction
Description copied from class:ContentFeatureSource
The current transaction the feature source is working against.This transaction is used to derive the state for the feature source. A
null
value for a transaction represents the auto commit transaction:Transaction.AUTO_COMMIT
.- Specified by:
getTransaction
in interfaceFeatureStore<SimpleFeatureType,
SimpleFeature> - Overrides:
getTransaction
in classContentFeatureSource
- Returns:
- Transaction in use, or Transaction.AUTO_COMMIT
-
getState
Description copied from class:ContentFeatureSource
The current state for the feature source.This value is derived from current transaction of the feature source.
- Overrides:
getState
in classContentFeatureSource
-
getInfo
Description copied from class:ContentFeatureSource
A default ResourceInfo with a generic description.Subclasses should override to provide an explicit ResourceInfo object for their content.
- Specified by:
getInfo
in interfaceFeatureSource<SimpleFeatureType,
SimpleFeature> - Overrides:
getInfo
in classContentFeatureSource
- Returns:
- description of features contents
-
getName
Description copied from class:ContentFeatureSource
Returns the same name than the feature type (ie,getSchema().getName()
to honor the simple feature land common practice of calling the same both the Features produces and their types- Specified by:
getName
in interfaceFeatureSource<SimpleFeatureType,
SimpleFeature> - Overrides:
getName
in classContentFeatureSource
- Returns:
- the name of the features accessible through this
FeatureSource
- See Also:
-
getQueryCapabilities
Description copied from class:ContentFeatureSource
SimpleFeatureCollection optimized for read-only access.Available via getView( filter ):
- getFeatures().sort( sort )
- getFeatures( filter ).sort( sort )
In particular this method of data access is intended for rendering and other high speed operations; care should be taken to optimize the use of FeatureVisitor.
- Specified by:
getQueryCapabilities
in interfaceFeatureSource<SimpleFeatureType,
SimpleFeature> - Overrides:
getQueryCapabilities
in classContentFeatureSource
- Returns:
- readonly access
-