Class GlyphSubstitutionTable.ContextualSubtable
java.lang.Object
org.apache.fop.complexscripts.fonts.GlyphSubtable
org.apache.fop.complexscripts.fonts.GlyphSubstitutionSubtable
org.apache.fop.complexscripts.fonts.GlyphSubstitutionTable.ContextualSubtable
- All Implemented Interfaces:
Comparable
,GlyphSubstitution
- Direct Known Subclasses:
GlyphSubstitutionTable.ContextualSubtableFormat1
,GlyphSubstitutionTable.ContextualSubtableFormat2
,GlyphSubstitutionTable.ContextualSubtableFormat3
- Enclosing class:
- GlyphSubstitutionTable
private abstract static class GlyphSubstitutionTable.ContextualSubtable
extends GlyphSubstitutionSubtable
-
Field Summary
Fields inherited from class org.apache.fop.complexscripts.fonts.GlyphSubtable
LF_IGNORE_BASE, LF_IGNORE_LIGATURE, LF_IGNORE_MARK, LF_INTERNAL_USE_REVERSE_SCAN, LF_MARK_ATTACHMENT_TYPE, LF_RESERVED, LF_RIGHT_TO_LEFT, LF_USE_MARK_FILTERING_SET
-
Constructor Summary
ConstructorsConstructorDescriptionContextualSubtable
(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries) -
Method Summary
Modifier and TypeMethodDescription(package private) static GlyphSubstitutionSubtable
create
(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries) abstract GlyphTable.RuleLookup[]
getLookups
(int ci, int gi, GlyphSubstitutionState ss, int[] rv) Obtain rule lookups set associated current input glyph context.int
getType()
boolean
isCompatible
(GlyphSubtable subtable) Determine if a glyph subtable is compatible with this glyph subtable.boolean
Perform glyph substitution at the current index, mutating the substitution state object as required.Methods inherited from class org.apache.fop.complexscripts.fonts.GlyphSubstitutionSubtable
getTableType, getTypeName, substitute, substitute, usesReverseScan
Methods inherited from class org.apache.fop.complexscripts.fonts.GlyphSubtable
compareTo, equals, getClasses, getCoverage, getCoverageIndex, getCoverageSize, getEntries, getFlags, getFlags, getFormat, getGDEF, getLookupId, getSequence, getTable, hashCode, resolveLookupReferences, setTable, usesReverseScan
-
Constructor Details
-
ContextualSubtable
public ContextualSubtable(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries)
-
-
Method Details
-
getType
public int getType()- Specified by:
getType
in classGlyphSubtable
- Returns:
- this subtable's type
-
isCompatible
Determine if a glyph subtable is compatible with this glyph subtable. Two glyph subtables are compatible if the both may appear in a single lookup table.- Overrides:
isCompatible
in classGlyphSubstitutionSubtable
- Parameters:
subtable
- a glyph subtable to determine compatibility- Returns:
- true if specified subtable is compatible with this glyph subtable, where by compatible is meant that they share the same lookup type
-
substitute
Perform glyph substitution at the current index, mutating the substitution state object as required. Only the context associated with the current index is processed.- Specified by:
substitute
in interfaceGlyphSubstitution
- Overrides:
substitute
in classGlyphSubstitutionSubtable
- Parameters:
ss
- glyph substitution state object- Returns:
- true if the glyph subtable was applied, meaning that the current context matches the associated input context glyph coverage table
-
getLookups
public abstract GlyphTable.RuleLookup[] getLookups(int ci, int gi, GlyphSubstitutionState ss, int[] rv) Obtain rule lookups set associated current input glyph context.- Parameters:
ci
- coverage index of glyph at current positiongi
- glyph index of glyph at current positionss
- glyph substitution staterv
- array of ints used to receive multiple return values, must be of length 1 or greater, where the first entry is used to return the input sequence length of the matched rule- Returns:
- array of rule lookups or null if none applies
-
create
static GlyphSubstitutionSubtable create(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries)
-