Class PositionIterator

  • All Implemented Interfaces:
    java.util.Iterator<Position>
    Direct Known Subclasses:
    KnuthPossPosIter

    public class PositionIterator
    extends java.lang.Object
    implements java.util.Iterator<Position>
    An iterator over Position instances, that is wrapped around another 'parent' Iterator. The parent can be either another PositionIterator, or an iterator over KnuthElements, for example.
    The next() method always returns a Position. The getPos(Object) method can be overridden in subclasses to take care of obtaining the LayoutManager or Position from the object returned by the parent iterator's next() method.
    • Field Detail

      • parentIter

        private java.util.Iterator parentIter
      • nextObj

        private java.lang.Object nextObj
      • hasNext

        private boolean hasNext
    • Constructor Detail

      • PositionIterator

        public PositionIterator​(java.util.Iterator parentIter)
        Construct position iterator.
        Parameters:
        parentIter - an iterator to use as parent
    • Method Detail

      • getNextChildLM

        public LayoutManager getNextChildLM()
        Returns:
        layout manager of next child layout manager or null
      • getLM

        protected LayoutManager getLM​(java.lang.Object nextObj)
        Parameters:
        nextObj - next object from which to obtain position
        Returns:
        layout manager
      • getPos

        protected Position getPos​(java.lang.Object nextObj)
        Default implementation assumes that the passed nextObj is itself a Position, and just returns it. Subclasses for which this is not the case, must provide a suitable override this method.
        Parameters:
        nextObj - next object from which to obtain position
        Returns:
        position of next object.
      • lookAhead

        private void lookAhead()
      • checkNext

        protected boolean checkNext()
        Returns:
        true if not at end of sub-sequence with same child layout manager
      • endIter

        protected void endIter()
        end (reset) iterator
      • hasNext

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

        public Position next()
                      throws java.util.NoSuchElementException
        Specified by:
        next in interface java.util.Iterator<Position>
        Throws:
        java.util.NoSuchElementException
      • peekNext

        public java.lang.Object peekNext()
        Returns:
        peek at next object
      • remove

        public void remove()
                    throws java.lang.UnsupportedOperationException
        Specified by:
        remove in interface java.util.Iterator<Position>
        Throws:
        java.lang.UnsupportedOperationException