Class CharAssociation
java.lang.Object
org.docx4j.fonts.fop.complexscripts.util.CharAssociation
- All Implemented Interfaces:
java.lang.Cloneable
public class CharAssociation
extends java.lang.Object
implements java.lang.Cloneable
A structure class encapsulating an interval of characters expressed as an offset and count of
Unicode scalar values (in an IntBuffer). A
CharAssociation is used to maintain a
backpointer from a glyph to one or more character intervals from which the glyph was derived.
Each glyph in a glyph sequence is associated with a single CharAssociation instance.
A CharAssociation instance is additionally (and optionally) used to record
predication information about the glyph, such as whether the glyph was produced by the
application of a specific substitution table or whether its position was adjusted by a specific
poisitioning table.
This work was originally authored by Glenn Adams (gadams@apache.org).
-
Constructor Summary
Constructors Constructor Description CharAssociation(int[] subIntervals)Instantiate a non-disjoint character association.CharAssociation(int offset, int count)Instantiate a non-disjoint character association.CharAssociation(int offset, int count, int[] subIntervals)Instantiate a character association. -
Method Summary
Modifier and Type Method Description java.lang.Objectclone()booleancontained(int offset, int count)intgetCount()intgetEnd()intgetOffset()java.lang.ObjectgetPredication(java.lang.String key)Get predication KEY.static org.docx4j.fonts.fop.complexscripts.util.CharAssociation.PredicationMergergetPredicationMerger(java.lang.String key)Obtain predication merger for KEY.intgetStart()intgetSubIntervalCount()int[]getSubIntervals()booleanisDisjoint()static CharAssociationjoin(CharAssociation[] aa)Join (merge) multiple associations into a single, potentially disjoint association.voidmergePredication(java.lang.String key, java.lang.Object value)Merge predication <KEY,VALUE>.voidmergePredications(CharAssociation ca)Merge predications from another CA.static java.lang.ObjectmergePredicationValues(java.lang.String key, java.lang.Object v1, java.lang.Object v2)Merge predication values V1 and V2 on KEY.static CharAssociation[]replicate(CharAssociation a, int repeat)Replicate association to formrepeatnew associations.voidsetPredication(java.lang.String key, java.lang.Object value)Set predication <KEY,VALUE>.static voidsetPredicationMerger(java.lang.String key, org.docx4j.fonts.fop.complexscripts.util.CharAssociation.PredicationMerger pm)Register predication merger PM for KEY.java.lang.StringtoString()Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
CharAssociation
public CharAssociation(int offset, int count, int[] subIntervals)Instantiate a character association.- Parameters:
offset- into array of Unicode scalar values (in associated IntBuffer)count- of Unicode scalar values (in associated IntBuffer)subIntervals- if disjoint, then array of sub-intervals, otherwise null; even members of array are sub-interval starts, and odd members are sub-interval ends (exclusive)
-
CharAssociation
public CharAssociation(int offset, int count)Instantiate a non-disjoint character association.- Parameters:
offset- into array of UTF-16 code elements (in associated CharSequence)count- of UTF-16 character code elements (in associated CharSequence)
-
CharAssociation
public CharAssociation(int[] subIntervals)Instantiate a non-disjoint character association.- Parameters:
subIntervals- if disjoint, then array of sub-intervals, otherwise null; even members of array are sub-interval starts, and odd members are sub-interval ends (exclusive)
-
-
Method Details
-
getOffset
public int getOffset()- Returns:
- offset (start of association interval)
-
getCount
public int getCount()- Returns:
- count (number of characer codes in association)
-
getStart
public int getStart()- Returns:
- start of association interval
-
getEnd
public int getEnd()- Returns:
- end of association interval
-
isDisjoint
public boolean isDisjoint()- Returns:
- true if association is disjoint
-
getSubIntervals
public int[] getSubIntervals()- Returns:
- subintervals of disjoint association
-
getSubIntervalCount
public int getSubIntervalCount()- Returns:
- count of subintervals of disjoint association
-
contained
public boolean contained(int offset, int count)- Parameters:
offset- of interval in sequencecount- length of interval- Returns:
- true if this association is contained within [offset,offset+count)
-
setPredication
public void setPredication(java.lang.String key, java.lang.Object value)Set predication <KEY,VALUE>.- Parameters:
key- predication keyvalue- predication value
-
getPredication
public java.lang.Object getPredication(java.lang.String key)Get predication KEY.- Parameters:
key- predication key- Returns:
- predication KEY at OFFSET or null if none exists
-
mergePredication
public void mergePredication(java.lang.String key, java.lang.Object value)Merge predication <KEY,VALUE>.- Parameters:
key- predication keyvalue- predication value
-
mergePredicationValues
public static java.lang.Object mergePredicationValues(java.lang.String key, java.lang.Object v1, java.lang.Object v2)Merge predication values V1 and V2 on KEY. Uses registeredPredicationMergerif one exists, otherwise uses V2 if non-null, otherwise uses V1.- Parameters:
key- predication keyv1- first (original) predication valuev2- second (to be merged) predication value- Returns:
- merged value
-
mergePredications
Merge predications from another CA.- Parameters:
ca- from which to merge
-
clone
public java.lang.Object clone()- Overrides:
clonein classjava.lang.Object
-
setPredicationMerger
public static void setPredicationMerger(java.lang.String key, org.docx4j.fonts.fop.complexscripts.util.CharAssociation.PredicationMerger pm)Register predication merger PM for KEY.- Parameters:
key- for predication mergerpm- predication merger
-
getPredicationMerger
public static org.docx4j.fonts.fop.complexscripts.util.CharAssociation.PredicationMerger getPredicationMerger(java.lang.String key)Obtain predication merger for KEY.- Parameters:
key- for predication merger- Returns:
- predication merger or null if none exists
-
replicate
Replicate association to formrepeatnew associations.- Parameters:
a- association to replicaterepeat- count- Returns:
- array of replicated associations
-
join
Join (merge) multiple associations into a single, potentially disjoint association.- Parameters:
aa- array of associations to join- Returns:
- (possibly disjoint) association containing joined associations
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-