protected Option getElement()

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