| org.geotools.data.FeatureReader
All known Subclasses: org.geotools.data.ReTypeFeatureReader, org.geotools.data.crs.ReprojectFeatureReader, org.geotools.data.collection.DelegateFeatureReader, org.geotools.data.MaxFeatureReader, org.geotools.data.vpf.VPFFeatureReader, org.geotools.data.jdbc.JDBCFeatureReader, org.geotools.data.EmptyFeatureReader, org.geotools.data.TestReader, org.geotools.xml.gml.FCBuffer, org.geotools.data.CollectionFeatureReader, org.geotools.data.ogr.OGRFeatureReader, org.geotools.data.FIDFeatureReader, org.geotools.data.crs.ForceCoordinateSystemFeatureReader, org.geotools.data.DefaultFeatureReader, org.geotools.data.vpf.file.VPFFileFeatureReader, org.geotools.data.DiffFeatureReader, org.geotools.data.FilteringFeatureReader, org.geotools.data.property.PropertyFeatureReader, org.geotools.data.postgis.VersionedFeatureReader, org.geotools.data.tiger.TigerFeatureReader,
FeatureReader | public interface FeatureReader (Code) | | The low-level interface for reading Features. Will use the underlying
AttributeReader and the given FeatureType to create new Features.
Typical use is as follows:
FeatureReader reader = null;
try{
for( reader = data.getFeatureReader( filter ); reader.hasNext(); ){
f = reader.next();
...
}
}
catch (IOException problem){
...
}
finally {
if( reader != null ){
try {
reader.close();
}
catch( IOException eek){
}
}
}
Questions and Suggestions
- Q: Should FeatureReader provide access to the AttributeReaders it uses?
A:
No, it looks like we will make a lazy Feature in order to cleanly
allow for lazy parsing of attribtues.
- Q:FeatureReader has a close method, but no open method?
A: This is by design allowing FeatureReader to encapsulate its InputStream
or Rowset). Please assume that FeatureReaders are a single use proposition.
- Q: All that exception handling is a pain!
A:
Yes it is, we have constructed semi-normal Java iterators to cut down on the
pain. But you *do* still have to close 'em - this is IO after all.
- Q: Can we include skip(int) - SeanG
A:
The order of the contents is not "known" or predicatable to the end user, so
skip( int ) would be useless. For random access (a higher order
of abstraction then FeatureReader) please look at FeatureList.
author: Ian Schneider author: Sean Geoghegan, Defence Science and Technology Organisation. version: $Id: FeatureReader.java 22294 2006-10-20 00:55:40Z desruisseaux $ |
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 whether this FeatureReader has another Feature.
True if there are more Features to be read. | Feature | next() Reads the next Feature in the FeatureReader. |
close | void close() throws IOException(Code) | | Release the underlying resources associated with this stream.
throws: IOException - DOCUMENT ME! |
getFeatureType | FeatureType getFeatureType()(Code) | | Return the FeatureType this reader has been configured to create.
the FeatureType of the Features this FeatureReader will create. |
hasNext | boolean hasNext() throws IOException(Code) | | Query whether this FeatureReader has another Feature.
True if there are more Features to be read. In other words, trueif calls to next would return a feature rather than throwing anexception. throws: IOException - If an error occurs determining if there are moreFeatures. |
|
|