Class ArabicScriptProcessor
java.lang.Object
org.apache.fop.complexscripts.scripts.ScriptProcessor
org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
org.apache.fop.complexscripts.scripts.ArabicScriptProcessor
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).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String[]features to use for positioningprivate static final String[]features to use for substitutionsprivate static final int[]Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word final position.private static final int[]Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word initial position.private static final org.apache.commons.logging.Loglogging instanceprivate final ScriptContextTesterprivate final ScriptContextTester -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleanforceFinalThisContext(int[] ca, int nc, int s, int e) Obtain script specific positioning context tester.String[]Obtain script specific required positioning features.Obtain script specific substitution context tester.String[]Obtain script specific required substitution features.private static booleanhasFinalPrecedingContext(int[] ca, int nc, int s, int e) private static booleanhasFinalSucceedingContext(int[] ca, int nc, int s, int e) private static booleanhasFinalThisContext(int[] ca, int nc, int s, int e) private static booleanhasInitialPrecedingContext(int[] ca, int nc, int s, int e) private static booleanhasInitialSucceedingContext(int[] ca, int nc, int s, int e) private static booleanhasInitialThisContext(int[] ca, int nc, int s, int e) private static booleanhasIsolateFinal(int ch) private static booleanhasIsolateInitial(int ch) private static booleanhasLigaturePrecedingContext(int[] ca, int nc, int s, int e) private static booleanhasLigatureSucceedingContext(int[] ca, int nc, int s, int e) private static booleanhasMedialPrecedingContext(int[] ca, int nc, int s, int e) private static booleanhasMedialSucceedingContext(int[] ca, int nc, int s, int e) private static booleanhasMedialThisContext(int[] ca, int nc, int s, int e) private static booleaninFinalContext(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static booleaninInitialContext(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static booleaninIsolateContext(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static booleaninLigatureContext(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static booleaninMedialContext(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static booleanisZWJ(int ch) 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
isReorderedMarkMethods inherited from class org.apache.fop.complexscripts.scripts.ScriptProcessor
assembleLookups, getInstance, getOptionalPositioningFeatures, getOptionalSubstitutionFeatures, getScript, position, position, preProcess, substitute, substitute
-
Field Details
-
log
private static final org.apache.commons.logging.Log loglogging instance -
GSUB_FEATURES
features to use for substitutions -
GPOS_FEATURES
features to use for positioning -
subContextTester
-
posContextTester
-
ISOLATED_INITIALS
private static final int[] ISOLATED_INITIALSOrdered 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_FINALSOrdered 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
Obtain script specific required substitution features.- Overrides:
getSubstitutionFeaturesin classDefaultScriptProcessor- Returns:
- array of suppported substitution features or null
-
getSubstitutionContextTester
Obtain script specific substitution context tester.- Overrides:
getSubstitutionContextTesterin classDefaultScriptProcessor- Returns:
- substitution context tester or null
-
getPositioningFeatures
Obtain script specific required positioning features.- Overrides:
getPositioningFeaturesin classDefaultScriptProcessor- Returns:
- array of suppported positioning features or null
-
getPositioningContextTester
Obtain script specific positioning context tester.- Overrides:
getPositioningContextTesterin classDefaultScriptProcessor- 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:
reorderCombiningMarksin classDefaultScriptProcessor- Parameters:
gdef- the glyph definition table that appliesgs- an input glyph sequencewidths- associated unscaled advance widths (also reordered)gpa- associated glyph position adjustments (also reordered)script- a script identifierlanguage- 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)
-