Interface DataType<T>

All Superinterfaces:
Comparator<T>
All Known Implementing Classes:
BasicDataType, ByteArrayDataType, LobStorageMap.BlobMeta.Type, LobStorageMap.BlobReference.Type, LongDataType, MetaType, MVStoreTool.GenericDataType, NullValueDataType, ObjectDataType, ObjectDataType.AutoDetectDataType, ObjectDataType.BigDecimalType, ObjectDataType.BigIntegerType, ObjectDataType.BooleanType, ObjectDataType.ByteType, ObjectDataType.CharacterType, ObjectDataType.DateType, ObjectDataType.DoubleType, ObjectDataType.FloatType, ObjectDataType.IntegerType, ObjectDataType.LongType, ObjectDataType.NullType, ObjectDataType.ObjectArrayType, ObjectDataType.SerializedObjectType, ObjectDataType.ShortType, ObjectDataType.StringType, ObjectDataType.UUIDType, Record.Type, RowDataType, SpatialDataType, StringDataType, ValueDataType, VersionedValueType

public interface DataType<T> extends Comparator<T>
A data type.
  • Method Details

    • compare

      int compare(T a, T b)
      Compare two keys.
      Specified by:
      compare in interface Comparator<T>
      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:
      UnsupportedOperationException - if the type is not orderable
    • binarySearch

      int binarySearch(T key, Object storage, int size, int initialGuess)
      Perform binary search for the key within the storage
      Parameters:
      key - to search for
      storage - to search within (an array of type T)
      size - number of data items in the storage
      initialGuess - for key position
      Returns:
      index of the key , if found, - index of the insertion point, if not
    • getMemory

      int getMemory(T obj)
      Calculates the amount of used memory in bytes.
      Parameters:
      obj - the object
      Returns:
      the used memory
    • isMemoryEstimationAllowed

      boolean isMemoryEstimationAllowed()
      Whether memory estimation based on previously seen values is allowed/desirable
      Returns:
      true if memory estimation is allowed
    • write

      void write(WriteBuffer buff, T obj)
      Write an object.
      Parameters:
      buff - the target buffer
      obj - the value
    • write

      void write(WriteBuffer buff, Object storage, int len)
      Write a list of objects.
      Parameters:
      buff - the target buffer
      storage - the objects
      len - the number of objects to write
    • read

      T read(ByteBuffer buff)
      Read an object.
      Parameters:
      buff - the source buffer
      Returns:
      the object
    • read

      void read(ByteBuffer buff, Object storage, int len)
      Read a list of objects.
      Parameters:
      buff - the target buffer
      storage - the objects
      len - the number of objects to read
    • createStorage

      T[] createStorage(int size)
      Create storage object of array type to hold values
      Parameters:
      size - number of values to hold
      Returns:
      storage object