public Iterator iterator()

in src/main/java/org/apache/sling/commons/jcr/file/internal/JcrDirectoryStream.java [70:110]


    public Iterator<Path> iterator() {
        logger.info("iterator for {}", directory);

        final Set<String> paths = new HashSet<>();

        try {
            final NodeIterator nodes = node.getNodes();
            while (nodes.hasNext()) {
                final Node node = nodes.nextNode();
                if (fileSystem.provider().isDirectory(node) || fileSystem.provider().isFile(node)) {
                    final String path = node.getPath();
                    paths.add(path);
                    logger.info("node {} added", path);
                }
            }
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }

        return new Iterator<Path>() {

            final Iterator<String> iterator = paths.iterator();

            @Override
            public boolean hasNext() {
                return iterator.hasNext();
            }

            @Override
            public Path next() {
                return new JcrPath(fileSystem, iterator.next());
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException();
            }

        };

    }