}
@ToDo(Priority.MEDIUM)
public PropertyInformation extract(FacesContext facesContext, Object object)
{
PropertyInformation propertyInformation = new DefaultPropertyInformation();
//should never occur
if (!(object instanceof UIComponent))
{
if(this.logger.isWarnEnabled() && object != null)
{
this.logger.warn(object.getClass() + " is no valid component");
}
return propertyInformation;
}
UIComponent uiComponent = (UIComponent) object;
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;