Class PropertyFeatureWriter
- Object
-
- PropertyFeatureWriter
-
- All Implemented Interfaces:
Closeable,AutoCloseable,FeatureWriter<SimpleFeatureType,SimpleFeature>
public class PropertyFeatureWriter extends Object implements FeatureWriter<SimpleFeatureType,SimpleFeature>
Uses PropertyAttributeWriter to generate a property file on disk.- Author:
- Jody Garnett, Torben Barsballe (Boundless)
-
-
Constructor Summary
Constructors Constructor Description PropertyFeatureWriter(ContentFeatureSource source, ContentState contentState, Query query, boolean append)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Release the underlying resources.voidechoLine(String line)SimpleFeatureTypegetFeatureType()FeatureType this reader has been configured to create.booleanhasNext()Query whether this FeatureWriter has another Feature.SimpleFeaturenext()Reads a Feature from the underlying AttributeReader.voidremove()Removes current Feature, must be called before hasNext.voidwrite()Writes the current Feature, must be called before hasNext.voidwrite(int position, Object attribute)voidwriteFeatureID(String fid)
-
-
-
Constructor Detail
-
PropertyFeatureWriter
public PropertyFeatureWriter(ContentFeatureSource source, ContentState contentState, Query query, boolean append) throws IOException
- Throws:
IOException
-
-
Method Detail
-
getFeatureType
public SimpleFeatureType getFeatureType()
Description copied from interface:FeatureWriterFeatureType this reader has been configured to create.- Specified by:
getFeatureTypein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Returns:
- FeatureType this writer has been configured to create.
-
hasNext
public boolean hasNext() throws IOExceptionDescription copied from interface:FeatureWriterQuery whether this FeatureWriter has another Feature.Please note: it is more efficient to construct your FeatureWriter with a Filer (to skip entries you do not want), than to force the creation of entire Features only to skip over them.
FeatureWriters that support append operations will allow calls to next, even when hasNext() returns
false.- Specified by:
hasNextin interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Returns:
trueif an additionalFeatureis available,falseif not.- Throws:
IOException- if an I/O error occurs.
-
writeFeatureID
public void writeFeatureID(String fid) throws IOException
- Throws:
IOException
-
write
public void write(int position, Object attribute) throws IOException- Throws:
IOException
-
next
public SimpleFeature next() throws IOException
Description copied from interface:FeatureWriterReads a Feature from the underlying AttributeReader.This method may return a Feature even though hasNext() returns
false, this allows FeatureWriters to provide an ability to append content.- Specified by:
nextin interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Returns:
- Feature from Query, or newly appended Feature
- Throws:
IOException- if the writer has been closed or an I/O error occurs reading the nextFeature.
-
write
public void write() throws IOExceptionDescription copied from interface:FeatureWriterWrites the current Feature, must be called before hasNext.FeautreWriters will need to allow FeatureSources of the same typeName to issue a FeatureEvent:
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
false. - FeatureEvent.FEATURES_MODIFIED: when next has been called with hasNext() equal to
trueand the resulting Feature has indeed been modified.
If this FeatureWriter is opperating against a Transaction the FEATURES_MODIFIED or FEATURES_ADDED events should only be sent to FeatureSources opperating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
If you have not called write() when you call hasNext() or next(), no modification will occur().
- Specified by:
writein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Throws:
IOException
- FeatureEvent.FEATURES_ADDED: when next() has been called with hasNext() equal to
-
remove
public void remove() throws IOExceptionDescription copied from interface:FeatureWriterRemoves current Feature, must be called before hasNext.FeatureWriters will need to allow all FeatureSources of the same typeName to issue a FeatureEvent event of type
FeatureEvent.FEATURES_REMOVEDwhen this method is called.If this FeatureWriter is opperating against a Transaction FEATURES_REMOVED events should only be sent to FeatureSources operating on the same Transaction. When Transaction commit() is called other FeatureSources will be informed of the modifications.
When the current Feature has been provided as new content, this method "cancels" the add opperation (and notification needed).
- Specified by:
removein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Throws:
IOException
-
close
public void close() throws IOExceptionDescription copied from interface:FeatureWriterRelease the underlying resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceFeatureWriter<SimpleFeatureType,SimpleFeature>- Throws:
IOException- if there there are problems releasing underlying resources, or possibly if close has been called (up to the implementation).
-
echoLine
public void echoLine(String line) throws IOException
- Throws:
IOException
-
-