Class MemoryFeatureWriter

    • 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 whether this FeatureWriter has another Feature.
      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.
      • Methods inherited from class Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MemoryFeatureWriter

        public MemoryFeatureWriter​(MemoryState state,
                                   Query query)
                            throws IOException
        Throws:
        IOException
    • Method Detail

      • next

        public SimpleFeature next()
                           throws IOException,
                                  NoSuchElementException
        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.
        NoSuchElementException
      • 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
        Description copied from interface: FeatureWriter
        Query whether this FeatureWriter has another Feature.

        Please note: it is more efficient to construct your FeatureWriter with a Filer (to skip entries you do not want), than to force the creation of entire Features only to skip over them.

        FeatureWriters that support append operations will allow calls to next, even when hasNext() returns false.

        Specified by:
        hasNext in interface FeatureWriter<SimpleFeatureType,​SimpleFeature>
        Returns:
        true if an additional Feature is available, false if not.
        Throws:
        IOException - if an I/O error occurs.