Class WrappedIterator<T>

    • Method Detail

      • create

        public static <T> ExtendedIterator<T> create​(java.util.Iterator<T> it)
        Answer an ExtendedIterator returning the elements of it. If it is itself an ExtendedIterator, return that; otherwise wrap it.
      • createNoRemove

        public static <T> WrappedIterator<T> createNoRemove​(java.util.Iterator<T> it)
        Answer an ExtendedIterator wrapped round it which does not permit .remove() even if it does.
      • ofStream

        public static <T> WrappedIterator<T> ofStream​(java.util.stream.Stream<T> stream)
        Answer an ExtendedIterator wrapped round a Stream. The extended iterator does not permit .remove().

        The stream should not be used directly. The effect of doing so is undefined.

      • createIteratorIterator

        public static <T> ExtendedIterator<T> createIteratorIterator​(java.util.Iterator<java.util.Iterator<T>> it)
        Given an Iterator that returns Iterator's, this creates an Iterator over the next level values. Similar to list splicing in lisp.
      • forTestingOnly_getBase

        public java.util.Iterator<? extends T> forTestingOnly_getBase()
      • hasNext

        public boolean hasNext()
        hasNext: defer to the base iterator
        Specified by:
        hasNext in interface java.util.Iterator<T>
        Overrides:
        hasNext in class NiceIterator<T>
      • next

        public T next()
        next: defer to the base iterator
        Specified by:
        next in interface java.util.Iterator<T>
        Overrides:
        next in class NiceIterator<T>
      • remove

        public void remove()
        if .remove() is allowed, delegate to the base iterator's .remove; otherwise, throw an UnsupportedOperationException.
        Specified by:
        remove in interface java.util.Iterator<T>
        Overrides:
        remove in class NiceIterator<T>
      • close

        public static void close​(java.util.Iterator<?> it)
        if it is a Closableiterator, close it. Abstracts away from tests [that were] scattered through the code.