Class BidiAttributedCharacterIterator

java.lang.Object
org.apache.batik.gvt.text.BidiAttributedCharacterIterator
All Implemented Interfaces:
Cloneable, AttributedCharacterIterator, CharacterIterator

public class BidiAttributedCharacterIterator extends Object implements AttributedCharacterIterator
An attributed character iterator that does the reordering of the characters for bidirectional text. It reorders the characters so they are in visual order. It also assigns a BIDI_LEVEL attribute to each character which can be used to split the reordered ACI into text runs based on direction. ie. characters in a text run will all have the same bidi level.
  • Constructor Details

    • BidiAttributedCharacterIterator

      protected BidiAttributedCharacterIterator(AttributedCharacterIterator reorderedACI, FontRenderContext frc, int chunkStart, int[] newCharOrder)
    • BidiAttributedCharacterIterator

      public BidiAttributedCharacterIterator(AttributedCharacterIterator aci, FontRenderContext frc, int chunkStart)
      Constructs a character iterator that represents the visual display order of characters within bidirectional text.
      Parameters:
      aci - The character iterator containing the characters in logical order.
      frc - The current font render context
  • Method Details

    • getCharMap

      public int[] getCharMap()
    • getAllAttributeKeys

      public Set getAllAttributeKeys()
      Get the keys of all attributes defined on the iterator's text range.
      Specified by:
      getAllAttributeKeys in interface AttributedCharacterIterator
    • getAttribute

      public Object getAttribute(AttributedCharacterIterator.Attribute attribute)
      Get the value of the named attribute for the current character.
      Specified by:
      getAttribute in interface AttributedCharacterIterator
    • getAttributes

      public Map getAttributes()
      Returns a map with the attributes defined on the current character.
      Specified by:
      getAttributes in interface AttributedCharacterIterator
    • getRunLimit

      public int getRunLimit()
      Get the index of the first character following the run with respect to all attributes containing the current character.
      Specified by:
      getRunLimit in interface AttributedCharacterIterator
    • getRunLimit

      public int getRunLimit(AttributedCharacterIterator.Attribute attribute)
      Get the index of the first character following the run with respect to the given attribute containing the current character.
      Specified by:
      getRunLimit in interface AttributedCharacterIterator
    • getRunLimit

      public int getRunLimit(Set attributes)
      Get the index of the first character following the run with respect to the given attributes containing the current character.
      Specified by:
      getRunLimit in interface AttributedCharacterIterator
    • getRunStart

      public int getRunStart()
      Get the index of the first character of the run with respect to all attributes containing the current character.
      Specified by:
      getRunStart in interface AttributedCharacterIterator
    • getRunStart

      public int getRunStart(AttributedCharacterIterator.Attribute attribute)
      Get the index of the first character of the run with respect to the given attribute containing the current character.
      Specified by:
      getRunStart in interface AttributedCharacterIterator
      Parameters:
      attribute - The attribute for whose appearance the first offset is requested.
    • getRunStart

      public int getRunStart(Set attributes)
      Get the index of the first character of the run with respect to the given attributes containing the current character.
      Specified by:
      getRunStart in interface AttributedCharacterIterator
      Parameters:
      attributes - the Set of attributes which begins at the returned index.
    • clone

      public Object clone()
      Creates a copy of this iterator.
      Specified by:
      clone in interface CharacterIterator
      Overrides:
      clone in class Object
    • current

      public char current()
      Gets the character at the current position (as returned by getIndex()).
      Specified by:
      current in interface CharacterIterator
    • first

      public char first()
      Sets the position to getBeginIndex() and returns the character at that position.
      Specified by:
      first in interface CharacterIterator
    • getBeginIndex

      public int getBeginIndex()
      Returns the start index of the text.
      Specified by:
      getBeginIndex in interface CharacterIterator
    • getEndIndex

      public int getEndIndex()
      Returns the end index of the text.
      Specified by:
      getEndIndex in interface CharacterIterator
    • getIndex

      public int getIndex()
      Returns the current index.
      Specified by:
      getIndex in interface CharacterIterator
    • last

      public char last()
      Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
      Specified by:
      last in interface CharacterIterator
    • next

      public char next()
      Increments the iterator's index by one and returns the character at the new index.
      Specified by:
      next in interface CharacterIterator
    • previous

      public char previous()
      Decrements the iterator's index by one and returns the character at the new index.
      Specified by:
      previous in interface CharacterIterator
    • setIndex

      public char setIndex(int position)
      Sets the position to the specified position in the text and returns that character.
      Specified by:
      setIndex in interface CharacterIterator
    • mirrorChar

      public static int mirrorChar(int c)
      Parameters:
      c - the character to 'mirror'
      Returns:
      either the 'mirror'-character for c or c itself