public Iterator iterator()

in processor/src/main/java/org/apache/commons/weaver/model/ScanResult.java [128:165]


        public Iterator<W> iterator() {
            final Iterator<W> iter = wrapped.iterator();
            return new Iterator<W>() {
                W next = read();

                private W read() {
                    while (iter.hasNext()) {
                        final W element = iter.next();
                        if (element.isAnnotationPresent(annotationType)) {
                            return element;
                        }
                    }
                    return null;
                }

                @Override
                public boolean hasNext() {
                    return next != null;
                }

                @Override
                public W next() {
                    if (next == null) {
                        throw new NoSuchElementException();
                    }
                    try {
                        return next;
                    } finally {
                        next = read();
                    }
                }

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