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 Details

  • Method Details

    • getFeatureType

      public SimpleFeatureType getFeatureType()
      Description copied from interface: FeatureWriter
      FeatureType this reader has been configured to create.
      Specified by:
      getFeatureType in interface FeatureWriter<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 interface FeatureWriter<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 next Feature.
    • 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 interface FeatureWriter<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 interface FeatureWriter<SimpleFeatureType,SimpleFeature>
      Throws:
      IOException
    • hasNext

      public boolean hasNext() throws IOException
      Query if we have more content.
      Specified by:
      hasNext in interface FeatureWriter<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 interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
      Throws:
      IOException - if there there are problems releasing underlying resources, or possibly if close has been called (up to the implementation).