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.
  • Field Details

  • 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
    • newType

      private ObjectDataType.AutoDetectDataType<Object> newType(int typeId)
    • selectDataType

      private ObjectDataType.AutoDetectDataType selectDataType(int typeId)
    • 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
    • getTypeId

      private static int getTypeId(Object obj)
    • switchType

      Switch the last remembered type to match the type of the given object.
      Parameters:
      obj - the object
      Returns:
      the auto-detected type used
    • isBigInteger

      static boolean isBigInteger(Object obj)
      Check whether this object is a BigInteger.
      Parameters:
      obj - the object
      Returns:
      true if yes
    • isBigDecimal

      static boolean isBigDecimal(Object obj)
      Check whether this object is a BigDecimal.
      Parameters:
      obj - the object
      Returns:
      true if yes
    • isDate

      static boolean isDate(Object obj)
      Check whether this object is a date.
      Parameters:
      obj - the object
      Returns:
      true if yes
    • isArray

      static boolean isArray(Object obj)
      Check whether this object is an array.
      Parameters:
      obj - the object
      Returns:
      true if yes
    • 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)