Class PositionIterator

java.lang.Object
org.apache.fop.layoutmgr.PositionIterator
All Implemented Interfaces:
Iterator<Position>
Direct Known Subclasses:
KnuthPossPosIter

public class PositionIterator extends Object implements 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.
  • Constructor Details

    • PositionIterator

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

    • getNextChildLM

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

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

      protected Position getPos(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.
    • 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 Iterator<Position>
    • next

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

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

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