in src/main/java/org/apache/sling/mongodb/impl/ReadableValueMap.java [179:204]
private <T> T convertToType(final Object obj, final Class<T> type) {
// todo: do smarter checks
try {
if (obj == null) {
return null;
} else if (type.isAssignableFrom(obj.getClass())) {
return (T) obj;
} else if (type.isArray()) {
return (T) convertToArray(obj, type.getComponentType());
} else if (type == String.class) {
return (T) String.valueOf(obj);
} else if (type == Integer.class) {
return (T) (Integer) Integer.parseInt(obj.toString());
} else if (type == Long.class) {
return (T) (Long) Long.parseLong(obj.toString());
} else if (type == Double.class) {
return (T) (Double) Double.parseDouble(obj.toString());
} else if (type == Boolean.class) {
return (T) (Boolean) Boolean.parseBoolean(obj.toString());
} else {
return null;
}
} catch (final NumberFormatException e) {
return null;
}
}