// Get the property from the bean
// First look to the mapped name
String name = property.getMappedName();
if (name == null)
property.getName();
PropertyInfo propertyInfo = beanInfo.getProperty(name);
Object bean = locateBean(attachment.getName());
Object value = null;
MetaValue mvalue = null;
if(propertyInfo.isReadable() == false)
{
if(log.isTraceEnabled())
log.trace("Skipping get of non-readable property: "+propertyInfo);
return null;
}
try
{
String getterClassName = propertyInfo.getGetter().getDeclaringClass().getName();
if(getterClassName.equals(attachment.getClass().getName()))
mvalue = delegateICF.getValue(beanInfo, property, metaData, attachment);
else
mvalue = delegateICF.getValue(beanInfo, property, metaData, bean);
}
catch(Throwable e)
{
log.debug("Failed to get property value for bean: "+beanInfo.getName()
+", property: "+propertyInfo.getName(), e);
mvalue = metaValueFactory.create(null, propertyInfo.getType());
return mvalue;
}
return mvalue;
}