fop 2.1

org.apache.fop.complexscripts.fonts
Class GlyphPositioningSubtable

java.lang.Object
  extended by org.apache.fop.complexscripts.fonts.GlyphSubtable
      extended by org.apache.fop.complexscripts.fonts.GlyphPositioningSubtable
All Implemented Interfaces:
java.lang.Comparable, GlyphPositioning

public abstract class GlyphPositioningSubtable
extends GlyphSubtable
implements GlyphPositioning

The GlyphPositioningSubtable implements an abstract base of a glyph subtable, providing a default implementation of the GlyphPositioning interface.

This work was originally authored by Glenn Adams (gadams@apache.org).


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
protected GlyphPositioningSubtable(java.lang.String id, int sequence, int flags, int format, GlyphCoverageTable coverage)
          Instantiate a GlyphPositioningSubtable.
 
Method Summary
 int getTableType()
          
 java.lang.String getTypeName()
          
 boolean isCompatible(GlyphSubtable subtable)
          Determine if a glyph subtable is compatible with this glyph subtable.
 boolean position(GlyphPositioningState ps)
          Perform glyph positioning at the current index, mutating the positioning state object as required.
static boolean position(GlyphPositioningState ps, GlyphPositioningSubtable[] sta, int sequenceIndex)
          Apply positioning using specified state and subtable array.
static boolean position(GlyphSequence gs, java.lang.String script, java.lang.String language, java.lang.String feature, int fontSize, GlyphPositioningSubtable[] sta, int[] widths, int[][] adjustments, ScriptContextTester sct)
          Apply positioning.
 boolean 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, getType, hashCode, resolveLookupReferences, setTable, usesReverseScan
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlyphPositioningSubtable

protected GlyphPositioningSubtable(java.lang.String id,
                                   int sequence,
                                   int flags,
                                   int format,
                                   GlyphCoverageTable coverage)
Instantiate a GlyphPositioningSubtable.

Parameters:
id - subtable identifier
sequence - subtable sequence
flags - subtable flags
format - subtable format
coverage - subtable coverage table
Method Detail

getTableType

public int getTableType()

Specified by:
getTableType in class GlyphSubtable
Returns:
this subtable's table type

getTypeName

public java.lang.String getTypeName()

Specified by:
getTypeName in class GlyphSubtable
Returns:
this subtable's type name

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.

Specified by:
isCompatible in class GlyphSubtable
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

usesReverseScan

public boolean usesReverseScan()

Specified by:
usesReverseScan in class GlyphSubtable
Returns:
true if subtable uses reverse scanning of glyph sequence, meaning from the last glyph in a glyph sequence to the first glyph

position

public boolean position(GlyphPositioningState ps)
Perform glyph positioning at the current index, mutating the positioning state object as required. Only the context associated with the current index is processed.

Specified by:
position in interface GlyphPositioning
Parameters:
ps - glyph positioning state object
Returns:
true if the glyph subtable applies, meaning that the current context matches the associated input context glyph coverage table; note that returning true does not mean any position adjustment occurred; it only means that no further glyph subtables for the current lookup table should be applied.

position

public static final boolean position(GlyphPositioningState ps,
                                     GlyphPositioningSubtable[] sta,
                                     int sequenceIndex)
Apply positioning using specified state and subtable array. For each position in input sequence, apply subtables in order until some subtable applies or none remain. If no subtable applied or no input was consumed for a given position, then apply default action (no adjustments and advance). If sequenceIndex is non-negative, then apply subtables only when current position matches sequenceIndex in relation to the starting position. Furthermore, upon successful application at sequenceIndex, then discontinue processing the remaining

Parameters:
ps - positioning state
sta - array of subtables to apply
sequenceIndex - if non negative, then apply subtables only at specified sequence index
Returns:
true if a non-zero adjustment occurred

position

public static final boolean position(GlyphSequence gs,
                                     java.lang.String script,
                                     java.lang.String language,
                                     java.lang.String feature,
                                     int fontSize,
                                     GlyphPositioningSubtable[] sta,
                                     int[] widths,
                                     int[][] adjustments,
                                     ScriptContextTester sct)
Apply positioning.

Parameters:
gs - input glyph sequence
script - tag
language - tag
feature - tag
fontSize - the font size
sta - subtable array
widths - array
adjustments - array (receives output adjustments)
sct - script context tester
Returns:
true if a non-zero adjustment occurred

fop 2.1

Copyright 1999-2016 The Apache Software Foundation. All Rights Reserved.