Package org.geotools.data
Class FIDFeatureReader
- Object
-
- FIDFeatureReader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FeatureReader<SimpleFeatureType,SimpleFeature>
public class FIDFeatureReader extends Object implements FeatureReader<SimpleFeatureType,SimpleFeature>
Experimental FeatureReaderthat 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.
- Author:
- Ian Schneider, Chris Holmes, TOPP
-
-
Field Summary
Fields Modifier and Type Field Description protected Object[]
attributes
-
Constructor Summary
Constructors Constructor Description FIDFeatureReader(AttributeReader attributeReader, FIDReader fidReader)
FIDFeatureReader(AttributeReader attributeReader, FIDReader fidReader, SimpleFeatureType schema)
Creates a new instance of AbstractFeatureReader
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Release the underlying resources associated with this stream.protected SimpleFeatureType
createSchema()
SimpleFeatureType
getFeatureType()
Return the FeatureType this reader has been configured to create.boolean
hasNext()
Query whether this FeatureReader has another Feature.SimpleFeature
next()
Reads the next Feature in the FeatureReader.protected SimpleFeature
readFeature(AttributeReader atts)
-
-
-
Field Detail
-
attributes
protected final Object[] attributes
-
-
Constructor Detail
-
FIDFeatureReader
public FIDFeatureReader(AttributeReader attributeReader, FIDReader fidReader, SimpleFeatureType schema) throws SchemaException
Creates a new instance of AbstractFeatureReader- Parameters:
attributeReader
- AttributeReaderfidReader
- FIDReader used to ID Featuresschema
- FeatureType to use, may benull
- 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 SimpleFeature next() throws IOException, IllegalAttributeException, NoSuchElementException
Description copied from interface:FeatureReader
Reads the next Feature in the FeatureReader.- Specified by:
next
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- The next feature in the reader.
- Throws:
IOException
- If an error occurs reading the Feature.NoSuchElementException
- If there are no more Features in the Reader.IllegalAttributeException
-
createSchema
protected SimpleFeatureType createSchema() throws SchemaException
- Throws:
SchemaException
-
readFeature
protected SimpleFeature readFeature(AttributeReader atts) throws IllegalAttributeException, IOException
- Throws:
IllegalAttributeException
IOException
-
close
public void close() throws IOException
Description copied from interface:FeatureReader
Release the underlying resources associated with this stream.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Throws:
IOException
- if an I/O error occurs
-
getFeatureType
public SimpleFeatureType getFeatureType()
Description copied from interface:FeatureReader
Return the FeatureType this reader has been configured to create.- Specified by:
getFeatureType
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- the FeatureType of the Features this FeatureReader will create.
-
hasNext
public boolean hasNext() throws IOException
Description copied from interface:FeatureReader
Query whether this FeatureReader has another Feature.- Specified by:
hasNext
in interfaceFeatureReader<SimpleFeatureType,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:
IOException
- If an error occurs determining if there are more Features.
-
-