Class BidiOrder


  • public final class BidiOrder
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static byte AL
      Right-to-Left Arabic
      static byte AN
      Arabic Number
      static byte B
      Paragraph Separator
      static byte BN
      Boundary Neutral
      static byte CS
      Common Number Separator
      static byte EN
      European Number
      static byte ES
      European Number Separator
      static byte ET
      European Number Terminator
      static byte L
      Left-to-right
      static byte LRE
      Left-to-Right Embedding
      static byte LRO
      Left-to-Right Override
      static byte NSM
      Non-Spacing Mark
      static byte ON
      Other Neutrals
      static byte PDF
      Pop Directional Format
      static byte R
      Right-to-Left
      static byte RLE
      Right-to-Left Embedding
      static byte RLO
      Right-to-Left Override
      static byte S
      Segment Separator
      static byte TYPE_MAX
      Maximum bidi type value.
      static byte TYPE_MIN
      Minimum bidi type value.
      static byte WS
      Whitespace
    • Constructor Summary

      Constructors 
      Constructor Description
      BidiOrder​(byte[] types)
      Initialize using an array of direction types.
      BidiOrder​(byte[] types, byte paragraphEmbeddingLevel)
      Initialize using an array of direction types and an externally supplied paragraph embedding level.
      BidiOrder​(char[] text, int offset, int length, byte paragraphEmbeddingLevel)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte getBaseLevel()
      Return the base level of the paragraph.
      static byte getDirection​(char c)  
      byte[] getLevels()  
      byte[] getLevels​(int[] linebreaks)
      Return levels array breaking lines at offsets in linebreaks.
      int[] getReordering​(int[] linebreaks)
      Return reordering array breaking lines at offsets in linebreaks.
      • Methods inherited from class java.lang.Object

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

      • BidiOrder

        public BidiOrder​(byte[] types)
        Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive and represent the direction codes of the characters in the text.
        Parameters:
        types - the types array
      • BidiOrder

        public BidiOrder​(byte[] types,
                         byte paragraphEmbeddingLevel)
        Initialize using an array of direction types and an externally supplied paragraph embedding level. The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), 0 is for LTR paragraphs, and 1 is for RTL paragraphs.
        Parameters:
        types - the types array
        paragraphEmbeddingLevel - the externally supplied paragraph embedding level.
      • BidiOrder

        public BidiOrder​(char[] text,
                         int offset,
                         int length,
                         byte paragraphEmbeddingLevel)
    • Method Detail

      • getDirection

        public static final byte getDirection​(char c)
      • getLevels

        public byte[] getLevels()
      • getLevels

        public byte[] getLevels​(int[] linebreaks)
        Return levels array breaking lines at offsets in linebreaks.
        Rule L1.

        The returned levels array contains the resolved level for each bidi code passed to the constructor.

        The linebreaks array must include at least one value. The values must be in strictly increasing order (no duplicates) between 1 and the length of the text, inclusive. The last value must be the length of the text.

        Parameters:
        linebreaks - the offsets at which to break the paragraph
        Returns:
        the resolved levels of the text
      • getReordering

        public int[] getReordering​(int[] linebreaks)
        Return reordering array breaking lines at offsets in linebreaks.

        The reordering array maps from a visual index to a logical index. Lines are concatenated from left to right. So for example, the fifth character from the left on the third line is

         getReordering(linebreaks)[linebreaks[1] + 4]
        (linebreaks[1] is the position after the last character of the second line, which is also the index of the first character on the third line, and adding four gets the fifth character from the left).

        The linebreaks array must include at least one value. The values must be in strictly increasing order (no duplicates) between 1 and the length of the text, inclusive. The last value must be the length of the text.

        Parameters:
        linebreaks - the offsets at which to break the paragraph.
      • getBaseLevel

        public byte getBaseLevel()
        Return the base level of the paragraph.