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 Details

    • log

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

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

      private static final String[] GPOS_FEATURES
      features to use for positioning
    • subContextTester

      private final ScriptContextTester subContextTester
    • posContextTester

      private final ScriptContextTester posContextTester
    • 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 Details

    • ArabicScriptProcessor

      ArabicScriptProcessor(String script)
  • Method Details

    • getSubstitutionFeatures

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

      public ScriptContextTester getSubstitutionContextTester()
      Obtain script specific substitution context tester.
      Overrides:
      getSubstitutionContextTester in class DefaultScriptProcessor
      Returns:
      substitution context tester or null
    • getPositioningFeatures

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

      public ScriptContextTester getPositioningContextTester()
      Obtain script specific positioning context tester.
      Overrides:
      getPositioningContextTester in class DefaultScriptProcessor
      Returns:
      positioning context tester or null
    • reorderCombiningMarks

      public GlyphSequence reorderCombiningMarks(GlyphDefinitionTable gdef, GlyphSequence gs, int[] widths, int[][] gpa, String script, 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(String script, String language, String feature, GlyphSequence gs, int index, int flags)
    • inInitialContext

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

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

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

      private static boolean inMedialContext(String script, String language, 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)