org.geotools.data
Class FIDFeatureReader

java.lang.Object
  extended by org.geotools.data.FIDFeatureReader
All Implemented Interfaces:
FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

public class FIDFeatureReader
extends java.lang.Object
implements FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

Experimental FeatureReader that always takes the first column of the attributeReader as the FeatureID. I want to get this working with postgis, but then will consider other options, for those who want featureIDs created automatically. Perhaps a constructor param or a method to say that you would just like to have the FeatureReader increment one for each feature, prepending the typeName. I'm also don't really like the one argument constructor defaulting to the xxx typename. I feel that it should perhaps take a typename. If people deliberately set to null then we could use xxx or something. ch

This now feels sorta hacky, I'm not sure that I like it, but I'm going to commit as I need to go now and revisit it in a bit. I think the idea of passing in an FIDAttributeReader might be cleaner, and if none is provided then do an auto-increment one. This might then work as the DefaultFeatureReader.

Version:
$Id: FIDFeatureReader.java 35165 2010-04-05 10:01:06Z aaime $
Author:
Ian Schneider, Chris Holmes, TOPP

Field Summary
protected  java.lang.Object[] attributes
           
 
Constructor Summary
FIDFeatureReader(AttributeReader attributeReader, FIDReader fidReader)
           
FIDFeatureReader(AttributeReader attributeReader, FIDReader fidReader, org.opengis.feature.simple.SimpleFeatureType schema)
          Creates a new instance of AbstractFeatureReader
 
Method Summary
 void close()
          Release the underlying resources associated with this stream.
protected  org.opengis.feature.simple.SimpleFeatureType createSchema()
           
 org.opengis.feature.simple.SimpleFeatureType getFeatureType()
          Return the FeatureType this reader has been configured to create.
 boolean hasNext()
          Query whether this FeatureReader has another Feature.
 org.opengis.feature.simple.SimpleFeature next()
          Reads the next Feature in the FeatureReader.
protected  org.opengis.feature.simple.SimpleFeature readFeature(AttributeReader atts)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

attributes

protected final java.lang.Object[] attributes
Constructor Detail

FIDFeatureReader

public FIDFeatureReader(AttributeReader attributeReader,
                        FIDReader fidReader,
                        org.opengis.feature.simple.SimpleFeatureType schema)
                 throws SchemaException
Creates a new instance of AbstractFeatureReader

Parameters:
attributeReader - AttributeReader
fidReader - FIDReader used to ID Features
schema - FeatureType to use, may be null
Throws:
SchemaException - if we could not determine the correct FeatureType

FIDFeatureReader

public FIDFeatureReader(AttributeReader attributeReader,
                        FIDReader fidReader)
                 throws SchemaException
Throws:
SchemaException
Method Detail

next

public org.opengis.feature.simple.SimpleFeature next()
                                              throws java.io.IOException,
                                                     IllegalAttributeException,
                                                     java.util.NoSuchElementException
Description copied from interface: FeatureReader
Reads the next Feature in the FeatureReader.

Specified by:
next in interface FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
The next feature in the reader.
Throws:
java.io.IOException - If an error occurs reading the Feature.
IllegalAttributeException - If the attributes read do not comply with the FeatureType.
java.util.NoSuchElementException - If there are no more Features in the Reader.

createSchema

protected org.opengis.feature.simple.SimpleFeatureType createSchema()
                                                             throws SchemaException
Throws:
SchemaException

readFeature

protected org.opengis.feature.simple.SimpleFeature readFeature(AttributeReader atts)
                                                        throws IllegalAttributeException,
                                                               java.io.IOException
Throws:
IllegalAttributeException
java.io.IOException

close

public void close()
           throws java.io.IOException
Description copied from interface: FeatureReader
Release the underlying resources associated with this stream.

Specified by:
close in interface FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Throws:
java.io.IOException - DOCUMENT ME!

getFeatureType

public org.opengis.feature.simple.SimpleFeatureType getFeatureType()
Description copied from interface: FeatureReader
Return the FeatureType this reader has been configured to create.

Specified by:
getFeatureType in interface FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
the FeatureType of the Features this FeatureReader will create.

hasNext

public boolean hasNext()
                throws java.io.IOException
Description copied from interface: FeatureReader
Query whether this FeatureReader has another Feature.

Specified by:
hasNext in interface FeatureReader<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
True if there are more Features to be read. In other words, true if calls to next would return a feature rather than throwing an exception.
Throws:
java.io.IOException - If an error occurs determining if there are more Features.


Copyright © 1996-2010 Geotools. All Rights Reserved.