Package org.esa.snap.core.datamodel
Class ProductData.UInt
- java.lang.Object
-
- org.esa.snap.core.datamodel.ProductData
-
- org.esa.snap.core.datamodel.ProductData.Int
-
- org.esa.snap.core.datamodel.ProductData.UInt
-
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
ProductData.UTC
- Enclosing class:
- ProductData
public static class ProductData.UInt extends ProductData.Int
TheUInt
class is aProductData
specialisation for unsigned 32-bit integer fields.Internally, data is stored in an array of the type
int[]
.In order to preserve the accuracy for the unsigned
int
value range thegetElemUIntAt
method should be used to retrieve the data stored in this value instead of accessing the data array directly.Another method is to mask each of the array elements in order to get the unsigned type in the following way:
int[] data = (int[]) value.getRaster(); for (int i = 0; i %lt; data.length; i++) { long value = data[i] & 0xffffffffL; ... }
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.esa.snap.core.datamodel.ProductData
ProductData.ASCII, ProductData.Byte, ProductData.Double, ProductData.Float, ProductData.Int, ProductData.Long, ProductData.Short, ProductData.UByte, ProductData.UInt, ProductData.UShort, ProductData.UTC
-
-
Field Summary
-
Fields inherited from class org.esa.snap.core.datamodel.ProductData.Int
_array
-
Fields inherited from class org.esa.snap.core.datamodel.ProductData
TYPE_ASCII, TYPE_FLOAT32, TYPE_FLOAT64, TYPE_INT16, TYPE_INT32, TYPE_INT64, TYPE_INT8, TYPE_UINT16, TYPE_UINT32, TYPE_UINT64, TYPE_UINT8, TYPE_UNDEFINED, TYPE_UTC, TYPESTRING_ASCII, TYPESTRING_FLOAT32, TYPESTRING_FLOAT64, TYPESTRING_INT16, TYPESTRING_INT32, TYPESTRING_INT64, TYPESTRING_INT8, TYPESTRING_UINT16, TYPESTRING_UINT32, TYPESTRING_UINT64, TYPESTRING_UINT8, TYPESTRING_UTC
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ProductData
createDeepClone()
Retuns a "deep" copy of this product data.double
getElemDoubleAt(int index)
Please refer toProductData.getElemDoubleAt(int)
.float
getElemFloatAt(int index)
Please refer toProductData.getElemFloatAt(int)
.int
getElemIntAt(int index)
Please refer toProductData.getElemIntAt(int)
.String
getElemStringAt(int index)
Please refer toProductData.getElemStringAt(int)
.long
getElemUIntAt(int index)
Please refer toProductData.getElemUIntAt(int)
.void
setElems(Object data)
Sets the data of this value.-
Methods inherited from class org.esa.snap.core.datamodel.ProductData.Int
dispose, getArray, getElemLongAt, getElems, getNumElems, readFrom, setElemDoubleAt, setElemFloatAt, setElemIntAt, setElemLongAt, setElemUIntAt, writeTo
-
Methods inherited from class org.esa.snap.core.datamodel.ProductData
createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createUnsignedInstance, createUnsignedInstance, createUnsignedInstance, equalElems, equals, getElemBoolean, getElemBooleanAt, getElemDouble, getElemFloat, getElemInt, getElemLong, getElemSize, getElemSize, getElemString, getElemUInt, getType, getType, getTypeString, getTypeString, hashCode, isFloatingPointType, isInt, isIntType, isScalar, isSigned, isUIntType, isUnsigned, readFrom, readFrom, readFrom, setElemBoolean, setElemBooleanAt, setElemDouble, setElemFloat, setElemInt, setElemLong, setElemString, setElemStringAt, setElemUInt, toString, writeTo, writeTo, writeTo
-
-
-
-
Constructor Detail
-
UInt
public UInt(int numElems)
Constructs a new unsignedint
value.- Parameters:
numElems
- the number of elements, must not be less than one
-
UInt
public UInt(int[] array)
Constructs a new unsignedint
value.- Parameters:
array
- the elements
-
UInt
protected UInt(long[] elems)
Constructs a new unsignedint
value.- Parameters:
elems
- the elements
-
-
Method Detail
-
createDeepClone
protected ProductData createDeepClone()
Retuns a "deep" copy of this product data.- Overrides:
createDeepClone
in classProductData.Int
- Returns:
- a copy of this product data
-
getElemIntAt
public int getElemIntAt(int index)
Please refer toProductData.getElemIntAt(int)
.IMPORTANT NOTE: This method returns the data element unchanged as it is sinternally stored (a 32-bit signed integer) and thus can also return negative values. Use
getElemUIntAt
which returns unsignedlong
values only.- Overrides:
getElemIntAt
in classProductData.Int
- Parameters:
index
- the value index, must be>=0
and<getNumDataElems()
-
getElemUIntAt
public long getElemUIntAt(int index)
Please refer toProductData.getElemUIntAt(int)
.- Overrides:
getElemUIntAt
in classProductData.Int
- Parameters:
index
- the value index, must be>=0
and<getNumDataElems()
-
getElemFloatAt
public float getElemFloatAt(int index)
Please refer toProductData.getElemFloatAt(int)
.- Overrides:
getElemFloatAt
in classProductData.Int
- Parameters:
index
- the value index, must be>=0
and<getNumDataElems()
-
getElemDoubleAt
public double getElemDoubleAt(int index)
Please refer toProductData.getElemDoubleAt(int)
.- Overrides:
getElemDoubleAt
in classProductData.Int
- Parameters:
index
- the value index, must be>=0
and<getNumDataElems()
-
getElemStringAt
public String getElemStringAt(int index)
Please refer toProductData.getElemStringAt(int)
.- Overrides:
getElemStringAt
in classProductData.Int
- Parameters:
index
- the value index, must be>=0
and<getNumDataElems()
-
setElems
public void setElems(Object data)
Sets the data of this value. The data must be an array of the typeint[]
orString[]
and have a length that is equal to the value returned by thegetNumDataElems
method.- Overrides:
setElems
in classProductData.Int
- Parameters:
data
- the data array- Throws:
IllegalArgumentException
- if data isnull
or it is not an array of the required type or does not have the required array length.
-
-