Class TraversingIterator

  • All Implemented Interfaces:
    java.util.Iterator

    public class TraversingIterator
    extends java.lang.Object
    implements java.util.Iterator
    An Iterator that iterates over a delegate, and while it encounters an array, a Collection, an Enumeration or a Iterator element, it iterates over it recursively.

    Be aware that hasNext() must read ahead one element.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Stack nest  
      private java.lang.Object nextElement  
      private boolean nextElementRead  
    • Constructor Summary

      Constructors 
      Constructor Description
      TraversingIterator​(java.util.Iterator delegate)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean hasNext()  
      java.lang.Object next()  
      private boolean readNext()
      Reads the next element and stores it in nextElement.
      void remove()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Field Detail

      • nest

        private final java.util.Stack nest
      • nextElement

        private java.lang.Object nextElement
      • nextElementRead

        private boolean nextElementRead
    • Constructor Detail

      • TraversingIterator

        public TraversingIterator​(java.util.Iterator delegate)
    • Method Detail

      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator
      • next

        public java.lang.Object next()
        Specified by:
        next in interface java.util.Iterator
      • readNext

        private boolean readNext()
        Reads the next element and stores it in nextElement.
        Returns:
        false if no more element can be read.
      • remove

        public void remove()
        Specified by:
        remove in interface java.util.Iterator
        Throws:
        java.lang.UnsupportedOperationException - iff the Iterator currently being traversed doesn't support element removal
        See Also:
        Iterator.remove()