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:
FeatureReaderreader = 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 voidclose()Release the underlying resources associated with this stream.FeatureReader<SimpleFeatureType,SimpleFeature>getDelegate()SimpleFeatureTypegetFeatureType()Return the FeatureType this reader has been configured to create.booleanhasNext()Query whether this FeatureReader has another Feature.SimpleFeaturenext()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:
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
public SimpleFeatureType 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:
FeatureReader.getFeatureType()
-
next
public SimpleFeature next() throws IOException, IllegalAttributeException, NoSuchElementException
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:
FeatureReader.next()
-
hasNext
public boolean hasNext() throws IOExceptionDescription 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:
FeatureReader.hasNext()
-
close
public void close() throws IOExceptionDescription 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:
FeatureReader.close()
-
-