Package org.h2.mvstore.type

# Class ObjectDataType

java.lang.Object
org.h2.mvstore.type.BasicDataType<Object>
org.h2.mvstore.type.ObjectDataType

All Implemented Interfaces:
  `Comparator<Object>`, `DataType<Object>`

public class ObjectDataType extends BasicDataType<Object>
A data type implementation for the most common data types, including serializable objects.

## Constructor Summary

Constructors
Constructor
Description
`ObjectDataType()`

## Method Summary

Modifier and Type
Method
Description
`int`
`compare(Object a, Object b)`
Compare two keys.
`static int`
`compareNotNull(byte[] data1, byte[] data2)`
Compare the contents of two byte arrays.
`Object[]`
`createStorage(int size)`
Create storage object of array type to hold values
`static Object`
`deserialize(byte[] data)`
De-serialize the byte array to an object.
`int`
`getMemory(Object obj)`
Calculates the amount of used memory in bytes.
`Object`
`read(ByteBuffer buff)`
Read an object.
`static byte[]`
`serialize(Object obj)`
Serialize the object to a byte array.
`void`
`write(WriteBuffer buff, Object obj)`
Write an object.

### Methods inherited from class org.h2.mvstore.type.BasicDataType

`binarySearch, cast, equals, hashCode, isMemoryEstimationAllowed, read, write`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.Comparator

`reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

## Constructor Details

### ObjectDataType

public ObjectDataType()

## Method Details

### createStorage

public Object[] createStorage(int size)
Description copied from interface: `DataType`
Create storage object of array type to hold values

Parameters:
  `size` - number of values to hold
Returns:
  storage object

### compare

public int compare(Object a, Object b)
Description copied from interface: `DataType`
Compare two keys.

Specified by:
  `compare` in interface `Comparator<Object>`
Specified by:
  `compare` in interface `DataType<Object>`
Overrides:
  `compare` in class `BasicDataType<Object>`
Parameters:
  `a` - the first key
  `b` - the second key
Returns:
  -1 if the first key is smaller, 1 if larger, and 0 if equal

### getMemory

public int getMemory(Object obj)
Description copied from interface: `DataType`
Calculates the amount of used memory in bytes.

Specified by:
  `getMemory` in interface `DataType<Object>`
Specified by:
  `getMemory` in class `BasicDataType<Object>`
Parameters:
  `obj` - the object
Returns:
  the used memory

### write

public void write(WriteBuffer buff, Object obj)
Description copied from interface: `DataType`
Write an object.

Specified by:
  `write` in interface `DataType<Object>`
Specified by:
  `write` in class `BasicDataType<Object>`
Parameters:
  `buff` - the target buffer
  `obj` - the value

### read

public Object read(ByteBuffer buff)
Description copied from interface: `DataType`
Read an object.

Specified by:
  `read` in interface `DataType<Object>`
Specified by:
  `read` in class `BasicDataType<Object>`
Parameters:
  `buff` - the source buffer
Returns:
  the object

### serialize

public static byte[] serialize(Object obj)
Serialize the object to a byte array.

Parameters:
  `obj` - the object to serialize
Returns:
  the byte array

### deserialize

public static Object deserialize(byte[] data)
De-serialize the byte array to an object.

Parameters:
  `data` - the byte array
Returns:
  the object

### compareNotNull

public static int compareNotNull(byte[] data1, byte[] data2)
Compare the contents of two byte arrays. If the content or length of the first array is smaller than the second array, -1 is returned. If the content or length of the second array is smaller than the first array, 1 is returned. If the contents and lengths are the same, 0 is returned.

This method interprets bytes as unsigned.

Parameters:
  `data1` - the first byte array (must not be null)
  `data2` - the second byte array (must not be null)
Returns:
  the result of the comparison (-1, 1 or 0)