# Class DataBufferUShort

java.lang.Object
java.awt.image.DataBuffer
java.awt.image.DataBufferUShort

public final class DataBufferUShort extends DataBuffer
This class extends `DataBuffer` and stores data internally as shorts. Values stored in the short array(s) of this `DataBuffer` are treated as unsigned values.

Note that some implementations may function more efficiently if they can maintain control over how the data for an image is stored. For example, optimizations such as caching an image in video memory require that the implementation track all modifications to that data. Other implementations may operate better if they can store the data in locations other than a Java array. To maintain optimum compatibility with various optimizations it is best to avoid constructors and methods which expose the underlying storage as a Java array as noted below in the documentation for those methods.

## Field Summary

### Fields declared in class DataBuffer

`banks, dataType, offset, offsets, size, TYPE_BYTE, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT, TYPE_SHORT, TYPE_UNDEFINED, TYPE_USHORT`
Modifier and Type
Field
Description
`protected int`
`banks`
The number of banks in this DataBuffer.
`protected int`
`dataType`
The data type of this DataBuffer.
`protected int`
`offset`
Offset into default (first) bank from which to get the first element.
`protected int[]`
`offsets`
Offsets into all banks.
`protected int`
`size`
Usable size of all banks.
`static final int`
`TYPE_BYTE`
Tag for unsigned byte data.
`static final int`
`TYPE_DOUBLE`
Tag for double data.
`static final int`
`TYPE_FLOAT`
Tag for float data.
`static final int`
`TYPE_INT`
Tag for int data.
`static final int`
`TYPE_SHORT`
Tag for signed short data.
`static final int`
`TYPE_UNDEFINED`
Tag for undefined data.
`static final int`
`TYPE_USHORT`
Tag for unsigned short data.

## Constructor Summary

Constructors
Constructor
Description
`DataBufferUShort(int size)`
Constructs an unsigned-short based `DataBuffer` with a single bank and the specified size.
`DataBufferUShort(int size, int numBanks)`
Constructs an unsigned-short based `DataBuffer` with the specified number of banks, all of which are the specified size.
`DataBufferUShort(short[][] dataArray, int size)`
Constructs an unsigned-short based `DataBuffer` with the specified arrays.
`DataBufferUShort(short[][] dataArray, int size, int[] offsets)`
Constructs an unsigned-short based `DataBuffer` with specified arrays, size, and offsets.
`DataBufferUShort(short[] dataArray, int size)`
Constructs an unsigned-short based `DataBuffer` with a single bank using the specified array.
`DataBufferUShort(short[] dataArray, int size, int offset)`
Constructs an unsigned-short based `DataBuffer` with a single bank using the specified array, size, and offset.

## Method Summary

Modifier and Type
Method
Description
`short[][]`
`getBankData()`
Returns the data arrays for all banks.
`short[]`
`getData()`
Returns the default (first) unsigned-short data array.
`short[]`
`getData(int bank)`
Returns the data array for the specified bank.
`int`
`getElem(int i)`
Returns the requested data array element from the first (default) bank.
`int`
`getElem(int bank, int i)`
Returns the requested data array element from the specified bank.
`void`
`setElem(int i, int val)`
Sets the requested data array element in the first (default) bank to the specified value.
`void`
`setElem(int bank, int i, int val)`
Sets the requested data array element in the specified bank from the given integer.

### Methods declared in class DataBuffer

`getDataType, getDataTypeSize, getElemDouble, getElemDouble, getElemFloat, getElemFloat, getNumBanks, getOffset, getOffsets, getSize, setElemDouble, setElemDouble, setElemFloat, setElemFloat`
Modifier and Type
Method
Description
`int`
`getDataType()`
Returns the data type of this DataBuffer.
`static int`
`getDataTypeSize(int type)`
Returns the size (in bits) of the data type, given a datatype tag.
`double`
`getElemDouble(int i)`
Returns the requested data array element from the first (default) bank as a double.
`double`
`getElemDouble(int bank, int i)`
Returns the requested data array element from the specified bank as a double.
`float`
`getElemFloat(int i)`
Returns the requested data array element from the first (default) bank as a float.
`float`
`getElemFloat(int bank, int i)`
Returns the requested data array element from the specified bank as a float.
`int`
`getNumBanks()`
Returns the number of banks in this DataBuffer.
`int`
`getOffset()`
Returns the offset of the default bank in array elements.
`int[]`
`getOffsets()`
Returns the offsets (in array elements) of all the banks.
`int`
`getSize()`
Returns the size (in array elements) of all banks.
`void`
`setElemDouble(int i, double val)`
Sets the requested data array element in the first (default) bank from the given double.
`void`
`setElemDouble(int bank, int i, double val)`
Sets the requested data array element in the specified bank from the given double.
`void`
`setElemFloat(int i, float val)`
Sets the requested data array element in the first (default) bank from the given float.
`void`
`setElemFloat(int bank, int i, float val)`
Sets the requested data array element in the specified bank from the given float.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### DataBufferUShort

public DataBufferUShort(int size)
Constructs an unsigned-short based `DataBuffer` with a single bank and the specified size.

Parameters:
  `size` - The size of the `DataBuffer`.
Throws:
  `IllegalArgumentException` - if `size` is less than or equal to zero.

### DataBufferUShort

public DataBufferUShort(int size, int numBanks)
Constructs an unsigned-short based `DataBuffer` with the specified number of banks, all of which are the specified size.

Parameters:
  `size` - The size of the banks in the `DataBuffer`.
  `numBanks` - The number of banks in the `DataBuffer`.
Throws:
  `IllegalArgumentException` - if `size` or `numBanks` is less than or equal to zero.

### DataBufferUShort

public DataBufferUShort(short[] dataArray, int size)
Constructs an unsigned-short based `DataBuffer` with a single bank using the specified array. Only the first `size` elements should be used by accessors of this `DataBuffer`. `dataArray` must be large enough to hold `size` elements.

Note that `DataBuffer` objects created by this constructor may be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Parameters:
  `dataArray` - The unsigned-short array for the `DataBuffer`.
  `size` - The size of the `DataBuffer` bank.
Throws:
  `NullPointerException` - if `dataArray` is `null`.
  `IllegalArgumentException` - if `size` is less than or equal to zero, or is greater than the length of `dataArray`.

### DataBufferUShort

public DataBufferUShort(short[] dataArray, int size, int offset)
Constructs an unsigned-short based `DataBuffer` with a single bank using the specified array, size, and offset. `dataArray` must have at least `offset` + `size` elements. Only elements `offset` through `offset` + `size` - 1 should be used by accessors of this `DataBuffer`.

Note that `DataBuffer` objects created by this constructor may be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Parameters:
  `dataArray` - The unsigned-short array for the `DataBuffer`.
  `size` - The size of the `DataBuffer` bank.
  `offset` - The offset into the `dataArray`.
Throws:
  `NullPointerException` - if `dataArray` is `null`.
  `IllegalArgumentException` - if `size` is less than or equal to zero, or `offset` is less than zero, or `(offset + size)` is greater than the length of `dataArray`.

### DataBufferUShort

public DataBufferUShort(short[][] dataArray, int size)
Constructs an unsigned-short based `DataBuffer` with the specified arrays. The number of banks will be equal to `dataArray.length`. Only the first `size` elements of each array should be used by accessors of this `DataBuffer`.

Note that `DataBuffer` objects created by this constructor may be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Parameters:
  `dataArray` - The unsigned-short arrays for the `DataBuffer`.
  `size` - The size of the banks in the `DataBuffer`.
Throws:
  `NullPointerException` - if `dataArray` is `null`.
  `IllegalArgumentException` - if `size` is less than or equal to zero.
  `IllegalArgumentException` - if `dataArray` does not have at least one bank.
  `NullPointerException` - if any bank of `dataArray` is `null`.
  `IllegalArgumentException` - if the length of any bank of `dataArray` is less than `size`.

### DataBufferUShort

public DataBufferUShort(short[][] dataArray, int size, int[] offsets)
Constructs an unsigned-short based `DataBuffer` with specified arrays, size, and offsets. The number of banks is equal to `dataArray.length`. Each array must be at least as large as `size` + the corresponding offset. There must be an entry in the offset array for each `dataArray` entry. For each bank, only elements `offset` through `offset` + `size` - 1 should be used by accessors of this `DataBuffer`.

Note that `DataBuffer` objects created by this constructor may be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Parameters:
  `dataArray` - The unsigned-short arrays for the `DataBuffer`.
  `size` - The size of the banks in the `DataBuffer`.
  `offsets` - The offsets into each array.
Throws:
  `IllegalArgumentException` - if `size` is less than or equal to zero.
  `NullPointerException` - if `dataArray` is `null`.
  `NullPointerException` - if any bank of `dataArray` is `null`.
  `IllegalArgumentException` - if `dataArray` does not have at least one bank.
  `NullPointerException` - if `offsets` is `null`.
  `IllegalArgumentException` - if any element of `offsets` is less than zero.
  `ArrayIndexOutOfBoundsException` - if the lengths of `dataArray` and `offsets` differ.
  `IllegalArgumentException` - if the length of any bank of `dataArray` is less than `(size + offsets[bankIndex])`.

## Method Details

### getData

public short[] getData()
Returns the default (first) unsigned-short data array.

Note that calling this method may cause this `DataBuffer` object to be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Returns:
  The first unsigned-short data array.

### getData

public short[] getData(int bank)
Returns the data array for the specified bank.

Note that calling this method may cause this `DataBuffer` object to be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Parameters:
  `bank` - The bank whose data array you want to get.
Returns:
  The data array for the specified bank.
Throws:
  `ArrayIndexOutOfBoundsException` - if `bank` is not a valid bank index.

### getBankData

public short[][] getBankData()
Returns the data arrays for all banks.

Note that calling this method may cause this `DataBuffer` object to be incompatible with performance optimizations used by some implementations (such as caching an associated image in video memory).

Returns:
  All of the data arrays.

### getElem

public int getElem(int i)
Returns the requested data array element from the first (default) bank.

Overrides:
  `getElem` in class `DataBuffer`
Parameters:
  `i` - The data array element you want to get.
Returns:
  The requested data array element as an integer.
Throws:
  `ArrayIndexOutOfBoundsException` - if `(i + getOffset())` is not a valid index.
See Also:
  - `setElem(int, int)`
  - `setElem(int, int, int)`

### getElem

public int getElem(int bank, int i)
Returns the requested data array element from the specified bank.

Specified by:
  `getElem` in class `DataBuffer`
Parameters:
  `bank` - The bank from which you want to get a data array element.
  `i` - The data array element you want to get.
Returns:
  The requested data array element as an integer.
Throws:
  `ArrayIndexOutOfBoundsException` - if `bank` is not a valid bank index, or `(i + getOffsets()[bank])` is not a valid index into the bank.
See Also:
  - `setElem(int, int)`
  - `setElem(int, int, int)`

### setElem

public void setElem(int i, int val)
Sets the requested data array element in the first (default) bank to the specified value.

Overrides:
  `setElem` in class `DataBuffer`
Parameters:
  `i` - The data array element you want to set.
  `val` - The integer value to which you want to set the data array element.
Throws:
  `ArrayIndexOutOfBoundsException` - if `(i + getOffset())` is not a valid index.
See Also:
  - `getElem(int)`
  - `getElem(int, int)`

### setElem

public void setElem(int bank, int i, int val)
Sets the requested data array element in the specified bank from the given integer.

Specified by:
  `setElem` in class `DataBuffer`
Parameters:
  `bank` - The bank in which you want to set the data array element.
  `i` - The data array element you want to set.
  `val` - The integer value to which you want to set the specified data array element.
Throws:
  `ArrayIndexOutOfBoundsException` - if `bank` is not a valid bank index, or `(i + getOffsets()[bank])` is not a valid index into the bank.
See Also:
  - `getElem(int)`
  - `getElem(int, int)`