Class ExpandingSubLevelIterator<T1,​T2>

  • Type Parameters:
    T1 - type of input objects of the main iterator
    T2 - type of output objects and of the sub level iterators
    All Implemented Interfaces:
    java.util.Iterator<T2>

    public final class ExpandingSubLevelIterator<T1,​T2>
    extends java.lang.Object
    implements java.util.Iterator<T2>

    An ExpandingSubLevelIterator iterates through the sub level nodes of a virtual two level data structure.

    It iterates through the objects of the specified main iterator. For each such main level object a call to the specified IteratorResolver is executed to get an iterator for the optional virtual sub elements. If such an iterator is found, all the sub elements will be iterated through.

    Then, the main iterator will step to the next main object and its sub elements and so on.

    Iterator.remove() is not supported.

    Author:
    agz
    See Also:
    ExpandingNodeIterator, ExpandingLeafIterator
    • Method Detail

      • hasNext

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

        public T2 next()
        Specified by:
        next in interface java.util.Iterator<T1>
      • remove

        public void remove()
        Specified by:
        remove in interface java.util.Iterator<T1>
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object