package me.prettyprint.cassandra.serializers;
import java.nio.ByteBuffer;
import me.prettyprint.cassandra.serializers.AbstractSerializer;
import me.prettyprint.cassandra.serializers.LongSerializer;
/**
* Uses LongSerializer via translating Doubles to and from raw long bytes form.
*
* @author Yuri Finkelstein
*/
public class DoubleSerializer extends AbstractSerializer<Double> {
private static final DoubleSerializer instance = new DoubleSerializer();
public static DoubleSerializer get() {
return instance;
}
@Override
public ByteBuffer toByteBuffer(Double obj) {
if (obj == null) {
return null;
}
return LongSerializer.get().toByteBuffer(Double.doubleToRawLongBits(obj));
}
@Override
public Double fromByteBuffer(ByteBuffer bytes) {
Long l = LongSerializer.get().fromByteBuffer(bytes);
return l == null ? null : Double.longBitsToDouble (l);
}
}