in src/main/java/org/apache/sling/query/impl/iterator/ExpandingIterator.java [47:64]
protected Option<T> getElement() {
if (currentIterator != null && currentIterator.hasNext()) {
return Option.of(currentIterator.next(), parentElement.getArgumentId());
}
while (parentIterator.hasNext()) {
parentElement = parentIterator.next();
if (parentElement.isEmpty()) {
return parentElement;
}
currentIterator = function.apply(parentElement.getElement());
if (currentIterator.hasNext()) {
return getElement();
} else {
return Option.empty(parentElement.getArgumentId());
}
}
return null;
}