Class EventContentFeatureWriter
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FeatureWriter<SimpleFeatureType,
SimpleFeature>
It is the responsibility of a FeatureStore to issue events to interested parties as content is modified. The
ContentState
keeps track of the listeners, while EventContentFeatureWriter
is willing to fire the
events as needed.
Event generation happens in two passes:
- As features are modified events are sent out one at a time
- When commit() or rollback() is called a "batch" event is sent out
BatchFeatureEvent
maintains a map of BEFORE/AFTER values allowing any interested party to
update their seleciton.
Please note that if you are using DiffFeatureWriter
it sends out events on its own.
- Author:
- Jody Garnett (LISASoft)
-
Constructor Summary
ConstructorsConstructorDescriptionEventContentFeatureWriter
(ContentFeatureStore store, FeatureWriter<SimpleFeatureType, SimpleFeature> writer) EventContentFeatureWriter construction. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Clean up resources associated with this writer.Supplys FeatureTypeFrom readerboolean
hasNext()
Query for more content.next()
Next Feature from reader or new content.void
remove()
Removes current Feature, must be called before hasNext.void
write()
Writes out the current feature.
-
Constructor Details
-
EventContentFeatureWriter
public EventContentFeatureWriter(ContentFeatureStore store, FeatureWriter<SimpleFeatureType, SimpleFeature> writer) EventContentFeatureWriter construction.
-
-
Method Details
-
getFeatureType
Supplys FeatureTypeFrom reader- Specified by:
getFeatureType
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Returns:
- FeatureType this writer has been configured to create.
- See Also:
-
next
Next Feature from reader or new content.- Specified by:
next
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Returns:
- Feature from Query, or newly appended Feature
- Throws:
IOException
- if the writer has been closed or an I/O error occurs reading the nextFeature
.- See Also:
-
remove
Description copied from interface:FeatureWriter
Removes current Feature, must be called before hasNext.FeatureWriters will need to allow all FeatureSources of the same typeName to issue a FeatureEvent event of type
FeatureEvent.FEATURES_REMOVED
when this method is called.If this FeatureWriter is opperating against a Transaction FEATURES_REMOVED events should only be sent to FeatureSources operating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
When the current Feature has been provided as new content, this method "cancels" the add opperation (and notification needed).
- Specified by:
remove
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Throws:
IOException
- See Also:
-
write
Writes out the current feature.- Specified by:
write
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Throws:
IOException
- See Also:
-
hasNext
Query for more content.- Specified by:
hasNext
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Returns:
true
if an additionalFeature
is available,false
if not.- Throws:
IOException
- if an I/O error occurs.- See Also:
-
close
Clean up resources associated with this writer.Diff is not clear()ed as it is assumed that it belongs to a Transaction.State object and may yet be written out.
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFeatureWriter<SimpleFeatureType,
SimpleFeature> - Throws:
IOException
- if there there are problems releasing underlying resources, or possibly if close has been called (up to the implementation).- See Also:
-