com.icl.saxon.number

Class Numberer_en

Implemented Interfaces:
Numberer
Known Direct Subclasses:
Numberer_de

public class Numberer_en
extends java.lang.Object
implements Numberer

Class Numberer_en does number formatting for language="en". This supports the xsl:number element. Methods and data are declared as protected, and static is avoided, to allow easy subclassing.

Nested Class Summary

Field Summary

protected String
cyrillicLower
protected String
cyrillicUpper
protected String[]
englishTens
protected String[]
englishUnits
protected String
greekLower
protected String
greekUpper
protected String
hebrew
protected String
hiraganaA
protected String
hiraganaI
protected String
kanjiDigits
protected String
katakanaA
protected String
katakanaI
protected String
latinLower
protected String
latinUpper
protected String
westernDigits

Method Summary

protected void
alphaDefault(int number, char formchar, StringBuffer sb)
Default processing with an alphabetic format token: use the contiguous range of Unicode letters starting with that token.
String
format(int number, String picture, int groupSize, String groupSeparator, String letterValue)
Format a number into a string
protected String
toAlpha(int number, int min, int max)
Format the number as an alphabetic label using the alphabet consisting of consecutive Unicode characters from min to max
protected String
toAlphaSequence(int number, String alphabet)
Convert the number into an alphabetic label using a given alphabet.
protected String
toRadical(int number, String digits, String picture, int groupSize, String groupSeparator)
Convert the number into a decimal or other representation using the given set of digits.
protected String
toRoman(int n)
Generate a Roman numeral (in lower case)
String
toWords(int number)
Show the number as English words

Field Details

cyrillicLower

protected String cyrillicLower


cyrillicUpper

protected String cyrillicUpper


englishTens

protected String[] englishTens


englishUnits

protected String[] englishUnits


greekLower

protected String greekLower


greekUpper

protected String greekUpper


hebrew

protected String hebrew


hiraganaA

protected String hiraganaA


hiraganaI

protected String hiraganaI


kanjiDigits

protected String kanjiDigits


katakanaA

protected String katakanaA


katakanaI

protected String katakanaI


latinLower

protected String latinLower


latinUpper

protected String latinUpper


westernDigits

protected String westernDigits

Method Details

alphaDefault

protected void alphaDefault(int number,
                            char formchar,
                            StringBuffer sb)
Default processing with an alphabetic format token: use the contiguous range of Unicode letters starting with that token.


format

public String format(int number,
                     String picture,
                     int groupSize,
                     String groupSeparator,
                     String letterValue)
Format a number into a string
Specified by:
format in interface Numberer

Parameters:
number - The number to be formatted
picture - The format specification. This is a single component of the format attribute of xsl:number, e.g. "1", "01", "i", or "a"
groupSize - number of digits per group (0 implies no grouping)
groupSeparator - string to appear between groups of digits
letterValue - as defined in xsl:number ("alphabetic" or "traditional" or "")

Returns:
the formatted number


toAlpha

protected String toAlpha(int number,
                         int min,
                         int max)
Format the number as an alphabetic label using the alphabet consisting of consecutive Unicode characters from min to max


toAlphaSequence

protected String toAlphaSequence(int number,
                                 String alphabet)
Convert the number into an alphabetic label using a given alphabet. For example, if the alphabet is "xyz" the sequence is x, y, z, xx, xy, xz, ....


toRadical

protected String toRadical(int number,
                           String digits,
                           String picture,
                           int groupSize,
                           String groupSeparator)
Convert the number into a decimal or other representation using the given set of digits. For example, if the digits are "01" the sequence is 1, 10, 11, 100, 101, 110, 111, ...

Parameters:
number - the number to be formatted
digits - the set of digits to be used
picture - the formatting token, e.g. 001 means include leading zeroes to give at least three decimal places
groupSeparator - the separator to use between groups of digits.


toRoman

protected String toRoman(int n)
Generate a Roman numeral (in lower case)


toWords

public String toWords(int number)
Show the number as English words