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).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ArabicScriptProcessor.PositioningScriptContextTester
private static class
ArabicScriptProcessor.SubstitutionScriptContextTester
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]
GPOS_FEATURES
features to use for positioningprivate static java.lang.String[]
GSUB_FEATURES
features to use for substitutionsprivate static int[]
ISOLATED_FINALS
Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word final position.private static int[]
ISOLATED_INITIALS
Ordered array of Unicode scalars designating those Arabic (Script) Letters which exhibit an isolated form in word initial position.private static org.apache.commons.logging.Log
log
logging instanceprivate ScriptContextTester
posContextTester
private ScriptContextTester
subContextTester
-
Constructor Summary
Constructors Constructor Description ArabicScriptProcessor(java.lang.String script)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static boolean
forceFinalThisContext(int[] ca, int nc, int s, int e)
ScriptContextTester
getPositioningContextTester()
Obtain script specific positioning context tester.java.lang.String[]
getPositioningFeatures()
Obtain script specific required positioning features.ScriptContextTester
getSubstitutionContextTester()
Obtain script specific substitution context tester.java.lang.String[]
getSubstitutionFeatures()
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(java.lang.String script, java.lang.String language, java.lang.String feature, GlyphSequence gs, int index, int flags)
private static boolean
inInitialContext(java.lang.String script, java.lang.String language, java.lang.String feature, GlyphSequence gs, int index, int flags)
private static boolean
inIsolateContext(java.lang.String script, java.lang.String language, java.lang.String feature, GlyphSequence gs, int index, int flags)
private static boolean
inLigatureContext(java.lang.String script, java.lang.String language, java.lang.String feature, GlyphSequence gs, int index, int flags)
private static boolean
inMedialContext(java.lang.String script, java.lang.String language, java.lang.String feature, GlyphSequence gs, int index, int flags)
private static boolean
isZWJ(int ch)
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.-
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 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
-
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.
-
-
Method Detail
-
getSubstitutionFeatures
public java.lang.String[] getSubstitutionFeatures()
Obtain script specific required substitution features.- Overrides:
getSubstitutionFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported substitution features or null
-
getSubstitutionContextTester
public ScriptContextTester getSubstitutionContextTester()
Obtain script specific substitution context tester.- Overrides:
getSubstitutionContextTester
in classDefaultScriptProcessor
- Returns:
- substitution context tester or null
-
getPositioningFeatures
public java.lang.String[] getPositioningFeatures()
Obtain script specific required positioning features.- Overrides:
getPositioningFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported positioning features or null
-
getPositioningContextTester
public ScriptContextTester 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, 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 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(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)
-
-