org.apache.fop.fonts

Class AbstractCodePointMapping

Known Direct Subclasses:
CodePointMapping

public class AbstractCodePointMapping
extends java.lang.Object

Abstract base class for code point mapping classes (1-byte character encodings).

Constructor Summary

AbstractCodePointMapping(String name, int[] table)
Main constructor.
AbstractCodePointMapping(String name, int[] table, String[] charNameMap)
Extended constructor.

Method Summary

protected void
buildFromTable(int[] table)
Builds the internal lookup structures based on a given table.
String[]
getCharNameMap()
Returns the array of character names for this encoding.
short
getCodePointForGlyph(String charName)
Returns the index of a character/glyph with the given name.
String
getName()
Returns the encoding's name.
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.
String
toString()

Constructor Details

AbstractCodePointMapping

public AbstractCodePointMapping(String name,
                                int[] table)
Main constructor.
Parameters:
name - the name of the encoding
table - the table ([code point, unicode scalar value]+) with the mapping

AbstractCodePointMapping

public AbstractCodePointMapping(String name,
                                int[] table,
                                String[] charNameMap)
Extended constructor.
Parameters:
name - the name of the encoding
table - the table ([code point, unicode scalar value]+) with the mapping
charNameMap - all character names in the encoding (a value of null will be converted to ".notdef")

Method Details

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

getCharNameMap

public String[] getCharNameMap()
Returns the array of character names for this encoding.
Returns:
the array of character names (unmapped code points are represented by a ".notdef" value)

getCodePointForGlyph

public short getCodePointForGlyph(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

getName

public String getName()
Returns the encoding's name.
Returns:
the name of the encoding

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.
Returns:
a character array with Unicode scalar values

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 \uFFFF (NOT A CHARACTER) if no Unicode value is at that point)

mapChar

public final char mapChar(char c)
Maps a Unicode character to a code point in the encoding.
Parameters:
c - the Unicode character to map
Returns:
the coid point in the encoding or 0 (=.notdef) if not found

toString

public String toString()

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