Class ProductData.Byte

java.lang.Object
org.esa.snap.core.datamodel.ProductData
org.esa.snap.core.datamodel.ProductData.Byte
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
ProductData.ASCII, ProductData.UByte
Enclosing class:
ProductData

public static class ProductData.Byte extends ProductData
The Byte class is a ProductData specialisation for signed 8-bit integer fields.

Internally, data is stored in an array of the type byte[].

  • Field Details

    • _array

      protected byte[] _array
      The internal data array holding this value's data elements.
  • Constructor Details

    • Byte

      public Byte(int numElems)
      Constructs a new signed byte value.
      Parameters:
      numElems - the number of elements, must not be less than one
    • Byte

      public Byte(byte[] array)
      Constructs a new signed byte value.
      Parameters:
      array - the elements
    • Byte

      protected Byte(int numElems, int type)
      Constructs a new signed byte value.
      Parameters:
      numElems - the number of elements, must not be less than one
      type - must be one of TYPE_UINT8, TYPE_INT8 or TYPE_ASCII
    • Byte

      protected Byte(int numElems, boolean unsigned)
      Constructs a new signed byte value.
      Parameters:
      numElems - the number of elements, must not be less than one
      unsigned - if true an unsigned value type is constructed
    • Byte

      protected Byte(byte[] array, boolean unsigned)
      Constructs a new signed byte value.
      Parameters:
      array - the elements
      unsigned - if true an unsigned value type is constructed
    • Byte

      protected Byte(byte[] array, int type)
      Constructs a new signed byte value.
      Parameters:
      array - the elements
      type - must be one of TYPE_UINT8, TYPE_INT8 or TYPE_ASCII
  • Method Details

    • createDeepClone

      protected ProductData createDeepClone()
      Retuns a "deep" copy of this product data.
      Specified by:
      createDeepClone in class ProductData
      Returns:
      a copy of this product data
    • getNumElems

      public int getNumElems()
      Returns the number of data elements this value has.
      Specified by:
      getNumElems in class ProductData
    • getElemIntAt

      public int getElemIntAt(int index)
      Specified by:
      getElemIntAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • getElemUIntAt

      public long getElemUIntAt(int index)
      Specified by:
      getElemUIntAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • getElemLongAt

      public long getElemLongAt(int index)
      Specified by:
      getElemLongAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • getElemFloatAt

      public float getElemFloatAt(int index)
      Specified by:
      getElemFloatAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • getElemDoubleAt

      public double getElemDoubleAt(int index)
      Specified by:
      getElemDoubleAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • getElemStringAt

      public String getElemStringAt(int index)
      Specified by:
      getElemStringAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
    • setElemIntAt

      public void setElemIntAt(int index, int value)
      Specified by:
      setElemIntAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
      value - the value to be set
    • setElemUIntAt

      public void setElemUIntAt(int index, long value)
      Specified by:
      setElemUIntAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
      value - the value to be set
    • setElemLongAt

      public void setElemLongAt(int index, long value)
      Specified by:
      setElemLongAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
      value - the value to be set
    • setElemFloatAt

      public void setElemFloatAt(int index, float value)
      Specified by:
      setElemFloatAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
      value - the value to be set
    • setElemDoubleAt

      public void setElemDoubleAt(int index, double value)
      Specified by:
      setElemDoubleAt in class ProductData
      Parameters:
      index - the value index, must be >=0 and <getNumDataElems()
      value - the value to be set
    • getArray

      public final byte[] getArray()
      Returns the internal data array holding this value's data elements.
      Returns:
      the internal data array, never null
    • getElems

      public Object getElems()
      Gets the actual value value(s). The value returned can safely been casted to an array object of the type byte[].
      Specified by:
      getElems in class ProductData
      Returns:
      this value's value, always a byte[], never null
    • setElems

      public void setElems(Object data)
      Sets the data of this value. The data must be an array of the type byte[] or String[] and have a length that is equal to the value returned by the getNumDataElems method.
      Specified by:
      setElems in class ProductData
      Parameters:
      data - the data array
      Throws:
      IllegalArgumentException - if data is null or it is not an array of the required type or does not have the required array length.
    • readFrom

      public void readFrom(int startPos, int numElems, ImageInputStream source) throws IOException
      Specified by:
      readFrom in class ProductData
      Parameters:
      startPos - the destination start position (zero-based)
      numElems - the number of elements to read
      source - a seekable data input stream
      Throws:
      IOException - if an I/O error occurs
    • writeTo

      public void writeTo(int sourceStartPos, int numSourceElems, ImageOutputStream destination) throws IOException
      Specified by:
      writeTo in class ProductData
      Parameters:
      sourceStartPos - the source start position (zero-based)
      numSourceElems - the number of elements to be written
      destination - a seekable data output stream
      Throws:
      IOException - if an I/O error occurs
    • clone

      public Object clone()
      Overrides:
      clone in class Object
    • dispose

      public void dispose()
      Releases all of the resources used by this object instance and all of its owned children. 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 dispose() are undefined.

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

      Specified by:
      dispose in class ProductData