//to support local cross-validation (within the same entity)
Map<String, ProcessedInformationEntry> keyToConvertedValueMapping = CrossValidationUtils
.getOrInitKeyToConvertedValueMapping();
ProcessedInformationEntry entry;
PropertyDetails propertyDetails =
ExtValUtils.getELHelper().getPropertyDetailsOfValueBinding(uiComponent);
if(propertyDetails == null)
{
return;
}
entry = new ProcessedInformationEntry();
entry.setBean(propertyDetails.getBaseObject());
entry.setConvertedValue(value);
entry.setComponent(uiComponent);
entry.setClientId(uiComponent.getClientId(FacesContext.getCurrentInstance()));
String key = propertyDetails.getKey();
//for local cross-validation
if (keyToConvertedValueMapping.containsKey(key) &&
keyToConvertedValueMapping.get(key).getBean() != null &&
!keyToConvertedValueMapping.get(key).getBean().equals(entry.getBean()))
{
//for the validation within a complex component e.g. a table
//don't override existing expression (style: #{entry.property}) - make a special mapping
List<ProcessedInformationEntry> furtherEntries =