org.geotools.data
Interface FeatureWriter

All Known Implementing Classes:
DiffFeatureWriter, EmptyFeatureWriter, FilteringFeatureWriter, IndexedShapefileDataStore.Writer, JDBCFeatureWriter, PropertyFeatureWriter, ShapefileDataStore.Writer

public interface FeatureWriter

Provides the ability to write Features information.

Capabilities:

One thing that is really nice about the approach to adding content is that the generation of FID is not left in the users control.

Version:
$Id: FeatureWriter.java 17702 2006-01-23 00:08:55Z desruisseaux $
Author:
Ian Schneider, Jody Garnett, Refractions Research

Method Summary
 void close()
          Release the underlying resources.
 FeatureType getFeatureType()
          FeatureType this reader has been configured to create.
 boolean hasNext()
          Query whether this FeatureWriter has another Feature.
 Feature next()
          Reads a Feature from the underlying AttributeReader.
 void remove()
          Removes current Feature, must be called before hasNext.
 void write()
          Wrties the current Feature, must be called before hasNext.
 

Method Detail

getFeatureType

public FeatureType getFeatureType()
FeatureType this reader has been configured to create.

Returns:
FeatureType this writer has been configured to create.

next

public Feature next()
             throws java.io.IOException
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.

Returns:
Feature from Query, or newly appended Feature
Throws:
java.io.IOException - DOCUMENT ME!

remove

public void remove()
            throws java.io.IOException
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).

Throws:
java.io.IOException - DOCUMENT ME!

write

public void write()
           throws java.io.IOException
Wrties the current Feature, must be called before hasNext.

FeautreWriters will need to allow FeatureSources of the same typeName to issue a FeatureEvent:

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().

Throws:
java.io.IOException

hasNext

public boolean hasNext()
                throws java.io.IOException
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 opperations will allow calls to next, even when haveNext() returns false.

Returns:
true if an additional Feature is available.
Throws:
java.io.IOException - DOCUMENT ME!

close

public void close()
           throws java.io.IOException
Release the underlying resources.

Throws:
java.io.IOException - if there there are problems releasing underlying resources, or possibly if close has been called (up to the implementation).


Copyright © GeoTools. All Rights Reserved.