package me.prettyprint.hom.converters; import me.prettyprint.hector.api.Serializer; import me.prettyprint.hom.HectorObjectMapper; import me.prettyprint.hom.PropertyMappingDefinition; import me.prettyprint.hom.annotations.Column; /** * Default converter used when none specified in {@link Column} annotation. Uses * Java reflection to determine the Java type to use. * * @author Todd Burruss */ public class DefaultConverter implements Converter<Object> { @Override public Object convertCassTypeToObjType(PropertyMappingDefinition md, byte[] value) { Serializer<?> s = HectorObjectMapper.determineSerializer(md.getPropDesc().getPropertyType()); return s.fromBytes(value); } @Override public byte[] convertObjTypeToCassType(Object value) { @SuppressWarnings("unchecked") Serializer<Object> s = (Serializer<Object>) HectorObjectMapper.determineSerializer(value.getClass()); return s.toBytes(value); } }