in src/main/java/org/apache/sling/query/impl/iterator/LastIterator.java [43:67]
protected Option<T> getElement() {
Option<T> candidate = previous;
if (!iterator.hasNext()) {
previous = null;
return candidate;
}
if (candidate == null) {
candidate = iterator.next();
}
while (candidate.isEmpty() && iterator.hasNext()) {
candidate = iterator.next();
}
if (!iterator.hasNext()) {
return candidate;
}
Option<T> next = iterator.next();
while (next.isEmpty() && iterator.hasNext()) {
next = iterator.next();
}
if (!iterator.hasNext() && next.isEmpty()) {
return candidate;
}
previous = next;
return Option.empty(candidate.getArgumentId());
}