}
} else if (owningProperty.isArray()) {
elementType = owningProperty.getType().getComponentType();
try {
int index = Integer.valueOf(elementPropertyExpression);
elementProperty = new ArrayElementProperty(index, elementType, null);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("'" + p + "' is not a valid element property for " + type);
}
} else {
throw new IllegalArgumentException("'" + p + "' is not a valid element property for " + type);