org.esa.beam.framework.gpf.internal
Class OperatorProductReader

java.lang.Object
  extended by org.esa.beam.framework.gpf.internal.OperatorProductReader
All Implemented Interfaces:
ProductReader

public class OperatorProductReader
extends Object
implements ProductReader

The OperatorProductReader is an adapter class that wraps Operators to BEAM ProductReaders. It enables the usage of BEAM Products inside of this framework without the necessity to make changes on the Product's signature.

Author:
Marco Peters, Norman Fomferra

Constructor Summary
OperatorProductReader(OperatorContext operatorContext)
          Creates a OperatorProductReader instance.
 
Method Summary
 void close()
          Closes the access to all currently opened resources such as file input streams and all resources of this children directly owned by this reader.
 Object getInput()
          Retrives the current input destination object.
 OperatorContext getOperatorContext()
           
 ProductReaderPlugIn getReaderPlugIn()
          Returns the plug-in which created this product reader.
 ProductSubsetDef getSubsetDef()
          Returns the subset information with which this a data product is read from its physical source.
 void readBandRasterData(Band destBand, int destOffsetX, int destOffsetY, int destWidth, int destHeight, ProductData destBuffer, com.bc.ceres.core.ProgressMonitor pm)
          Reads raster data from the data source specified by the given destination band into the given in-memory buffer and region.
 Product readProductNodes(Object input, ProductSubsetDef subsetDef)
          Reads a data product and returns a in-memory representation of it.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OperatorProductReader

public OperatorProductReader(OperatorContext operatorContext)
Creates a OperatorProductReader instance.

Parameters:
operatorContext - the operator context
Method Detail

getOperatorContext

public OperatorContext getOperatorContext()

getInput

public Object getInput()
Description copied from interface: ProductReader
Retrives the current input destination object. Thie return value might be null if the setInput has not been called so far.

Specified by:
getInput in interface ProductReader

getReaderPlugIn

public ProductReaderPlugIn getReaderPlugIn()
Description copied from interface: ProductReader
Returns the plug-in which created this product reader.

Specified by:
getReaderPlugIn in interface ProductReader
Returns:
the product reader plug-in, should never be null

getSubsetDef

public ProductSubsetDef getSubsetDef()
Description copied from interface: ProductReader
Returns the subset information with which this a data product is read from its physical source.

Specified by:
getSubsetDef in interface ProductReader
Returns:
the subset information, can be null

readProductNodes

public Product readProductNodes(Object input,
                                ProductSubsetDef subsetDef)
                         throws IOException
Description copied from interface: ProductReader
Reads a data product and returns a in-memory representation of it.

The given subset info can be used to specify spatial and spectral portions of the original proudct. If the subset is omitted, the complete product is read in.

Whether the band data - the actual pixel values - is read in immediately or later when pixels are requested, is up to the implementation.

Specified by:
readProductNodes in interface ProductReader
Parameters:
input - an object representing a valid output for this product reader, might be a ImageInputStream or other Object to use for future decoding.
subsetDef - a spectral or spatial subset (or both) of the product. If null, the entire product is read in
Throws:
IOException - if an I/O error occurs
IllegalFileFormatException - if the file format is illegal

readBandRasterData

public void readBandRasterData(Band destBand,
                               int destOffsetX,
                               int destOffsetY,
                               int destWidth,
                               int destHeight,
                               ProductData destBuffer,
                               com.bc.ceres.core.ProgressMonitor pm)
                        throws IOException
Description copied from interface: ProductReader
Reads raster data from the data source specified by the given destination band into the given in-memory buffer and region.

Destination band

The destination band is used to identify the data source from which this method transfers the sample values into the given destination buffer. The method does not modify the given destination band at all. If this product reader has a ProductSubsetDef instance attached to it, the method should also consider the specified spatial subset and sub-sampling (if any) applied to the destination band.

Destination region

The given destination region specified by the destOffsetX, destOffsetY, destWidth and destHeight parameters are given in the band's raster co-ordinates of the raster which results after applying the optional spatial subset and sub-sampling given by the ProductSubsetDef instance to the data source. If no spatial subset and sub-sampling is specified, the destination co-ordinates are identical with the source co-ordinates. The destination region should always specify a sub-region of the band's scene raster.

Destination buffer

The first element of the destination buffer corresponds to the given destOffsetX and destOffsetY of the destination region. The offset parameters are not an offset within the buffer.
The number of elements in the buffer exactly be destWidth * destHeight. The pixel values read are stored in line-by-line order, so the raster X co-ordinate varies faster than the Y co-ordinate.

Specified by:
readBandRasterData in interface ProductReader
Parameters:
destBand - the destination band which identifies the data source from which to read the sample values
destOffsetX - the X-offset in the band's raster co-ordinates
destOffsetY - the Y-offset in the band's raster co-ordinates
destWidth - the width of region to be read given in the band's raster co-ordinates
destHeight - the height of region to be read given in the band's raster co-ordinates
destBuffer - the destination buffer which receives the sample values to be read
Throws:
IOException - if an I/O error occurs
See Also:
RasterDataNode.getSceneRasterWidth(), RasterDataNode.getSceneRasterHeight()

close

public void close()
           throws IOException
Description copied from interface: ProductReader
Closes the access to all currently opened resources such as file input streams and all resources of this children directly owned by this reader. Its primary use is to allow the garbage collector to perform a vanilla job.

This method should be called only if it is for sure that this object instance will never be used again. The results of referencing an instance of this class after a call to close() are undefined.

Overrides of this method should always call super.close(); after disposing this instance.

Specified by:
close in interface ProductReader
Throws:
IOException - if an I/O error occurs

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2002-2013 Brockmann Consult GmbH. All Rights Reserved.