|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectJDBCFeatureWriter
public class JDBCFeatureWriter
JDBCDataStore implementation of the FeatureWriter interface
Field Summary | |
---|---|
protected boolean |
closed
|
protected SimpleFeature |
current
|
protected Object[] |
fidAttributes
|
protected SimpleFeature |
live
|
protected QueryData |
queryData
|
protected FeatureReader<SimpleFeatureType,SimpleFeature> |
reader
|
Constructor Summary | |
---|---|
JDBCFeatureWriter(FeatureReader<SimpleFeatureType,SimpleFeature> reader,
QueryData queryData)
|
Method Summary | |
---|---|
void |
close()
Release the underlying resources. |
protected void |
doInsert(MutableFIDFeature mutable)
Inserts a feature into the database. |
protected void |
doUpdate(SimpleFeature live,
SimpleFeature current)
|
protected String |
encodeColumnName(String colName)
Encodes the colName, default just calls encodeName(String) . |
protected String |
encodeName(String tableName)
Encodes the tableName, default is to do nothing, but postgis will override and put double quotes around the tablename. |
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. |
protected boolean |
useQueryDataForInsert()
Returns true if QueryData is used to insert rows, false if some other means is used |
void |
write()
Wrties the current Feature, must be called before hasNext. |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected QueryData queryData
protected FeatureReader<SimpleFeatureType,SimpleFeature> reader
protected SimpleFeature live
protected SimpleFeature current
protected boolean closed
protected Object[] fidAttributes
Constructor Detail |
---|
public JDBCFeatureWriter(FeatureReader<SimpleFeatureType,SimpleFeature> reader, QueryData queryData)
Method Detail |
---|
public SimpleFeatureType getFeatureType()
FeatureWriter
getFeatureType
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
FeatureWriter.getFeatureType()
public SimpleFeature next() throws IOException
FeatureWriter
This method may return a Feature even though hasNext() returns
false
, this allows FeatureWriters to provide an ability to
append content.
next
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
IOException
- DOCUMENT ME!FeatureWriter.next()
protected boolean useQueryDataForInsert()
public void remove() throws IOException
FeatureWriter
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).
remove
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
IOException
- DOCUMENT ME!FeatureWriter.remove()
public void write() throws IOException
FeatureWriter
FeautreWriters will need to allow FeatureSources of the same typeName to issue a FeatureEvent:
false
.
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().
write
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
IOException
FeatureWriter.write()
protected void doUpdate(SimpleFeature live, SimpleFeature current) throws IOException, SQLException
IOException
SQLException
protected void doInsert(MutableFIDFeature mutable) throws IOException, SQLException
This method should both insert a Feature, and update its FID in case the FIDMapper works over database generated ids like autoincrement fields, sequences, and object ids.
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.
mutable
-
IOException
SQLException
public boolean hasNext() throws IOException
FeatureWriter
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
.
hasNext
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
true
if an additional Feature
is
available.
IOException
- DOCUMENT ME!FeatureWriter.hasNext()
public void close() throws IOException
FeatureWriter
close
in interface FeatureWriter<SimpleFeatureType,SimpleFeature>
IOException
- if there there are problems releasing underlying resources, or
possibly if close has been called (up to the implementation).FeatureWriter.close()
protected String encodeName(String tableName)
protected String encodeColumnName(String colName)
encodeName(String)
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |