if(logger.isTraceEnabled())
{
logger.trace("start extracting meta-data of " + uiComponent.getClass().getName());
}
PropertyDetails propertyDetails = ExtValUtils.getELHelper().getPropertyDetailsOfValueBinding(uiComponent);
if (propertyDetails == null)
{
return propertyInformation;
}
/*
* get bean class and property name
*/
Class entityClass = propertyDetails.getBaseObject().getClass();
//create
propertyInformation.setInformation(PropertyInformationKeys.PROPERTY_DETAILS, propertyDetails);
/*
* find and add annotations
*/
Class currentClass = entityClass;
while (!Object.class.getName().equals(currentClass.getName()))
{
addPropertyAccessAnnotations(currentClass, propertyDetails.getProperty(), propertyInformation);
addFieldAccessAnnotations(currentClass, propertyDetails.getProperty(), propertyInformation);
currentClass = currentClass.getSuperclass();
}
for (Class currentInterface : entityClass.getInterfaces())
{
currentClass = currentInterface;
while (currentClass != null)
{
addPropertyAccessAnnotations(currentClass, propertyDetails.getProperty(), propertyInformation);
currentClass = currentClass.getSuperclass();
}
}