org.h2.mvstore.type

## Interface DataType

All Known Implementing Classes:
  ObjectDataType, RowDataType, SpatialDataType, StringDataType, TransactionStore.ArrayType, TransactionStore.VersionedValueType, ValueDataType

    public interface DataType

A data type.

### Method Summary

Methods
`int` `compare(java.lang.Object a, java.lang.Object b)` Compare two keys.
`int` `getMemory(java.lang.Object obj)` Estimate the used memory in bytes.
`java.lang.Object` `read(java.nio.ByteBuffer buff)` Read an object.
`void` `read(java.nio.ByteBuffer buff, java.lang.Object[] obj, int len, boolean key)` Read a list of objects.
`void` `write(WriteBuffer buff, java.lang.Object obj)` Write an object.
`void` `write(WriteBuffer buff, java.lang.Object[] obj, int len, boolean key)` Write a list of objects.

### Method Detail

#### compare

    int compare(java.lang.Object a,
              java.lang.Object b)

Compare two keys.

Parameters:
  `a` - the first key
  `b` - the second key
Returns:
  -1 if the first key is smaller, 1 if larger, and 0 if equal
Throws:
  `java.lang.UnsupportedOperationException` - if the type is not orderable

#### getMemory

    int getMemory(java.lang.Object obj)

Estimate the used memory in bytes.

Parameters:
  `obj` - the object
Returns:
  the used memory

#### write

    void write(WriteBuffer buff,
             java.lang.Object obj)

Write an object.

Parameters:
  `buff` - the target buffer
  `obj` - the value

#### write

    void write(WriteBuffer buff,
             java.lang.Object[] obj,
             int len,
             boolean key)

Write a list of objects.

Parameters:
  `buff` - the target buffer
  `obj` - the objects
  `len` - the number of objects to write
  `key` - whether the objects are keys

#### read

    java.lang.Object read(java.nio.ByteBuffer buff)

Read an object.

Parameters:
  `buff` - the source buffer
Returns:
  the object

#### read

    void read(java.nio.ByteBuffer buff,
            java.lang.Object[] obj,
            int len,
            boolean key)

Read a list of objects.

Parameters:
  `buff` - the target buffer
  `obj` - the objects
  `len` - the number of objects to read
  `key` - whether the objects are keys