in src/main/java/org/apache/commons/beanutils2/expression/DefaultResolver.java [63:91]
public int getIndex(final String expression) {
if (expression == null || expression.isEmpty()) {
return -1;
}
for (int i = 0; i < expression.length(); i++) {
final char c = expression.charAt(i);
if (c == NESTED || c == MAPPED_START) {
return -1;
}
if (c == INDEXED_START) {
final int end = expression.indexOf(INDEXED_END, i);
if (end < 0) {
throw new IllegalArgumentException("Missing End Delimiter");
}
final String value = expression.substring(i + 1, end);
if (value.isEmpty()) {
throw new IllegalArgumentException("No Index Value");
}
int index = 0;
try {
index = Integer.parseInt(value, 10);
} catch (final Exception e) {
throw new IllegalArgumentException("Invalid index value '" + value + "'");
}
return index;
}
}
return -1;
}