Package org.apache.batik.gvt.text
Class GVTACIImpl
- java.lang.Object
-
- org.apache.batik.gvt.text.GVTACIImpl
-
- All Implemented Interfaces:
java.lang.Cloneable,java.text.AttributedCharacterIterator,java.text.CharacterIterator,GVTAttributedCharacterIterator
public class GVTACIImpl extends java.lang.Object implements GVTAttributedCharacterIterator
GVTACIImpl Used to implement SVG <tspan> and <text> attributes. This implementation is designed for efficient support of per-character attributes (i.e. single character attribute spans). It supports an extended set of TextAttributes, via inner class GVTAttributedCharacterIterator.TextAttributes.- Version:
- $Id: GVTACIImpl.java 1831635 2018-05-15 13:33:47Z ssteiner $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classGVTACIImpl.TransformAttributeFilterAttributeFilter which converts (extended) location attributes SVGAttributedCharacterIterator.TextAttribute.X, TextAttribute.Y, TextAttribute.ROTATE attributes to TextAttribute.TRANSFORM attributes.-
Nested classes/interfaces inherited from interface java.text.AttributedCharacterIterator
java.text.AttributedCharacterIterator.Attribute
-
Nested classes/interfaces inherited from interface org.apache.batik.gvt.text.GVTAttributedCharacterIterator
GVTAttributedCharacterIterator.AttributeFilter, GVTAttributedCharacterIterator.TextAttribute
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.SetallAttributesprivate int[]charInRunprivate intcurrentIndexprivate static intEND_RUNprivate java.text.CharacterIteratoriterprivate java.util.ArrayListmapListprivate static intMID_RUNprivate java.lang.StringsimpleStringprivate static intSINGLETONprivate static intSTART_RUN
-
Constructor Summary
Constructors Constructor Description GVTACIImpl()Constructs a new GVTAttributedCharacterIterator with no attributes and a null string.GVTACIImpl(java.text.AttributedCharacterIterator aci)Constructs a GVTACIImpl whose contents are equivalent to those of aci.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidbuildAttributeTables()private voidbuildAttributeTables(java.text.AttributedCharacterIterator aci)java.lang.Objectclone()Create a copy of this iteratorcharcurrent()Get the character at the current position (as returned by getIndex()).charfirst()Sets the position to getBeginIndex().java.util.SetgetAllAttributeKeys()Get the keys of all attributes defined on the iterator's text range.java.lang.ObjectgetAttribute(java.text.AttributedCharacterIterator.Attribute attribute)Get the value of the named attribute for the current character.java.util.MapgetAttributes()Returns a map with the attributes defined on the current character.intgetBeginIndex()Get the start index of the text.intgetEndIndex()Get the end index of the text.intgetIndex()Get the current index.intgetRunLimit()Get the index of the first character following the run with respect to all attributes containing the current character.intgetRunLimit(java.text.AttributedCharacterIterator.Attribute attribute)Get the index of the first character following the run with respect to the given attribute containing the current character.intgetRunLimit(java.util.Set attributes)Get the index of the first character following the run with respect to the given attributes containing the current character.intgetRunStart()Get the index of the first character of the run with respect to all attributes containing the current character.intgetRunStart(java.text.AttributedCharacterIterator.Attribute attribute)Get the index of the first character of the run with respect to the given attribute containing the current character.intgetRunStart(java.util.Set attributes)Get the index of the first character of the run with respect to the given attributes containing the current character.charlast()Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.charnext()Increments the iterator's index by one, returning the next character.charprevious()Decrements the iterator's index by one and returns the character at the new index.voidsetAttributeArray(GVTAttributedCharacterIterator.TextAttribute attr, java.lang.Object[] attValues, int beginIndex, int endIndex)Sets values of a per-character attribute associated with the content string.charsetIndex(int position)Sets the position to the specified position in the text.voidsetString(java.lang.String s)Sets this iterator's contents to an unattributed copy of String s.voidsetString(java.text.AttributedString s)Assigns this iterator's contents to be equivalent to AttributedString s.
-
-
-
Field Detail
-
simpleString
private java.lang.String simpleString
-
allAttributes
private java.util.Set allAttributes
-
mapList
private java.util.ArrayList mapList
-
START_RUN
private static int START_RUN
-
END_RUN
private static int END_RUN
-
MID_RUN
private static int MID_RUN
-
SINGLETON
private static int SINGLETON
-
charInRun
private int[] charInRun
-
iter
private java.text.CharacterIterator iter
-
currentIndex
private int currentIndex
-
-
Constructor Detail
-
GVTACIImpl
public GVTACIImpl()
Constructs a new GVTAttributedCharacterIterator with no attributes and a null string.
-
GVTACIImpl
public GVTACIImpl(java.text.AttributedCharacterIterator aci)
Constructs a GVTACIImpl whose contents are equivalent to those of aci. This constructor creates a new copy of the source data inaci.
-
-
Method Detail
-
setString
public void setString(java.lang.String s)
Sets this iterator's contents to an unattributed copy of String s.- Specified by:
setStringin interfaceGVTAttributedCharacterIterator
-
setString
public void setString(java.text.AttributedString s)
Assigns this iterator's contents to be equivalent to AttributedString s.- Specified by:
setStringin interfaceGVTAttributedCharacterIterator
-
setAttributeArray
public void setAttributeArray(GVTAttributedCharacterIterator.TextAttribute attr, java.lang.Object[] attValues, int beginIndex, int endIndex)
Sets values of a per-character attribute associated with the content string. Characters frombeginIndextoendIndex(zero-offset) are assigned values for attribute keyattrfrom the arrayattValues.If the length of attValues is less than character span(endIndex-beginIndex)the last value is duplicated; if attValues is longer than the character span the extra values are ignored. Note that if either beginIndex or endIndex are outside the bounds of the current character array they are clipped accordingly.- Specified by:
setAttributeArrayin interfaceGVTAttributedCharacterIterator
-
getAllAttributeKeys
public java.util.Set getAllAttributeKeys()
Get the keys of all attributes defined on the iterator's text range.- Specified by:
getAllAttributeKeysin interfacejava.text.AttributedCharacterIterator- Specified by:
getAllAttributeKeysin interfaceGVTAttributedCharacterIterator
-
getAttribute
public java.lang.Object getAttribute(java.text.AttributedCharacterIterator.Attribute attribute)
Get the value of the named attribute for the current character.- Specified by:
getAttributein interfacejava.text.AttributedCharacterIterator- Specified by:
getAttributein interfaceGVTAttributedCharacterIterator
-
getAttributes
public java.util.Map getAttributes()
Returns a map with the attributes defined on the current character.- Specified by:
getAttributesin interfacejava.text.AttributedCharacterIterator- Specified by:
getAttributesin interfaceGVTAttributedCharacterIterator
-
getRunLimit
public int getRunLimit()
Get the index of the first character following the run with respect to all attributes containing the current character.- Specified by:
getRunLimitin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunLimitin interfaceGVTAttributedCharacterIterator
-
getRunLimit
public int getRunLimit(java.text.AttributedCharacterIterator.Attribute attribute)
Get the index of the first character following the run with respect to the given attribute containing the current character.- Specified by:
getRunLimitin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunLimitin interfaceGVTAttributedCharacterIterator
-
getRunLimit
public int getRunLimit(java.util.Set attributes)
Get the index of the first character following the run with respect to the given attributes containing the current character.- Specified by:
getRunLimitin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunLimitin interfaceGVTAttributedCharacterIterator
-
getRunStart
public int getRunStart()
Get the index of the first character of the run with respect to all attributes containing the current character.- Specified by:
getRunStartin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunStartin interfaceGVTAttributedCharacterIterator
-
getRunStart
public int getRunStart(java.text.AttributedCharacterIterator.Attribute attribute)
Get the index of the first character of the run with respect to the given attribute containing the current character.- Specified by:
getRunStartin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunStartin interfaceGVTAttributedCharacterIterator- Parameters:
attribute- The attribute for whose appearance the first offset is requested.
-
getRunStart
public int getRunStart(java.util.Set attributes)
Get the index of the first character of the run with respect to the given attributes containing the current character.- Specified by:
getRunStartin interfacejava.text.AttributedCharacterIterator- Specified by:
getRunStartin interfaceGVTAttributedCharacterIterator- Parameters:
attributes- the Set of attributes which begins at the returned index.
-
clone
public java.lang.Object clone()
Create a copy of this iterator- Specified by:
clonein interfacejava.text.CharacterIterator- Specified by:
clonein interfaceGVTAttributedCharacterIterator- Overrides:
clonein classjava.lang.Object
-
current
public char current()
Get the character at the current position (as returned by getIndex()).
Specified by: java.text.CharacterIterator.- Specified by:
currentin interfacejava.text.CharacterIterator- Specified by:
currentin interfaceGVTAttributedCharacterIterator
-
first
public char first()
Sets the position to getBeginIndex().- Specified by:
firstin interfacejava.text.CharacterIterator- Specified by:
firstin interfaceGVTAttributedCharacterIterator- Returns:
- the character at the start index of the text.
Specified by: java.text.CharacterIterator.
-
getBeginIndex
public int getBeginIndex()
Get the start index of the text.
Specified by: java.text.CharacterIterator.- Specified by:
getBeginIndexin interfacejava.text.CharacterIterator- Specified by:
getBeginIndexin interfaceGVTAttributedCharacterIterator
-
getEndIndex
public int getEndIndex()
Get the end index of the text.
Specified by: java.text.CharacterIterator.- Specified by:
getEndIndexin interfacejava.text.CharacterIterator- Specified by:
getEndIndexin interfaceGVTAttributedCharacterIterator
-
getIndex
public int getIndex()
Get the current index.
Specified by: java.text.CharacterIterator.- Specified by:
getIndexin interfacejava.text.CharacterIterator- Specified by:
getIndexin interfaceGVTAttributedCharacterIterator
-
last
public char last()
Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
Specified by: java.text.CharacterIterator.- Specified by:
lastin interfacejava.text.CharacterIterator- Specified by:
lastin interfaceGVTAttributedCharacterIterator
-
next
public char next()
Increments the iterator's index by one, returning the next character.- Specified by:
nextin interfacejava.text.CharacterIterator- Specified by:
nextin interfaceGVTAttributedCharacterIterator- Returns:
- the character at the new index.
Specified by: java.text.CharacterIterator.
-
previous
public char previous()
Decrements the iterator's index by one and returns the character at the new index.
Specified by: java.text.CharacterIterator.- Specified by:
previousin interfacejava.text.CharacterIterator- Specified by:
previousin interfaceGVTAttributedCharacterIterator
-
setIndex
public char setIndex(int position)
Sets the position to the specified position in the text.- Specified by:
setIndexin interfacejava.text.CharacterIterator- Specified by:
setIndexin interfaceGVTAttributedCharacterIterator- Parameters:
position- The new (current) index into the text.- Returns:
- the character at new index position.
Specified by: java.text.CharacterIterator.
-
buildAttributeTables
private void buildAttributeTables()
-
buildAttributeTables
private void buildAttributeTables(java.text.AttributedCharacterIterator aci)
-
-