// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) fieldsfirst lnc // Source File Name: Numberer_en.java package com.icl.saxon.number; // Referenced classes of package com.icl.saxon.number: // Numberer public class Numberer_en implements Numberer { protected String westernDigits; protected String latinUpper; protected String latinLower; protected String greekUpper; protected String greekLower; protected String cyrillicUpper; protected String cyrillicLower; protected String hebrew; protected String hiraganaA; protected String katakanaA; protected String hiraganaI; protected String katakanaI; protected String kanjiDigits; private static String romanThousands[] = { /* 338*/ "", "m", "mm", "mmm", "mmmm", "mmmmm", "mmmmmm", "mmmmmmm", "mmmmmmmm", "mmmmmmmmm" }; private static String romanHundreds[] = { /* 340*/ "", "c", "cc", "ccc", "cd", "d", "dc", "dcc", "dccc", "cm" }; private static String romanTens[] = { /* 342*/ "", "x", "xx", "xxx", "xl", "l", "lx", "lxx", "lxxx", "xc" }; private static String romanUnits[] = { /* 344*/ "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix" }; protected String englishUnits[] = { /* 371*/ "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", /* 371*/ "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; protected String englishTens[] = { /* 376*/ "", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; public Numberer_en() { /* 157*/ westernDigits = "0123456789"; /* 160*/ latinUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* 163*/ latinLower = "abcdefghijklmnopqrstuvwxyz"; /* 166*/ greekUpper = "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9"; /* 171*/ greekLower = "\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9"; /* 179*/ cyrillicUpper = "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0421\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042B\u042D\u042E\u042F"; /* 184*/ cyrillicLower = "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0441\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044B\u044D\u044E\u044F"; /* 189*/ hebrew = "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DB\u05DC\u05DE\u05E0\u05E1\u05E2\u05E4\u05E6\u05E7\u05E8\u05E9\u05EA"; /* 197*/ hiraganaA = "\u3042\u3044\u3046\u3048\u304A\u304B\u304D\u304F\u3051\u3053\u3055\u3057\u3059\u305B\u305D\u305F\u3061\u3064\u3066\u3068\u306A\u306B\u306C\u306D\u306E\u306F\u3072\u3075\u3078\u307B\u307E\u307F\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308A\u308B\u308C\u308D\u308F\u3092\u3093"; /* 204*/ katakanaA = "\u30A2\u30A4\u30A6\u30A8\u30AA\u30AB\u30AD\u30AF\u30B1\u30B3\u30B5\u30B7\u30B9\u30BB\u30BD\u30BF\u30C1\u30C4\u30C6\u30C8\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D2\u30D5\u30D8\u30DB\u30DE\u30DF\u30E0\u30E1\u30E2\u30E4\u30E6\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EF\u30F2\u30F3"; /* 212*/ hiraganaI = "\u3044\u308D\u306F\u306B\u307B\u3078\u3068\u3061\u308A\u306C\u308B\u3092\u308F\u304B\u3088\u305F\u308C\u305D\u3064\u306D\u306A\u3089\u3080\u3046\u3090\u306E\u304A\u304F\u3084\u307E\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304D\u3086\u3081\u307F\u3057\u3091\u3072\u3082\u305B\u3059"; /* 220*/ katakanaI = "\u30A4\u30ED\u30CF\u30CB\u30DB\u30D8\u30C8\u30C1\u30EA\u30CC\u30EB\u30F2\u30EF\u30AB\u30E8\u30BF\u30EC\u30BD\u30C4\u30CD\u30CA\u30E9\u30E0\u30A6\u30F0\u30CE\u30AA\u30AF\u30E4\u30DE\u30B1\u30D5\u30B3\u30A8\u30C6\u30A2\u30B5\u30AD\u30E6\u30E1\u30DF\u30B7\u30F1\u30D2\u30E2\u30BB\u30B9"; /* 229*/ kanjiDigits = "\u3007\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D"; } public String format(int i, String s, int j, String s1, String s2) { /* 28*/ if(i <= 0) /* 28*/ return "" + i; /* 30*/ StringBuffer stringbuffer = new StringBuffer(); /* 31*/ char c = s.charAt(0); /* 33*/ switch(c) { /* 37*/ case 48: // '0' /* 37*/ case 49: // '1' /* 37*/ stringbuffer.append(toRadical(i, westernDigits, s, j, s1)); /* 38*/ break; /* 41*/ case 65: // 'A' /* 41*/ stringbuffer.append(toAlphaSequence(i, latinUpper)); /* 42*/ break; /* 45*/ case 97: // 'a' /* 45*/ stringbuffer.append(toAlphaSequence(i, latinLower)); /* 46*/ break; /* 49*/ case 105: // 'i' /* 49*/ if(s2.equals("alphabetic")) /* 50*/ alphaDefault(i, c, stringbuffer); /* 52*/ else /* 52*/ stringbuffer.append(toRoman(i)); /* 54*/ break; /* 57*/ case 73: // 'I' /* 57*/ if(s2.equals("alphabetic")) /* 58*/ alphaDefault(i, c, stringbuffer); /* 60*/ else /* 60*/ stringbuffer.append(toRoman(i).toUpperCase()); /* 62*/ break; /* 65*/ case 111: // 'o' /* 65*/ if(s.equals("one")) /* 66*/ stringbuffer.append(toWords(i)); /* 68*/ else /* 68*/ alphaDefault(i, c, stringbuffer); /* 70*/ break; /* 73*/ case 79: // 'O' /* 73*/ if(s.equals("ONE")) /* 74*/ stringbuffer.append(toWords(i).toUpperCase()); /* 76*/ else /* 76*/ alphaDefault(i, c, stringbuffer); /* 78*/ break; /* 81*/ case 913: /* 81*/ stringbuffer.append(toAlphaSequence(i, greekUpper)); /* 82*/ break; /* 85*/ case 945: /* 85*/ stringbuffer.append(toAlphaSequence(i, greekLower)); /* 86*/ break; /* 89*/ case 1040: /* 89*/ stringbuffer.append(toAlphaSequence(i, cyrillicUpper)); /* 90*/ break; /* 93*/ case 1072: /* 93*/ stringbuffer.append(toAlphaSequence(i, cyrillicLower)); /* 94*/ break; /* 97*/ case 1488: /* 97*/ stringbuffer.append(toAlphaSequence(i, hebrew)); /* 98*/ break; /* 101*/ case 12354: /* 101*/ stringbuffer.append(toAlphaSequence(i, hiraganaA)); /* 102*/ break; /* 105*/ case 12450: /* 105*/ stringbuffer.append(toAlphaSequence(i, katakanaA)); /* 106*/ break; /* 109*/ case 12356: /* 109*/ stringbuffer.append(toAlphaSequence(i, hiraganaI)); /* 110*/ break; /* 113*/ case 12452: /* 113*/ stringbuffer.append(toAlphaSequence(i, katakanaI)); /* 114*/ break; /* 117*/ case 19968: /* 117*/ stringbuffer.append(toRadical(i, kanjiDigits, s, j, s1)); /* 118*/ break; /* 122*/ default: /* 122*/ if(Character.isDigit(c)) { /* 124*/ int k = c - Character.getNumericValue(c); /* 125*/ String s3 = "" + (char)k + (char)(k + 1) + (char)(k + 2) + (char)(k + 3) + (char)(k + 4) + (char)(k + 5) + (char)(k + 6) + (char)(k + 7) + (char)(k + 8) + (char)(k + 9); /* 137*/ stringbuffer.append(toRadical(i, s3, s, j, s1)); /* 138*/ break; } /* 141*/ if(c < '\u1100') /* 142*/ alphaDefault(i, c, stringbuffer); /* 145*/ else /* 145*/ stringbuffer.append(toRadical(i, westernDigits, s, j, s1)); break; } /* 153*/ return stringbuffer.toString(); } protected void alphaDefault(int i, char c, StringBuffer stringbuffer) { /* 239*/ char c1 = c; int j; /* 240*/ for(j = c; Character.isLetterOrDigit((char)(j + 1)); j++); /* 243*/ stringbuffer.append(toAlpha(i, c1, j)); } protected String toAlpha(int i, int j, int k) { /* 252*/ if(i <= 0) /* 252*/ return "" + i; /* 253*/ int l = (k - j) + 1; /* 254*/ char c = (char)((i - 1) % l + j); /* 255*/ if(i > l) /* 256*/ return toAlpha((i - 1) / l, j, k) + c; /* 258*/ else /* 258*/ return "" + c; } protected String toAlphaSequence(int i, String s) { /* 268*/ if(i <= 0) /* 268*/ return "" + i; /* 269*/ int j = s.length(); /* 270*/ char c = s.charAt((i - 1) % j); /* 271*/ if(i > j) /* 272*/ return toAlphaSequence((i - 1) / j, s) + c; /* 274*/ else /* 274*/ return "" + c; } protected String toRadical(int i, String s, String s1, int j, String s2) { /* 293*/ StringBuffer stringbuffer = new StringBuffer(); /* 294*/ StringBuffer stringbuffer1 = new StringBuffer(); /* 295*/ int k = s.length(); /* 297*/ String s3 = ""; /* 298*/ for(int l = i; l > 0; l /= k) /* 300*/ s3 = s.charAt(l % k) + s3; /* 304*/ for(int i1 = 0; i1 < s1.length() - s3.length(); i1++) /* 305*/ stringbuffer1.append(s.charAt(0)); /* 307*/ stringbuffer1.append(s3); /* 309*/ if(j > 0) { /* 310*/ for(int j1 = 0; j1 < stringbuffer1.length(); j1++) { /* 311*/ if(j1 != 0 && (stringbuffer1.length() - j1) % j == 0) /* 312*/ stringbuffer.append(s2); /* 314*/ stringbuffer.append(stringbuffer1.charAt(j1)); } } else { /* 317*/ stringbuffer = stringbuffer1; } /* 320*/ return stringbuffer.toString(); } protected String toRoman(int i) { /* 328*/ if(i <= 0 || i > 9999) /* 328*/ return "" + i; /* 329*/ else /* 329*/ return romanThousands[i / 1000] + romanHundreds[(i / 100) % 10] + romanTens[(i / 10) % 10] + romanUnits[i % 10]; } public String toWords(int i) { /* 353*/ if(i >= 0x3b9aca00) /* 354*/ return toWords(i / 0x3b9aca00) + " billion " + toWords(i % 0x3b9aca00); /* 355*/ if(i >= 0xf4240) /* 356*/ return toWords(i / 0xf4240) + " million " + toWords(i % 0xf4240); /* 357*/ if(i >= 1000) /* 358*/ return toWords(i / 1000) + " thousand " + toWords(i % 1000); /* 359*/ if(i >= 100) { /* 360*/ int j = i % 100; /* 361*/ return toWords(i / 100) + " hundred" + (j != 0 ? " and " + toWords(j) : ""); } /* 364*/ if(i < 20) { /* 364*/ return englishUnits[i]; } else { /* 365*/ int k = i % 10; /* 366*/ return englishTens[i / 10] + (k != 0 ? " " + englishUnits[k] : ""); } } }