org.apache.fop.complexscripts.scripts

## Class ArabicScriptProcessor

- java.lang.Object
- - org.apache.fop.complexscripts.scripts.ScriptProcessor
  - - org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
    - - org.apache.fop.complexscripts.scripts.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).

### Method Summary

All Methods Instance Methods Concrete Methods
`ScriptContextTester` `getPositioningContextTester()` Obtain script specific positioning context tester.
`String[]` `getPositioningFeatures()` Obtain script specific required positioning features.
`ScriptContextTester` `getSubstitutionContextTester()` Obtain script specific substitution context tester.
`String[]` `getSubstitutionFeatures()` Obtain script specific required substitution features.
`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.

### Methods inherited from class org.apache.fop.complexscripts.scripts.DefaultScriptProcessor

`isReorderedMark`

### Methods inherited from class org.apache.fop.complexscripts.scripts.ScriptProcessor

`assembleLookups, getInstance, getOptionalPositioningFeatures, getOptionalSubstitutionFeatures, getScript, position, position, preProcess, substitute, substitute`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### 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