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));
}