in core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ValueBindingExpression.java [122:162]
public ValueBindingExpression(String expression)
{
if(!EL_HELPER.isELTermWellFormed(expression))
{
throw new IllegalStateException(expression + " is no valid el-expression");
}
boolean isDynamicBaseAndProperty = expression.lastIndexOf("']") == -1;
int index1 = isDynamicBaseAndProperty ? expression.lastIndexOf("]") : expression.lastIndexOf("']");
int index2 = expression.lastIndexOf(".");
if(index1 > index2)
{
expression = expression.substring(0, index1);
int index3 = findIndexOfStartingBracket(expression);
if(isDynamicBaseAndProperty)
{
this.value = expression.substring(index3 + 1, index1);
}
else
{
this.value = expression.substring(index3 + 2, index1);
}
this.base = new ValueBindingExpression(expression.substring(0, index3) + "}");
this.token = isDynamicBaseAndProperty ? "[" : "['";
}
else if( index2 > index1)
{
this.value = expression.substring(index2 + 1, expression.length() - 1 );
this.base = new ValueBindingExpression(expression.substring(0, index2) + "}");
this.token = ".";
}
else
{
this.value = expression.substring(2, expression.length() - 1);
this.prefix = expression.substring(0, 1);
}
}