Class BidiAttributedCharacterIterator

  • All Implemented Interfaces:
    java.lang.Cloneable, java.text.AttributedCharacterIterator, java.text.CharacterIterator

    public class BidiAttributedCharacterIterator
    extends java.lang.Object
    implements java.text.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.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.text.AttributedCharacterIterator

        java.text.AttributedCharacterIterator.Attribute
    • Field Summary

      • Fields inherited from interface java.text.CharacterIterator

        DONE
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        BidiAttributedCharacterIterator​(java.text.AttributedCharacterIterator aci, java.awt.font.FontRenderContext frc, int chunkStart)
      Constructs a character iterator that represents the visual display order of characters within bidirectional text.
      protected BidiAttributedCharacterIterator​(java.text.AttributedCharacterIterator reorderedACI, java.awt.font.FontRenderContext frc, int chunkStart, int[] newCharOrder)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()
      Creates a copy of this iterator.
      char current()
      Gets the character at the current position (as returned by getIndex()).
      char first()
      Sets the position to getBeginIndex() and returns the character at that position.
      java.util.Set getAllAttributeKeys()
      Get the keys of all attributes defined on the iterator's text range.
      java.lang.Object getAttribute​(java.text.AttributedCharacterIterator.Attribute attribute)
      Get the value of the named attribute for the current character.
      java.util.Map getAttributes()
      Returns a map with the attributes defined on the current character.
      int getBeginIndex()
      Returns the start index of the text.
      int[] getCharMap()  
      int getEndIndex()
      Returns the end index of the text.
      int getIndex()
      Returns the current index.
      int getRunLimit()
      Get the index of the first character following the run with respect to all attributes containing the current character.
      int getRunLimit​(java.text.AttributedCharacterIterator.Attribute attribute)
      Get the index of the first character following the run with respect to the given attribute containing the current character.
      int getRunLimit​(java.util.Set attributes)
      Get the index of the first character following the run with respect to the given attributes containing the current character.
      int getRunStart()
      Get the index of the first character of the run with respect to all attributes containing the current character.
      int getRunStart​(java.text.AttributedCharacterIterator.Attribute attribute)
      Get the index of the first character of the run with respect to the given attribute containing the current character.
      int getRunStart​(java.util.Set attributes)
      Get the index of the first character of the run with respect to the given attributes containing the current character.
      char last()
      Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
      static int mirrorChar​(int c)  
      char next()
      Increments the iterator's index by one and returns the character at the new index.
      char previous()
      Decrements the iterator's index by one and returns the character at the new index.
      char setIndex​(int position)
      Sets the position to the specified position in the text and returns that character.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BidiAttributedCharacterIterator

        protected BidiAttributedCharacterIterator​(java.text.AttributedCharacterIterator reorderedACI,
                                                  java.awt.font.FontRenderContext frc,
                                                  int chunkStart,
                                                  int[] newCharOrder)
      • BidiAttributedCharacterIterator

        public BidiAttributedCharacterIterator​(java.text.AttributedCharacterIterator aci,
                                               java.awt.font.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 Detail

      • getCharMap

        public int[] getCharMap()
      • getAllAttributeKeys

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

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

        public java.util.Map getAttributes()
        Returns a map with the attributes defined on the current character.
        Specified by:
        getAttributes in interface java.text.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 java.text.AttributedCharacterIterator
      • getRunLimit

        public int getRunLimit​(java.text.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 java.text.AttributedCharacterIterator
      • getRunLimit

        public int getRunLimit​(java.util.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 java.text.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 java.text.AttributedCharacterIterator
      • getRunStart

        public int getRunStart​(java.text.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 java.text.AttributedCharacterIterator
        Parameters:
        attribute - The attribute for whose appearance the first offset is requested.
      • getRunStart

        public int getRunStart​(java.util.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 java.text.AttributedCharacterIterator
        Parameters:
        attributes - the Set of attributes which begins at the returned index.
      • clone

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

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

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

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

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

        public int getIndex()
        Returns the current index.
        Specified by:
        getIndex in interface java.text.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 java.text.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 java.text.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 java.text.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 java.text.CharacterIterator
      • mirrorChar

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