Class FilteringFeatureWriter
- Object
-
- FilteringFeatureWriter
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FeatureWriter<SimpleFeatureType,SimpleFeature>
public class FilteringFeatureWriter extends Object implements FeatureWriter<SimpleFeatureType,SimpleFeature>
Filtering is performed on this hasNext() method.This implementation writes out content furing the hasNext() method. This allows the implementation to "peek" ahead.
This FeatureWriter does not support the addition of new content.
- Author:
- Jody Garnett, Refractions Research
-
-
Constructor Summary
Constructors Constructor Description FilteringFeatureWriter(FeatureWriter<SimpleFeatureType,SimpleFeature> writer, Filter filter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Release the underlying resources.SimpleFeatureType
getFeatureType()
FeatureType this reader has been configured to create.boolean
hasNext()
Query if we have more content.SimpleFeature
next()
Reads a Feature from the underlying AttributeReader.void
remove()
Removes current Feature, must be called before hasNext.void
write()
Writes the current Feature, must be called before hasNext.
-
-
-
Constructor Detail
-
FilteringFeatureWriter
public FilteringFeatureWriter(FeatureWriter<SimpleFeatureType,SimpleFeature> writer, Filter filter)
-
-
Method Detail
-
getFeatureType
public SimpleFeatureType getFeatureType()
Description copied from interface:FeatureWriter
FeatureType this reader has been configured to create.- Specified by:
getFeatureType
in interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>
- Returns:
- FeatureType this writer has been configured to create.
-
next
public SimpleFeature next() throws IOException
Description copied from interface:FeatureWriter
Reads a Feature from the underlying AttributeReader.This method may return a Feature even though hasNext() returns
false
, this allows FeatureWriters to provide an ability to append 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
.
-
remove
public void remove() throws IOException
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
-
write
public void write() throws IOException
Description copied from interface:FeatureWriter
Writes the current Feature, must be called before hasNext.FeautreWriters will need to allow FeatureSources of the same typeName to issue a FeatureEvent:
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
false
. - FeatureEvent.FEATURES_MODIFIED: when next has been called with hasNext() equal to
true
and the resulting Feature has indeed been modified.
If this FeatureWriter is opperating against a Transaction the FEATURES_MODIFIED or FEATURES_ADDED events should only be sent to FeatureSources opperating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
If you have not called write() when you call hasNext() or next(), no modification will occur().
- Specified by:
write
in interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>
- Throws:
IOException
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
-
hasNext
public boolean hasNext() throws IOException
Query if we have more content.- Specified by:
hasNext
in interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>
- Returns:
- true if writer has additional content
- Throws:
IOException
- If writer we are filtering encounters a problem
-
close
public void close() throws IOException
Description copied from interface:FeatureWriter
Release the underlying resources.- 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).
-
-