Package org.apache.fop.fonts
Class AbstractCodePointMapping
- java.lang.Object
-
- org.apache.fop.fonts.AbstractCodePointMapping
-
- All Implemented Interfaces:
SingleByteEncoding
- Direct Known Subclasses:
CodePointMapping
public class AbstractCodePointMapping extends java.lang.Object implements SingleByteEncoding
Abstract base class for code point mapping classes (1-byte character encodings).
-
-
Field Summary
Fields Modifier and Type Field Description private char[]
characters
private java.lang.String[]
charNameMap
private char[]
codepoints
private char[]
latin1Map
private java.lang.String
name
private char[]
unicodeMap
-
Fields inherited from interface org.apache.fop.fonts.SingleByteEncoding
NOT_FOUND_CODE_POINT
-
-
Constructor Summary
Constructors Constructor Description AbstractCodePointMapping(java.lang.String name, int[] table)
Main constructor.AbstractCodePointMapping(java.lang.String name, int[] table, java.lang.String[] charNameMap)
Extended constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
buildFromTable(int[] table)
Builds the internal lookup structures based on a given table.java.lang.String[]
getCharNameMap()
Returns the array of character names for this encoding.short
getCodePointForGlyph(java.lang.String charName)
Returns the index of a character/glyph with the given name.java.lang.String
getName()
Returns the encoding's name.java.lang.String
getNameFromCodePoint(int idx)
char[]
getUnicodeCharMap()
Returns a character array with Unicode scalar values which can be used to map encoding code points to Unicode values.char
getUnicodeForIndex(int idx)
Returns the main Unicode value that is associated with the given code point in the encoding.char
mapChar(char c)
Maps a Unicode character to a code point in the encoding.java.lang.String
toString()
-
-
-
Constructor Detail
-
AbstractCodePointMapping
public AbstractCodePointMapping(java.lang.String name, int[] table)
Main constructor.- Parameters:
name
- the name of the encodingtable
- the table ([code point, unicode scalar value]+) with the mapping
-
AbstractCodePointMapping
public AbstractCodePointMapping(java.lang.String name, int[] table, java.lang.String[] charNameMap)
Extended constructor.- Parameters:
name
- the name of the encodingtable
- the table ([code point, unicode scalar value]+) with the mappingcharNameMap
- all character names in the encoding (a value of null will be converted to ".notdef")
-
-
Method Detail
-
buildFromTable
protected void buildFromTable(int[] table)
Builds the internal lookup structures based on a given table.- Parameters:
table
- the table ([code point, unicode scalar value]+) with the mapping
-
getName
public java.lang.String getName()
Returns the encoding's name.- Specified by:
getName
in interfaceSingleByteEncoding
- Returns:
- the name of the encoding
-
mapChar
public final char mapChar(char c)
Maps a Unicode character to a code point in the encoding.- Specified by:
mapChar
in interfaceSingleByteEncoding
- Parameters:
c
- the Unicode character to map- Returns:
- the code point in the encoding or 0 (=.notdef) if not found
-
getUnicodeForIndex
public final char getUnicodeForIndex(int idx)
Returns the main Unicode value that is associated with the given code point in the encoding. Note that multiple Unicode values can theoretically be mapped to one code point in the encoding.- Parameters:
idx
- the code point in the encoding- Returns:
- the Unicode value (or (NOT A CHARACTER) if no Unicode value is at that point)
-
getUnicodeCharMap
public final char[] getUnicodeCharMap()
Returns a character array with Unicode scalar values which can be used to map encoding code points to Unicode values. Note that this does not return all possible Unicode values that the encoding maps.- Specified by:
getUnicodeCharMap
in interfaceSingleByteEncoding
- Returns:
- a character array with Unicode scalar values
-
getCodePointForGlyph
public short getCodePointForGlyph(java.lang.String charName)
Returns the index of a character/glyph with the given name. Note that this method is relatively slow and should only be used for fallback operations.- Parameters:
charName
- the character name- Returns:
- the index of the character in the encoding or -1 if it doesn't exist
-
getNameFromCodePoint
public java.lang.String getNameFromCodePoint(int idx)
-
getCharNameMap
public java.lang.String[] getCharNameMap()
Returns the array of character names for this encoding.- Specified by:
getCharNameMap
in interfaceSingleByteEncoding
- Returns:
- the array of character names (unmapped code points are represented by a ".notdef" value)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-