in core/src/main/java/org/apache/myfaces/extensions/validator/core/el/FaceletsTaglibExpressionHelper.java [79:138]
private static String createBinding(List<String> expressions, Map<String, String> virtualVars)
{
String currentBinding;
int indexOfBindingDetails;
String[] foundBindingDetails;
String[] bindingDetails;
Map<String, String> addedVirtualNames = new HashMap<String, String>();
for (String entry : expressions)
{
if (entry.startsWith("ValueExpression["))
{
continue;
}
foundBindingDetails = entry.split(" ");
indexOfBindingDetails = findIndexOfBindingDetails(foundBindingDetails);
if (indexOfBindingDetails == -1)
{
return null;
}
bindingDetails = foundBindingDetails[indexOfBindingDetails].split("=");
if (bindingDetails.length < 2)
{
return null;
}
currentBinding = bindingDetails[1];
//to support blanks within a binding with map syntax
if(currentBinding.contains("{") && !currentBinding.contains("}"))
{
currentBinding = addFurtherBindingParts(currentBinding, foundBindingDetails, indexOfBindingDetails);
}
if (currentBinding.contains("}"))
{
//entry for "virtual" facelets beans
if(!addedVirtualNames.containsKey(bindingDetails[0]))
{
addedVirtualNames.put(bindingDetails[0], currentBinding);
}
}
//entry for "virtual" facelets var
if(!(currentBinding.contains("{") || currentBinding.contains("}")))
{
virtualVars.put(bindingDetails[0], bindingDetails[1].substring(1, bindingDetails[1].length()-2));
}
}
String originalBinding = addedVirtualNames.get("value");
originalBinding = originalBinding.substring(originalBinding.indexOf("{") + 1, originalBinding.indexOf("}"));
addedVirtualNames.remove("value");
return tryToTransformToRealBinding(originalBinding, addedVirtualNames, virtualVars);
}