// Path: core/src/main/java/com/baoyz/airdata/serializer/ValueSerializer.java
// public interface ValueSerializer<S, D> {
// 
//     Class<S> getSourceClass();
//     Class<D> getDistClass();
// 
//     D serialize(S source);
//     S deserialize(D source);
// }


import com.baoyz.airdata.serializer.ValueSerializer;
import java.util.HashMap;
import javax.lang.model.type.TypeMirror;

    public static boolean isBoolean(TypeMirror type) {
        return "boolean".equals(type.toString());
    }

    public static String getTypeString(TypeMirror type) {
        SQLiteType sqLiteType = TYPE_MAP.get(type.toString());
        if (sqLiteType != null) {
            switch (sqLiteType) {
                case INTEGER:
                    return "INTEGER";
                case REAL:
                    return "REAL";
                case TEXT:
                    return "TEXT";
                case BLOB:
                    return "BLOB";
            }
        }
        return "NULL";
    }

    public static String getCursorMethod(TypeMirror type) {
        return METHOD_MAP.get(type.toString());
    }

    public static boolean isSupport(TypeMirror type) {
        return getCursorMethod(type) != null;
    }

// Path: core/src/main/java/com/baoyz/airdata/serializer/ValueSerializer.java
// public interface ValueSerializer<S, D> {
// 
//     Class<S> getSourceClass();
//     Class<D> getDistClass();
// 
//     D serialize(S source);
//     S deserialize(D source);
// }


// Path: compiler/src/main/java/com/baoyz/airdata/utils/DataType.java
import com.baoyz.airdata.serializer.ValueSerializer;
import java.util.HashMap;
import javax.lang.model.type.TypeMirror;


    public static boolean isBoolean(TypeMirror type) {
        return "boolean".equals(type.toString());
    }

    public static String getTypeString(TypeMirror type) {
        SQLiteType sqLiteType = TYPE_MAP.get(type.toString());
        if (sqLiteType != null) {
            switch (sqLiteType) {
                case INTEGER:
                    return "INTEGER";
                case REAL:
                    return "REAL";
                case TEXT:
                    return "TEXT";
                case BLOB:
                    return "BLOB";
            }
        }
        return "NULL";
    }

    public static String getCursorMethod(TypeMirror type) {
        return METHOD_MAP.get(type.toString());
    }

    public static boolean isSupport(TypeMirror type) {
        return getCursorMethod(type) != null;
    }

    public static ValueSerializer getSerializer(TypeMirror type) {