Object base = complexValue.getPrefix()
.evaluate(variableResolver, s_functionMapper,
ELParserHelper.LOGGER);
if (base == null)
{
throw new PropertyNotFoundException("Base is null: "
+ complexValue.getPrefix().getExpressionString());
}
// Resolve and apply the suffixes
List suffixes = complexValue.getSuffixes();
int max = suffixes.size() - 1;
for (int i = 0; i < max; i++)
{
ValueSuffix suffix = (ValueSuffix) suffixes.get(i);
base = suffix.evaluate(base, variableResolver, s_functionMapper,
ELParserHelper.LOGGER);
if (base == null)
{
throw new PropertyNotFoundException("Base is null: "
+ suffix.getExpressionString());
}
}
// Resolve the last suffix
ArraySuffix arraySuffix = (ArraySuffix) suffixes.get(max);
Expression arraySuffixIndex = arraySuffix.getIndex();
Object index;
if (arraySuffixIndex != null)
{
index = arraySuffixIndex.evaluate(
variableResolver, s_functionMapper,
ELParserHelper.LOGGER);
if (index == null)
{
throw new PropertyNotFoundException("Index is null: "
+ arraySuffixIndex.getExpressionString());
}
}
else
{