private int handleForClass(Class<?> cl) {
        if (cl.isArray()) {
            return CLASS_ARRAY;
        }
        int from, to;
        if (cl.isPrimitive()) {
            from = TYPE_NULL;
            to = TYPE_DOUBLE;
        } else {
            from = CLASS_BOOLEAN;
            to = CLASSES.length;
        }
        for (int index = from; index < to; index++) {
            if (CLASSES[index] == cl)
                return index;
        }
        return handleForIndexedClass(cl);
    }