Class GlyphSubstitutionTable.LigatureSubtable
- java.lang.Object
-
- org.apache.fop.complexscripts.fonts.GlyphSubtable
-
- org.apache.fop.complexscripts.fonts.GlyphSubstitutionSubtable
-
- org.apache.fop.complexscripts.fonts.GlyphSubstitutionTable.LigatureSubtable
-
- All Implemented Interfaces:
java.lang.Comparable
,GlyphSubstitution
- Direct Known Subclasses:
GlyphSubstitutionTable.LigatureSubtableFormat1
- Enclosing class:
- GlyphSubstitutionTable
private abstract static class GlyphSubstitutionTable.LigatureSubtable 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
Constructors Constructor Description LigatureSubtable(java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) static GlyphSubstitutionSubtable
create(java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)
private GlyphSubstitutionTable.Ligature
findLigature(GlyphSubstitutionTable.LigatureSet ls, int[] glyphs)
abstract GlyphSubstitutionTable.LigatureSet
getLigatureSetForCoverageIndex(int ci, int gi)
Obtain ligature set for coverage index.int
getType()
boolean
isCompatible(GlyphSubtable subtable)
Determine if a glyph subtable is compatible with this glyph subtable.boolean
substitute(GlyphSubstitutionState ss)
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 Detail
-
LigatureSubtable
public LigatureSubtable(java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)
-
-
Method Detail
-
getType
public int getType()
- Specified by:
getType
in classGlyphSubtable
- Returns:
- this subtable's type
-
isCompatible
public boolean isCompatible(GlyphSubtable subtable)
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
public boolean substitute(GlyphSubstitutionState ss)
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
-
findLigature
private GlyphSubstitutionTable.Ligature findLigature(GlyphSubstitutionTable.LigatureSet ls, int[] glyphs)
-
getLigatureSetForCoverageIndex
public abstract GlyphSubstitutionTable.LigatureSet getLigatureSetForCoverageIndex(int ci, int gi) throws java.lang.IllegalArgumentException
Obtain ligature set for coverage index.- Parameters:
ci
- coverage indexgi
- original glyph index- Returns:
- ligature set (or null if none defined)
- Throws:
java.lang.IllegalArgumentException
- if coverage index is not valid
-
create
static GlyphSubstitutionSubtable create(java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage, java.util.List entries)
-
-