in ConfigurableFeatureExtractor/src/main/java/org/apache/uima/tools/cfe/TargetObjectMatcher.java [353:382]
private void getMatchedValues (Object[] objs,
List<Object> rootOrderedPath,
String[] features,
int feat_ind,
List<MatchedValue> matchedValues,
List<Object> matchedOrderedPath,
int array_level)
throws IllegalArgumentException, IllegalAccessException, InvocationTargetException
{
String operations[] = feat_ind < features.length ? features[feat_ind].split("\\|") : null;
for (int i = 0; i < objs.length; ++i) {
if (feat_ind == features.length) {
if ((null == objs[i]) || isTargetClassMatches(objs[i].getClass(), false)) {
matchedValues.add(new MatchedValue(objs[i], matchedOrderedPath));
}
continue;
}
if (null == objs[i]) {
continue;
}
matchedOrderedPath.add(objs[i]);
List<Object> mop = (1 == objs.length) ? matchedOrderedPath : new ArrayList<Object>(matchedOrderedPath);
getMatchedValues(objs[i], rootOrderedPath, features, feat_ind, matchedValues, mop, array_level, operations);
if (m_delimit_array_values && (i < (objs.length - 1))) {
matchedValues.add(new MatchedValue(new ArrayDelimiterObject(array_level), mop));
}
}
}