private ListIterator getRewindedIterator()

in src/main/java/org/apache/sling/query/impl/iterator/SiblingsIterator.java [69:89]


    private ListIterator<T> getRewindedIterator(T resource, Type type) {
        String resourceName = provider.getName(resource);
        T parent = provider.getParent(resource);
        Iterator<T> iterator;
        if (parent == null) {
            iterator = IteratorUtils.singleElementIterator(resource);
        } else {
            iterator = provider.listChildren(parent);
        }
        ListIterator<T> listIterator = new LazyList<T>(iterator).listIterator();
        while (listIterator.hasNext()) {
            T sibling = listIterator.next();
            if (provider.getName(sibling).equals(resourceName)) {
                break;
            }
        }
        if (type == Type.PREV) {
            listIterator.previous();
        }
        return listIterator;
    }