Class IndicScriptProcessor
java.lang.Object
org.apache.fop.complexscripts.scripts.ScriptProcessor
org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
org.apache.fop.complexscripts.scripts.IndicScriptProcessor
- Direct Known Subclasses:
DevanagariScriptProcessor
,GujaratiScriptProcessor
,GurmukhiScriptProcessor
,KhmerScriptProcessor
,TamilScriptProcessor
The IndicScriptProcessor
class implements a script processor for
performing glyph substitution and positioning operations on content associated with the Indic script.
This work was originally authored by Glenn Adams (gadams@apache.org).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
Default syllabizer.private static class
protected static class
Syllabic segment.private static class
protected static class
Abstract syllabizer. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String[]
private static final String[]
required features to use for positioningprivate static final String[]
required features to use for positioningprivate static final String[]
optional features to use for substitutionsprivate static final String[]
required features to use for substitutionsprivate static final org.apache.commons.logging.Log
logging instanceprivate final ScriptContextTester
private static final String[]
private final ScriptContextTester
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected int
Find pre-base matra in sequence.protected int
findPreBaseMatraTarget
(GlyphSequence gs, int source) Find pre-base matra target in sequence.protected int
Find reph in sequence.protected int
findRephTarget
(GlyphSequence gs, int source) Find reph target in sequence.String[]
Obtain script specific optional positioning features.String[]
Obtain script specific optional substitution features.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.protected Class
<? extends IndicScriptProcessor.Syllabizer> Get script specific syllabizer class.private boolean
private boolean
static ScriptProcessor
makeProcessor
(String script) Make script specific flavor of Indic script processor.boolean
position
(GlyphSequence gs, String script, String language, int fontSize, GlyphTable.UseSpec[] usa, int[] widths, int[][] adjustments, ScriptContextTester sct) Perform positioning processing using a specific set of ordered glyph table use specifications.private GlyphSequence
reorder
(GlyphSequence gs, int source, int target) private GlyphSequence
private GlyphSequence
substitute
(GlyphSequence gs, String script, String language, GlyphTable.UseSpec[] usa, ScriptContextTester sct) Perform substitution processing using a specific set of ordered glyph table use specifications.private GlyphSequence[]
syllabize
(GlyphSequence gs, String script, String language) private GlyphSequence
unsyllabize
(GlyphSequence gs, GlyphSequence[] sa) Methods inherited from class org.apache.fop.complexscripts.scripts.DefaultScriptProcessor
isReorderedMark, reorderCombiningMarks
Methods inherited from class org.apache.fop.complexscripts.scripts.ScriptProcessor
assembleLookups, getInstance, getScript, position, preProcess, substitute
-
Field Details
-
log
private static final org.apache.commons.logging.Log loglogging instance -
GSUB_REQ_FEATURES
required features to use for substitutions -
GSUB_OPT_FEATURES
optional features to use for substitutions -
GPOS_REQ_FEATURES
required features to use for positioning -
GPOS_OPT_FEATURES
required features to use for positioning -
subContextTester
-
posContextTester
-
basicShapingFeatures
-
BASIC_SHAPING_FEATURE_STRINGS
-
presentationFeatures
-
PRESENTATION_FEATURE_STRINGS
-
-
Constructor Details
-
IndicScriptProcessor
IndicScriptProcessor(String script)
-
-
Method Details
-
makeProcessor
Make script specific flavor of Indic script processor.- Parameters:
script
- tag- Returns:
- script processor instance
-
getSubstitutionFeatures
Obtain script specific required substitution features.- Overrides:
getSubstitutionFeatures
in classDefaultScriptProcessor
- Returns:
- array of suppported substitution features or null
-
getOptionalSubstitutionFeatures
Obtain script specific optional substitution features.- Overrides:
getOptionalSubstitutionFeatures
in classScriptProcessor
- 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
-
getOptionalPositioningFeatures
Obtain script specific optional positioning features.- Overrides:
getOptionalPositioningFeatures
in classScriptProcessor
- 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
-
substitute
public GlyphSequence substitute(GlyphSequence gs, String script, String language, GlyphTable.UseSpec[] usa, ScriptContextTester sct) Perform substitution processing using a specific set of ordered glyph table use specifications.- Overrides:
substitute
in classScriptProcessor
- Parameters:
gs
- an input glyph sequencescript
- a script identifierlanguage
- a language identifierusa
- an ordered array of glyph table use specssct
- a script specific context tester (or null)- Returns:
- the substituted (output) glyph sequence
-
getSyllabizerClass
Get script specific syllabizer class.- Returns:
- a syllabizer class object or null
-
syllabize
-
unsyllabize
-
isBasicShapingUse
-
isPresentationUse
-
reorderPreBaseMatra
-
findPreBaseMatra
Find pre-base matra in sequence.- Parameters:
gs
- input sequence- Returns:
- index of pre-base matra or -1 if not found
-
findPreBaseMatraTarget
Find pre-base matra target in sequence.- Parameters:
gs
- input sequencesource
- index of pre-base matra- Returns:
- index of pre-base matra target or -1
-
reorderReph
-
findReph
Find reph in sequence.- Parameters:
gs
- input sequence- Returns:
- index of reph or -1 if not found
-
findRephTarget
Find reph target in sequence.- Parameters:
gs
- input sequencesource
- index of reph- Returns:
- index of reph target or -1
-
reorder
-
position
public boolean position(GlyphSequence gs, String script, String language, int fontSize, GlyphTable.UseSpec[] usa, int[] widths, int[][] adjustments, ScriptContextTester sct) Perform positioning processing using a specific set of ordered glyph table use specifications.- Overrides:
position
in classScriptProcessor
- Parameters:
gs
- an input glyph sequencescript
- a script identifierlanguage
- a language identifierfontSize
- size in device unitsusa
- an ordered array of glyph table use specswidths
- array of default advancements for each glyph in fontadjustments
- accumulated adjustments array (sequence) of 4-tuples of placement [PX,PY] and advance [AX,AY] adjustments, in that order, with one 4-tuple for each element of glyph sequencesct
- a script specific context tester (or null)- Returns:
- true if some adjustment is not zero; otherwise, false
-