public static Object convert()

in dbus-java/src/main/java/org/freedesktop/dbus/ArrayFrob.java [125:186]


    public static Object convert(Object o, Class<? extends Object> c) throws IllegalArgumentException {
        /* Possible Conversions:
         *
         ** List<Integer> -> List<Integer>
         ** List<Integer> -> int[]
         ** List<Integer> -> Integer[]
         ** int[] -> int[]
         ** int[] -> List<Integer>
         ** int[] -> Integer[]
         ** Integer[] -> Integer[]
         ** Integer[] -> int[]
         ** Integer[] -> List<Integer>
         */
        try {
            // List<Integer> -> List<Integer>
            if (List.class.equals(c) && o instanceof List) {
                return o;
            }

            // int[] -> List<Integer>
            // Integer[] -> List<Integer>
            if (List.class.equals(c) && o.getClass().isArray()) {
                return listify(o);
            }

            // int[] -> int[]
            // Integer[] -> Integer[]
            if (o.getClass().isArray() && c.isArray() && o.getClass().getComponentType().equals(c.getComponentType())) {
                return o;
            }

            // int[] -> Integer[]
            if (o.getClass().isArray() && c.isArray() && o.getClass().getComponentType().isPrimitive()) {
                return wrap(o);
            }

            // Integer[] -> int[]
            if (o.getClass().isArray() && c.isArray() && c.getComponentType().isPrimitive()) {
                return unwrap((Object[]) o);
            }

            // List<Integer> -> int[]
            if (o instanceof List && c.isArray() && c.getComponentType().isPrimitive()) {
                return delistprimitive((List<Object>) o, (Class<Object>) c.getComponentType());
            }

            // List<Integer> -> Integer[]
            if (o instanceof List && c.isArray()) {
                return delist((List<Object>) o, (Class<Object>) c.getComponentType());
            }

            if (o.getClass().isArray() && c.isArray()) {
                return type((Object[]) o, (Class<Object>) c.getComponentType());
            }

        } catch (Exception e) {
            LoggerFactory.getLogger(ArrayFrob.class).debug("Cannot convert object.", e);
            throw new IllegalArgumentException(e);
        }

        throw new IllegalArgumentException(String.format("Not An Expected Convertion type from %s to %s", o.getClass(), c));
    }