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 FeatureReader<SimpleFeatureType, SimpleFeature> contents.
This may be used to have a DataStore work with your own representation of Feature information.
Example Use:
FeatureReader<SimpleFeatureType, SimpleFeature> 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
ConstructorsConstructorDescriptionReTypeFeatureReader(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
Modifier and TypeMethodDescriptionvoidclose()Release the underlying resources associated with this stream.Return the FeatureType this reader has been configured to create.booleanhasNext()Query whether this FeatureReader has another Feature.next()Reads the next Feature in the FeatureReader.protected AttributeDescriptor[]typeAttributes(SimpleFeatureType target, SimpleFeatureType origional) Supplies mapping from original to target FeatureType.
-
Constructor Details
-
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 Details
-
getDelegate
- Specified by:
getDelegatein 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
Description copied from interface:FeatureReaderReturn the FeatureType this reader has been configured to create.- Specified by:
getFeatureTypein interfaceFeatureReader<SimpleFeatureType,SimpleFeature> - Returns:
- the FeatureType of the Features this FeatureReader will create.
- See Also:
-
next
Description copied from interface:FeatureReaderReads the next Feature in the FeatureReader.- Specified by:
nextin 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:
-
hasNext
Description copied from interface:FeatureReaderQuery whether this FeatureReader has another Feature.- Specified by:
hasNextin 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:
-
close
Description copied from interface:FeatureReaderRelease the underlying resources associated with this stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceFeatureReader<SimpleFeatureType,SimpleFeature> - Throws:
IOException- if an I/O error occurs- See Also:
-