com.icl.saxon.number

Class Numberer_en

Implemented Interfaces:
Numberer
Known Direct Subclasses:
Numberer_de

public class Numberer_en
extends 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.
Version:
4 August 2000
Author:
Michael H. Kay

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