Class RecursiveCharIterator

java.lang.Object
org.apache.fop.fo.CharIterator
org.apache.fop.fo.RecursiveCharIterator
All Implemented Interfaces:
Cloneable, Iterator

public class RecursiveCharIterator extends CharIterator
Kind of a super-iterator that iterates through child nodes of an FONode, in turn managing character iterators for each of them. Caveat: Because this class is itself a CharIterator, and manages a collection of CharIterators, it is easy to get confused.
  • Field Details

    • fobj

      private FONode fobj
      parent node for whose child nodes this iterator iterates
    • childIter

      private Iterator childIter
      iterator for the child nodes
    • curChild

      private FONode curChild
      current child object that is being managed by childIter
    • curCharIter

      private CharIterator curCharIter
      CharIterator for curChild's characters
  • Constructor Details

    • RecursiveCharIterator

      public RecursiveCharIterator(FObj fobj)
      Constructor which creates an iterator for all child nodes
      Parameters:
      fobj - FONode for which an iterator should be created
    • RecursiveCharIterator

      public RecursiveCharIterator(FObj fobj, FONode child)
      Constructor which creates an iterator for only some child nodes
      Parameters:
      fobj - FObj for which an iterator should be created
      child - FONode of the first child to include in iterator
  • Method Details

    • mark

      public CharIterator mark()
      Returns:
      clone of this, cast as a CharIterator
    • clone

      public Object clone()
      Description copied from class: CharIterator
      Overrides:
      clone in class CharIterator
      Returns:
      a clone of this
    • replaceChar

      public void replaceChar(char c)
      Replaces the current character in the CharIterator with a specified character
      Overrides:
      replaceChar in class CharIterator
      Parameters:
      c - the character which should be used to replace the current character
    • getNextCharIter

      private void getNextCharIter()
      advances curChild to the next child in the collection, and curCharIter to the CharIterator for that item, or sets them to null if the iterator has no more items
    • hasNext

      public boolean hasNext()
      Description copied from class: CharIterator
      Specified by:
      hasNext in interface Iterator
      Specified by:
      hasNext in class CharIterator
      Returns:
      true if there are more items in the CharIterator
    • nextChar

      public char nextChar() throws NoSuchElementException
      Specified by:
      nextChar in class CharIterator
      Returns:
      the character that is the next character in the collection
      Throws:
      NoSuchElementException - if there are no more characters (test for this condition with java.util.Iterator.hasNext()).
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator
      Overrides:
      remove in class CharIterator