* @param cl The type of object to convert to
* @return target object type
*/
private static Object convert(FacesContext context, Object obj, Class cl) {
ConverterHelper converterHelper = new ConverterHelper();
// correct target type
if (cl.isInstance(obj)) {
return obj;
}
// target type is String
if (cl == String.class) {
if (obj instanceof String) {
return obj;
} else {
return converterHelper.asString(context, obj.getClass(), obj);
}
}
if (obj instanceof String) {
// String to object
return converterHelper.asObject(context, cl, (String) obj);
} else {
//Object to String
String source = converterHelper.asString(context, obj.getClass(), obj);
// String to Object
return converterHelper.asObject(context, cl, source);
}
}