org.geotools.data
Class FilteringFeatureWriter

java.lang.Object
  extended byorg.geotools.data.FilteringFeatureWriter
All Implemented Interfaces:
FeatureWriter

public class FilteringFeatureWriter
extends java.lang.Object
implements FeatureWriter

Filtering is performed on this hasNext() method.

This implementation writes out content furing the hasNext() method. This allows the implementation to "peek" ahead.

This FeatureWriter does not support the addition of new content.

Author:
Jody Garnett, Refractions Research

Constructor Summary
FilteringFeatureWriter(FeatureWriter writer, Filter filter)
           
 
Method Summary
 void close()
          Release the underlying resources.
 FeatureType getFeatureType()
          FeatureType this reader has been configured to create.
 boolean hasNext()
          Query if we have more content.
 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, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilteringFeatureWriter

public FilteringFeatureWriter(FeatureWriter writer,
                              Filter filter)
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
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

hasNext

public boolean hasNext()
                throws java.io.IOException
Query if we have more content.

Specified by:
hasNext in interface FeatureWriter
Returns:
true if writer has additional content
Throws:
java.io.IOException - If writer we are filtering encounters a problem

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.