public abstract class AbstractProductWriter extends Object implements ProductWriter
AbstractProductWriter
class can be used as a base class for new product writer implementations.writeProductNodes(org.esa.snap.core.datamodel.Product, java.lang.Object)
Constructor and Description |
---|
AbstractProductWriter(ProductWriterPlugIn writerPlugIn)
Constructs a
ProductWriter . |
Modifier and Type | Method and Description |
---|---|
protected void |
checkOutput()
Utility method which ensures that an output is assigned to this writer.
|
Object |
getOutput()
Retrives the current output destination object.
|
protected Product |
getSourceProduct()
Returns the source product to be written or
null if the writeProductNodes has not be
called so far. |
ProductWriterPlugIn |
getWriterPlugIn()
Returns the plug-in which created this product writer.
|
boolean |
isIncrementalMode()
Returns whether this product writer writes only modified product nodes.
|
protected boolean |
isInstanceOfValidOutputType(Object output)
Checks if the given object is an instance of one of the valid output types for this product writer.
|
void |
removeBand(Band band)
Overwrite this method to physicaly delete a
Band from the writer's output file. |
void |
setFormatName(String formatName)
Sets selectable product format for writers which handle multiple formats.
|
void |
setIncrementalMode(boolean enabled)
Enables resp. disables incremental writing of this product writer.
|
boolean |
shouldWrite(ProductNode node)
Returns wether the given product node is to be written.
|
void |
writeProductNodes(Product product,
Object output)
Writes the in-memory representation of a data product.
|
protected abstract void |
writeProductNodesImpl()
Writes the in-memory representation of a data product.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close, deleteOutput, flush, writeBandRasterData
public AbstractProductWriter(ProductWriterPlugIn writerPlugIn)
ProductWriter
. Since no output destination is set, the setOutput
method must be called before data can be written.writerPlugIn
- the plug-in which created this writer, must not be null
IllegalArgumentException
writeProductNodes(org.esa.snap.core.datamodel.Product, java.lang.Object)
public ProductWriterPlugIn getWriterPlugIn()
getWriterPlugIn
in interface ProductWriter
null
protected Product getSourceProduct()
null
if the writeProductNodes
has not be
called so far.public Object getOutput()
null
if the
setOutput
method has not been called so far.getOutput
in interface ProductWriter
public void writeProductNodes(Product product, Object output) throws IOException
Whether the band data - the actual pixel values - is written out immediately or later when pixels are flushed, is up to the implementation.
writeProductNodes
in interface ProductWriter
product
- the in-memory representation of the data productoutput
- an object representing a valid output for this writer, might be a ImageOutputStream
or other Object
to use for future decoding.IllegalArgumentException
- if product
is null
.IllegalArgumentException
- if output
is null
or it's type is none of the
supported output types.IOException
- if an I/O error occursprotected abstract void writeProductNodesImpl() throws IOException
writeProductNodes(product,
output)
of the AbstractProductWriter.IllegalArgumentException
- if output
type is not one of the supported output sources.IOException
- if an I/O error occursprotected void checkOutput() throws IllegalStateException
IllegalStateException
- if no output was set (output is null
).protected boolean isInstanceOfValidOutputType(Object output)
true
if soProductWriterPlugIn.getOutputTypes()
public boolean shouldWrite(ProductNode node)
shouldWrite
in interface ProductWriter
node
- the product nodetrue
if sopublic void setIncrementalMode(boolean enabled)
setIncrementalMode
in interface ProductWriter
enabled
- enables or disables progress listening.public boolean isIncrementalMode()
isIncrementalMode
in interface ProductWriter
true
if sopublic void removeBand(Band band)
Band
from the writer's output file.removeBand
in interface ProductWriter
band
- The band to delete.public void setFormatName(String formatName)
setFormatName
in interface ProductWriter
formatName
- The name of the file format.Copyright © 2014–2017 European Space Agency (ESA). All rights reserved.