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 class
private 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.Log
logging instanceprivate final ScriptContextTester
private final ScriptContextTester
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
forceFinalThisContext
(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 boolean
hasFinalPrecedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasFinalSucceedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasFinalThisContext
(int[] ca, int nc, int s, int e) private static boolean
hasInitialPrecedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasInitialSucceedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasInitialThisContext
(int[] ca, int nc, int s, int e) private static boolean
hasIsolateFinal
(int ch) private static boolean
hasIsolateInitial
(int ch) private static boolean
hasLigaturePrecedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasLigatureSucceedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasMedialPrecedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasMedialSucceedingContext
(int[] ca, int nc, int s, int e) private static boolean
hasMedialThisContext
(int[] ca, int nc, int s, int e) private static boolean
inFinalContext
(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static boolean
inInitialContext
(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static boolean
inIsolateContext
(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static boolean
inLigatureContext
(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static boolean
inMedialContext
(String script, String language, String feature, GlyphSequence gs, int index, int flags) private static boolean
isZWJ
(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
isReorderedMark
Methods 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:
getSubstitutionFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported substitution features or null
-
getSubstitutionContextTester
Obtain script specific substitution context tester.- Overrides:
getSubstitutionContextTester
in classDefaultScriptProcessor
- Returns:
- substitution context tester or null
-
getPositioningFeatures
Obtain script specific required positioning features.- Overrides:
getPositioningFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported positioning features or null
-
getPositioningContextTester
Obtain script specific positioning context tester.- Overrides:
getPositioningContextTester
in 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:
reorderCombiningMarks
in 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)
-