Class ArabicScriptProcessor


  • public class ArabicScriptProcessor
    extends DefaultScriptProcessor

    The ArabicScriptProcessor class implements a script processor for performing glyph substitution and positioning operations on content associated with the Arabic script.

    This work was originally authored by Glenn Adams (gadams@apache.org).

    • Field Detail

      • log

        private static final org.apache.commons.logging.Log log
        logging instance
      • GSUB_FEATURES

        private static final java.lang.String[] GSUB_FEATURES
        features to use for substitutions
      • GPOS_FEATURES

        private static final java.lang.String[] GPOS_FEATURES
        features to use for positioning
      • ISOLATED_INITIALS

        private static final int[] ISOLATED_INITIALS
        Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word initial position.
      • ISOLATED_FINALS

        private static final int[] ISOLATED_FINALS
        Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word final position.
    • Constructor Detail

      • ArabicScriptProcessor

        ArabicScriptProcessor​(java.lang.String script)
    • Method Detail

      • getSubstitutionFeatures

        public java.lang.String[] getSubstitutionFeatures()
        Obtain script specific required substitution features.
        Overrides:
        getSubstitutionFeatures in class DefaultScriptProcessor
        Returns:
        array of suppported substitution features or null
      • getPositioningFeatures

        public java.lang.String[] getPositioningFeatures()
        Obtain script specific required positioning features.
        Overrides:
        getPositioningFeatures in class DefaultScriptProcessor
        Returns:
        array of suppported positioning features or null
      • reorderCombiningMarks

        public GlyphSequence reorderCombiningMarks​(GlyphDefinitionTable gdef,
                                                   GlyphSequence gs,
                                                   int[] widths,
                                                   int[][] gpa,
                                                   java.lang.String script,
                                                   java.lang.String language)
        Reorder combining marks in glyph sequence so that they precede (within the sequence) the base character to which they are applied. N.B. In the case of RTL segments, marks are not reordered by this, method since when the segment is reversed by BIDI processing, marks are automatically reordered to precede their base glyph.
        Overrides:
        reorderCombiningMarks in class DefaultScriptProcessor
        Parameters:
        gdef - the glyph definition table that applies
        gs - an input glyph sequence
        widths - associated unscaled advance widths (also reordered)
        gpa - associated glyph position adjustments (also reordered)
        script - a script identifier
        language - a language identifier
        Returns:
        the reordered (output) glyph sequence
      • inFinalContext

        private static boolean inFinalContext​(java.lang.String script,
                                              java.lang.String language,
                                              java.lang.String feature,
                                              GlyphSequence gs,
                                              int index,
                                              int flags)
      • inInitialContext

        private static boolean inInitialContext​(java.lang.String script,
                                                java.lang.String language,
                                                java.lang.String feature,
                                                GlyphSequence gs,
                                                int index,
                                                int flags)
      • inIsolateContext

        private static boolean inIsolateContext​(java.lang.String script,
                                                java.lang.String language,
                                                java.lang.String feature,
                                                GlyphSequence gs,
                                                int index,
                                                int flags)
      • inLigatureContext

        private static boolean inLigatureContext​(java.lang.String script,
                                                 java.lang.String language,
                                                 java.lang.String feature,
                                                 GlyphSequence gs,
                                                 int index,
                                                 int flags)
      • inMedialContext

        private static boolean inMedialContext​(java.lang.String script,
                                               java.lang.String language,
                                               java.lang.String feature,
                                               GlyphSequence gs,
                                               int index,
                                               int flags)
      • hasFinalPrecedingContext

        private static boolean hasFinalPrecedingContext​(int[] ca,
                                                        int nc,
                                                        int s,
                                                        int e)
      • hasFinalThisContext

        private static boolean hasFinalThisContext​(int[] ca,
                                                   int nc,
                                                   int s,
                                                   int e)
      • forceFinalThisContext

        private static boolean forceFinalThisContext​(int[] ca,
                                                     int nc,
                                                     int s,
                                                     int e)
      • hasFinalSucceedingContext

        private static boolean hasFinalSucceedingContext​(int[] ca,
                                                         int nc,
                                                         int s,
                                                         int e)
      • hasInitialPrecedingContext

        private static boolean hasInitialPrecedingContext​(int[] ca,
                                                          int nc,
                                                          int s,
                                                          int e)
      • hasInitialThisContext

        private static boolean hasInitialThisContext​(int[] ca,
                                                     int nc,
                                                     int s,
                                                     int e)
      • hasInitialSucceedingContext

        private static boolean hasInitialSucceedingContext​(int[] ca,
                                                           int nc,
                                                           int s,
                                                           int e)
      • hasMedialPrecedingContext

        private static boolean hasMedialPrecedingContext​(int[] ca,
                                                         int nc,
                                                         int s,
                                                         int e)
      • hasMedialThisContext

        private static boolean hasMedialThisContext​(int[] ca,
                                                    int nc,
                                                    int s,
                                                    int e)
      • hasMedialSucceedingContext

        private static boolean hasMedialSucceedingContext​(int[] ca,
                                                          int nc,
                                                          int s,
                                                          int e)
      • hasLigaturePrecedingContext

        private static boolean hasLigaturePrecedingContext​(int[] ca,
                                                           int nc,
                                                           int s,
                                                           int e)
      • hasLigatureSucceedingContext

        private static boolean hasLigatureSucceedingContext​(int[] ca,
                                                            int nc,
                                                            int s,
                                                            int e)
      • hasIsolateInitial

        private static boolean hasIsolateInitial​(int ch)
      • hasIsolateFinal

        private static boolean hasIsolateFinal​(int ch)
      • isZWJ

        private static boolean isZWJ​(int ch)