protected Option getElement()

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());
    }