in bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateProperty.java [364:398]
private Object handleContainer(Object o, ContainerElementKey key, String indexOrKey) {
@SuppressWarnings("rawtypes")
final ValueExtractor valueExtractor = validatorContext.getValueExtractors().find(key);
final ObjectWrapper<Object> result = new ObjectWrapper<>();
valueExtractor.extractValues(o, new ValueReceiver() {
@Override
public void indexedValue(String nodeName, int index, Object object) {
if (Integer.toString(index).equals(indexOrKey)) {
result.accept(object);
}
}
@Override
public void iterableValue(String nodeName, Object object) {
// ?
result.accept(object);
}
@Override
public void keyedValue(String nodeName, Object key, Object object) {
if (String.valueOf(key).equals(indexOrKey)) {
result.accept(object);
}
}
@Override
public void value(String nodeName, Object object) {
// ?
result.accept(object);
}
});
return result.get();
}