org.geotools.data.shapefile
Class ShapefileDataStore.Writer

java.lang.Object
  extended byorg.geotools.data.shapefile.ShapefileDataStore.Writer
All Implemented Interfaces:
FeatureWriter
Enclosing class:
ShapefileDataStore

protected class ShapefileDataStore.Writer
extends java.lang.Object
implements FeatureWriter

A FeatureWriter for ShapefileDataStore. Uses a write and annotate technique to avoid buffering attributes and geometries. Because the shapefile and dbf require header information which can only be obtained by reading the entire series of Features, the headers are updated after the initial write completes.


Field Summary
protected  ShapefileDataStore.Reader attReader
           
protected  FeatureReader featureReader
           
 
Constructor Summary
ShapefileDataStore.Writer(java.lang.String typeName)
           
 
Method Summary
protected  void clean()
          Clean up our temporary write if there was one
 void close()
          Release resources and flush the header information.
protected  void finalize()
          In case someone doesn't close me.
protected  void flush()
          Go back and update the headers with the required info.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

featureReader

protected FeatureReader featureReader

attReader

protected ShapefileDataStore.Reader attReader
Constructor Detail

ShapefileDataStore.Writer

public ShapefileDataStore.Writer(java.lang.String typeName)
                          throws java.io.IOException
Method Detail

flush

protected void flush()
              throws java.io.IOException
Go back and update the headers with the required info.

Throws:
java.io.IOException - DOCUMENT ME!

finalize

protected void finalize()
                 throws java.lang.Throwable
In case someone doesn't close me.

Throws:
java.lang.Throwable - DOCUMENT ME!

clean

protected void clean()
              throws java.io.IOException
Clean up our temporary write if there was one

Throws:
java.io.IOException - DOCUMENT ME!

close

public void close()
           throws java.io.IOException
Release resources and flush the header information.

Specified by:
close in interface FeatureWriter
Throws:
java.io.IOException - DOCUMENT ME!

getFeatureType

public FeatureType getFeatureType()
Description copied from interface: FeatureWriter
FeatureType this reader has been configured to create.

Specified by:
getFeatureType in interface FeatureWriter
Returns:
FeatureType this writer has been configured to create.

hasNext

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

Specified by:
hasNext in interface FeatureWriter
Returns:
true if an additional Feature is available.
Throws:
java.io.IOException - DOCUMENT ME!

next

public Feature next()
             throws java.io.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
Returns:
Feature from Query, or newly appended Feature
Throws:
java.io.IOException - DOCUMENT ME!

remove

public void remove()
            throws java.io.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
Throws:
java.io.IOException - DOCUMENT ME!

write

public void write()
           throws java.io.IOException
Description copied from interface: FeatureWriter
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().

Specified by:
write in interface FeatureWriter
Throws:
java.io.IOException


Copyright © GeoTools. All Rights Reserved.