public final enum

ComparatorType

extends Enum<E extends Enum<E>>
package com.netflix.astyanax.serializers;

import com.netflix.astyanax.*;

/**
 * @author: peter
 */
public enum ComparatorType {

    ASCIITYPE("org.apache.cassandra.db.marshal.AsciiType", AsciiSerializer.get()), BYTESTYPE(
            "org.apache.cassandra.db.marshal.BytesType", ByteBufferSerializer.get()), INTEGERTYPE(
            "org.apache.cassandra.db.marshal.IntegerType", IntegerSerializer.get()), LEXICALUUIDTYPE(
            "org.apache.cassandra.db.marshal.LexicalUUIDType", UUIDSerializer.get()), LOCALBYPARTITIONERTYPE(
            "org.apache.cassandra.db.marshal.LocalByPartionerType", ByteBufferSerializer.get()), // FIXME
    LONGTYPE("org.apache.cassandra.db.marshal.LongType", LongSerializer.get()), TIMEUUIDTYPE(
            "org.apache.cassandra.db.marshal.TimeUUIDType", TimeUUIDSerializer.get()), UTF8TYPE(
            "org.apache.cassandra.db.marshal.UTF8Type", StringSerializer.get()), COMPOSITETYPE(
            "org.apache.cassandra.db.marshal.CompositeType", CompositeSerializer.get()), DYNAMICCOMPOSITETYPE(
            "org.apache.cassandra.db.marshal.DynamicCompositeType", DynamicCompositeSerializer.get()), UUIDTYPE(
            "org.apache.cassandra.db.marshal.UUIDType", UUIDSerializer.get()), COUNTERTYPE(
            "org.apache.cassandra.db.marshal.CounterColumnType", LongSerializer.get()), DOUBLETYPE(
            "org.apache.cassandra.db.marshal.DoubleType", DoubleSerializer.get()), FLOATTYPE(
            "org.apache.cassandra.db.marshal.FloatType", FloatSerializer.get()), BOOLEANTYPE(
            "org.apache.cassandra.db.marshal.BooleanType", BooleanSerializer.get());

    private final String className;
    private final String typeName;
    private final Serializer<?> serializer;

    private ComparatorType(String className, Serializer<?> serializer) {
        this.className = className;
        if (className.startsWith("org.apache.cassandra.db.marshal.")) {
            typeName = className.substring("org.apache.cassandra.db.marshal.".length());
        }
        else {
            typeName = className;
        }
        this.serializer = serializer;
    }

    public String getClassName() {
        return className;
    }

    public String getTypeName() {
        return typeName;
    }

    public Serializer<?> getSerializer() {
        return serializer;
    }

    public static ComparatorType getByClassName(String className) {
        if (className == null) {
            return null;
        }

        for (ComparatorType type : ComparatorType.values()) {
            if (type.getClassName().equals(className)) {
                return type;
            }
            if (type.getClassName().equals("org.apache.cassandra.db.marshal." + className)) {
                return type;
            }
        }
        return null;
    }
}