org.geotools.data.jdbc
Class JDBCDataStore.JDBCFeatureWriter

java.lang.Object
  extended byorg.geotools.data.jdbc.JDBCDataStore.JDBCFeatureWriter
All Implemented Interfaces:
FeatureWriter
Enclosing class:
JDBCDataStore

protected class JDBCDataStore.JDBCFeatureWriter
extends java.lang.Object
implements FeatureWriter


Field Summary
protected  Feature current
           
protected  FeatureReader fReader
           
protected  Feature live
           
protected  JDBCDataStore.QueryData queryData
           
protected  AttributeWriter writer
           
 
Constructor Summary
JDBCDataStore.JDBCFeatureWriter(FeatureReader fReader, AttributeWriter writer, JDBCDataStore.QueryData queryData)
           Details
 
Method Summary
 void close()
          Release the underlying resources.
protected  void doInsert(Feature current)
          Protected method to perform an insert.
 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()
          What to do with inserts and FIDS???
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

queryData

protected JDBCDataStore.QueryData queryData

writer

protected AttributeWriter writer

live

protected Feature live

current

protected Feature current

fReader

protected FeatureReader fReader
Constructor Detail

JDBCDataStore.JDBCFeatureWriter

public JDBCDataStore.JDBCFeatureWriter(FeatureReader fReader,
                                       AttributeWriter writer,
                                       JDBCDataStore.QueryData queryData)
                                throws java.io.IOException

Details

Parameters:
fReader - DOCUMENT ME!
writer - DOCUMENT ME!
queryData -
Throws:
java.io.IOException
Method Detail

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.

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

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 opperating 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

write

public void write()
           throws java.io.IOException
What to do with inserts and FIDS???

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

doInsert

protected void doInsert(Feature current)
                 throws java.io.IOException,
                        java.sql.SQLException
Protected method to perform an insert. Postgis needs to do this seperately. With updates it can just override the geometry stuff, using a direct sql update statement, but for inserts it can't update a row that doesn't exist yet.

Parameters:
current - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
java.sql.SQLException - DOCUMENT ME!
DataSourceException - DOCUMENT ME!

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

close

public void close()
           throws java.io.IOException
Description copied from interface: FeatureWriter
Release the underlying resources.

Specified by:
close in interface FeatureWriter
Throws:
java.io.IOException - if close has already been called or if there there are problems releasing underlying resources.


Copyright © 1996-2003 GeoTools. All Rights Reserved.