ivalue = retrieveObjectType(obj, props[0]).newInstance();
}
setObjectValue(obj, props[0], ivalue);
setObjectValue(ivalue, property.substring(props[0].length()+1), value);
} catch (Exception e) {
throw new InvalidImplementationException("Failed to set value for "+property, e);
}
} else {
// let's get the object value directly
try {
Method method = obj.getClass().getMethod(getSetterMethodName(property), retrieveObjectType(obj, property));
method.invoke(obj, value);
} catch (Exception e) {
throw new InvalidImplementationException("Failed to retrieve value for "+property, e);
}
}
}