@Override
 public void serializeNative(UUID object, byte[] stream, int startPosition, Object... hints) {
   OLongSerializer.INSTANCE.serializeNative(
       object.getMostSignificantBits(), stream, startPosition, hints);
   OLongSerializer.INSTANCE.serializeNative(
       object.getLeastSignificantBits(), stream, startPosition + OLongSerializer.LONG_SIZE, hints);
 }
 @Override
 public UUID deserialize(byte[] stream, int startPosition) {
   Long mostSignificantBits = OLongSerializer.INSTANCE.deserialize(stream, startPosition);
   Long leastSignificantBits =
       OLongSerializer.INSTANCE.deserialize(stream, startPosition + OLongSerializer.LONG_SIZE);
   return new UUID(mostSignificantBits, leastSignificantBits);
 }
 @Override
 public void serializeInDirectMemory(
     UUID object, ODirectMemoryPointer pointer, long offset, Object... hints) {
   OLongSerializer.INSTANCE.serializeInDirectMemory(
       object.getMostSignificantBits(), pointer, offset, hints);
   OLongSerializer.INSTANCE.serializeInDirectMemory(
       object.getLeastSignificantBits(), pointer, offset + OLongSerializer.LONG_SIZE, hints);
 }
 @Override
 public UUID deserializeFromDirectMemory(ODirectMemoryPointer pointer, long offset) {
   Long mostSignificantBits =
       OLongSerializer.INSTANCE.deserializeFromDirectMemory(pointer, offset);
   Long leastSignificantBits =
       OLongSerializer.INSTANCE.deserializeFromDirectMemory(
           pointer, offset + OLongSerializer.LONG_SIZE);
   return new UUID(mostSignificantBits, leastSignificantBits);
 }
 public Double deserialize(byte[] stream, int startPosition) {
   return Double.longBitsToDouble(OLongSerializer.INSTANCE.deserialize(stream, startPosition));
 }
 public void serialize(Double object, byte[] stream, int startPosition) {
   OLongSerializer.INSTANCE.serialize(Double.doubleToLongBits(object), stream, startPosition);
 }
 @Override
 public boolean isFixedLength() {
   return OLongSerializer.INSTANCE.isFixedLength();
 }