Class GlyphSubstitutionTable.AlternateSubtable
java.lang.Object
org.apache.fop.complexscripts.fonts.GlyphSubtable
org.apache.fop.complexscripts.fonts.GlyphSubstitutionSubtable
org.apache.fop.complexscripts.fonts.GlyphSubstitutionTable.AlternateSubtable
- All Implemented Interfaces:
Comparable, GlyphSubstitution
- Direct Known Subclasses:
GlyphSubstitutionTable.AlternateSubtableFormat1
- Enclosing class:
GlyphSubstitutionTable
private abstract static class GlyphSubstitutionTable.AlternateSubtable
extends GlyphSubstitutionSubtable
-
Field Summary
Fields inherited from class 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
ConstructorsConstructorDescriptionAlternateSubtable(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries) -
Method Summary
Modifier and TypeMethodDescription(package private) static GlyphSubstitutionSubtablecreate(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries) abstract int[]getAlternatesForCoverageIndex(int ci, int gi) Obtain glyph alternates for coverage index.intgetType()booleanisCompatible(GlyphSubtable subtable) Determine if a glyph subtable is compatible with this glyph subtable.booleanPerform glyph substitution at the current index, mutating the substitution state object as required.Methods inherited from class GlyphSubstitutionSubtable
getTableType, getTypeName, substitute, substitute, usesReverseScanMethods inherited from class GlyphSubtable
compareTo, equals, getClasses, getCoverage, getCoverageIndex, getCoverageSize, getEntries, getFlags, getFlags, getFormat, getGDEF, getLookupId, getSequence, getTable, hashCode, resolveLookupReferences, setTable, usesReverseScan
-
Constructor Details
-
AlternateSubtable
public AlternateSubtable(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries)
-
-
Method Details
-
getType
public int getType()- Specified by:
getTypein 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:
isCompatiblein 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:
substitutein interfaceGlyphSubstitution- Overrides:
substitutein 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
-
getAlternatesForCoverageIndex
Obtain glyph alternates for coverage index.- Parameters:
ci- coverage indexgi- original glyph index- Returns:
- sequence of glyphs to substitute for input glyph
- Throws:
IllegalArgumentException- if coverage index is not valid
-
create
static GlyphSubstitutionSubtable create(String id, int sequence, int flags, int format, GlyphCoverageTable coverage, List entries)
-