All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.archinnov.achilles.serializer.ThriftEnumSerializer Maven / Gradle / Ivy

package info.archinnov.achilles.serializer;

import static info.archinnov.achilles.serializer.ThriftSerializerUtils.*;
import static me.prettyprint.hector.api.ddl.ComparatorType.*;
import java.nio.ByteBuffer;
import me.prettyprint.cassandra.serializers.AbstractSerializer;
import me.prettyprint.hector.api.ddl.ComparatorType;

public class ThriftEnumSerializer> extends AbstractSerializer> {

    private Class type;

    public ThriftEnumSerializer(Class type) {
        this.type = type;
    }

    @Override
    public ByteBuffer toByteBuffer(Enum enumInstance) {
        if (enumInstance == null) {
            return null;
        }
        return STRING_SRZ.toByteBuffer(enumInstance.name());
    }

    @Override
    public Enum fromByteBuffer(ByteBuffer byteBuffer) {

        String enumName = STRING_SRZ.fromByteBuffer(byteBuffer);
        return Enum.valueOf(type, enumName);
    }

    @Override
    public ComparatorType getComparatorType() {
        return UTF8TYPE;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy