Package org.geotools.data
Class ReTypeFeatureReader
- Object
-
- ReTypeFeatureReader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,DelegatingFeatureReader<SimpleFeatureType,SimpleFeature>
,FeatureReader<SimpleFeatureType,SimpleFeature>
public class ReTypeFeatureReader extends Object implements DelegatingFeatureReader<SimpleFeatureType,SimpleFeature>
Supports on the fly retyping of FeatureReadercontents. This may be used to have a DataStore work with your own representation of Feature information.
Example Use:
FeatureReader
reader = dataStore.getFeatureReader( query, Transaction.AUTO_COMMIT ); reader = new ReTypeFeatureReader( reader, myFeatureType ); try { while( reader.hasNext() ){ Feature f = reader.next(); System.out.println( f ); } } finally { reader.close(); // will close both } This Reader makes a simple one to one between the original schema and the target schema based on descriptor name.
- Author:
- Jody Garnett (Refractions Research)
-
-
Constructor Summary
Constructors Constructor Description ReTypeFeatureReader(FeatureReader<SimpleFeatureType,SimpleFeature> reader, SimpleFeatureType featureType)
Constructs a FetureReader that will ReType streaming content.ReTypeFeatureReader(FeatureReader<SimpleFeatureType,SimpleFeature> reader, SimpleFeatureType featureType, boolean clone)
Constructs a FetureReader that will ReType streaming content.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Release the underlying resources associated with this stream.FeatureReader<SimpleFeatureType,SimpleFeature>
getDelegate()
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 AttributeDescriptor[]
typeAttributes(SimpleFeatureType target, SimpleFeatureType origional)
Supplies mapping from original to target FeatureType.
-
-
-
Constructor Detail
-
ReTypeFeatureReader
public ReTypeFeatureReader(FeatureReader<SimpleFeatureType,SimpleFeature> reader, SimpleFeatureType featureType)
Constructs a FetureReader that will ReType streaming content.- Parameters:
reader
- Original FeatureReaderfeatureType
- Target FeatureType
-
ReTypeFeatureReader
public ReTypeFeatureReader(FeatureReader<SimpleFeatureType,SimpleFeature> reader, SimpleFeatureType featureType, boolean clone)
Constructs a FetureReader that will ReType streaming content.- Parameters:
reader
- Original FeatureReaderfeatureType
- Target FeatureTypeclone
- true to clone the content- Since:
- 2.3
-
-
Method Detail
-
getDelegate
public FeatureReader<SimpleFeatureType,SimpleFeature> getDelegate()
- Specified by:
getDelegate
in interfaceDelegatingFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- The delegate feature reader.
-
typeAttributes
protected AttributeDescriptor[] typeAttributes(SimpleFeatureType target, SimpleFeatureType origional)
Supplies mapping from original to target FeatureType.Will also ensure that mapping results in a valid selection of values from the original. Only the xpath expression and binding are checked.
- Parameters:
target
- Desired FeatureTypeorigional
- Original FeatureType- Returns:
- Mapping from originoal to target FeatureType
- Throws:
IllegalArgumentException
- if unable to provide a mapping
-
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.
- See Also:
FeatureReader.getFeatureType()
-
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
- See Also:
FeatureReader.next()
-
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.- See Also:
FeatureReader.hasNext()
-
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- See Also:
FeatureReader.close()
-
-