package me.prettyprint.cassandra.serializers; import java.nio.ByteBuffer; import me.prettyprint.hector.api.Serializer; /** * A serializer that dynamically delegates to a proper serializer based on the * value passed * * @author Bozhidar Bozhanov * * @param <T> type */ public class TypeInferringSerializer<T> extends AbstractSerializer<T> implements Serializer<T> { @SuppressWarnings("rawtypes") private static final TypeInferringSerializer instance = new TypeInferringSerializer(); @SuppressWarnings("unchecked") public static <T> TypeInferringSerializer<T> get() { return instance; } @Override public ByteBuffer toByteBuffer(T obj) { return SerializerTypeInferer.getSerializer(obj).toByteBuffer(obj); } @Override public T fromByteBuffer(ByteBuffer byteBuffer) { throw new IllegalStateException( "The type inferring serializer can only be used for data going to the database, and not data coming from the database"); } }