|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.geotools.data.FilteringFeatureReader
Basic support for a FeatureReader that does filtering. I think that filtering should perhaps be done in the AttributeReader. I'm still having a bit of trouble with the split between attributeReader and featureReader as to where the hooks for advanced processing like filtering should take place. See my note on hasNext(), as the method is currently broken and there are more optimizations that could take place if we had a FilteringAttributeReader. So this class may go, but I thought I'd put the ideas into code.
Jody here - changed hasNext() to peek as required.
Field Summary | |
protected FeatureReader |
featureReader
|
protected Filter |
filter
|
protected Feature |
next
|
Constructor Summary | |
FilteringFeatureReader(FeatureReader featureReader,
Filter filter)
Creates a new instance of AbstractFeatureReader Please don't call this method with Filter.NONE or Filter.ALL (consider not filtering and EmptyFeatureReader instead) |
Method Summary | |
void |
close()
Release the underlying resources associated with this stream. |
FeatureType |
getFeatureType()
Return the FeatureType this reader has been configured to create. |
boolean |
hasNext()
Query for additional content. |
Feature |
next()
Reads the next Feature in the FeatureReader. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected final FeatureReader featureReader
protected final Filter filter
protected Feature next
Constructor Detail |
public FilteringFeatureReader(FeatureReader featureReader, Filter filter)
Please don't call this method with Filter.NONE or Filter.ALL (consider not filtering and EmptyFeatureReader instead)
featureReader
- FeatureReader being filteredfilter
- Filter used to limit the results of featureReaderMethod Detail |
public Feature next() throws java.io.IOException, IllegalAttributeException, java.util.NoSuchElementException
FeatureReader
next
in interface FeatureReader
java.util.NoSuchElementException
- If there are no more Features in the
Reader.
IllegalAttributeException
- If the attributes read do not comply
with the FeatureType.
java.io.IOException
- If an error occurs reading the Feature.public void close() throws java.io.IOException
FeatureReader
close
in interface FeatureReader
java.io.IOException
- DOCUMENT ME!public FeatureType getFeatureType()
FeatureReader
getFeatureType
in interface FeatureReader
public boolean hasNext() throws java.io.IOException
This class will peek ahead to see if there is additional content.
Chris has pointed out that we could make use of AttributeReader based filtering:
"Also doing things in the Attribute Reader would allow us to do the
smart filtering, only looking at the attributes needed for comparison,
whereas doing filtering here means we have to create an entire feature
each time."
hasNext
in interface FeatureReader
true
if we have additional content
java.io.IOException
- If the reader we are filtering encounters a problem
DataSourceException
- See IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |