Mercurial Hosting > nabble
view src/nabble/model/FilteredNodeIterator.java @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.model; import java.util.NoSuchElementException; import fschmidt.util.java.Filter; public final class FilteredNodeIterator extends NodeIterator<Node> { private final NodeIterator<? extends Node> iter; private final Filter<Node> filter; private Node next = null; public FilteredNodeIterator(NodeIterator<? extends Node> iter,Filter<Node> filter) { this.iter = iter; this.filter = filter; } public boolean hasNext() { while( next == null && iter.hasNext() ) { Node node = iter.next(); if( filter.ok(node) ) next = node; } return next != null; } public Node next() throws NoSuchElementException { if( !hasNext() ) throw new NoSuchElementException(); Node node = next; next = null; return node; } public void close() { iter.close(); } }