1 32 33 package com.knowgate.math; 34 35 import java.util.Arrays ; 36 import java.util.Currency ; 37 import java.util.Comparator ; 38 39 44 45 public final class CurrencyCode { 46 47 private class CurrencyCodeComparator implements Comparator { 48 public int compare(Object oCurr1, Object oCurr2) throws NullPointerException { 49 return oCurr1.toString().compareToIgnoreCase(oCurr2.toString()); 50 } 51 } 52 53 55 66 public CurrencyCode(int iNum, String sAlpha, String sSign, String sId, String sNm, String sTrEn) 67 throws NullPointerException , IllegalArgumentException { 68 69 iNumericCode = iNum; 70 sAlphaCode = sAlpha; 71 sSignCode = sSign; 72 sIdEntity = sId; 73 sNmEntity = sNm; 74 sNmCurrencyEn = sTrEn; 75 jCurrency = Currency.getInstance(sAlpha); 76 } 77 78 80 public Currency currency() { 81 return jCurrency; 82 } 83 84 86 public String countryCode() { 87 return sIdEntity; 88 } 89 90 92 public String alphaCode() { 93 return sAlphaCode; 94 } 95 96 98 public String singleCharSign() { 99 return sSignCode; 100 } 101 102 104 public String currencyName() { 105 return sNmCurrencyEn; 106 } 107 108 110 public int numericCode() { 111 return iNumericCode; 112 } 113 114 116 public boolean equals(CurrencyCode oCurCod) { 117 if (sAlphaCode==null || oCurCod.alphaCode()==null) 118 return false; 119 else 120 return sAlphaCode.equals(oCurCod.alphaCode()); 121 } 122 123 125 public String toString() { 126 return sAlphaCode; 127 } 128 129 131 public static CurrencyCode currencyCodeFor (String sAlphaCode) { 132 CurrencyCode oCurrCode; 133 int iTableIndex; 134 if (sAlphaCode!=null) { 135 if (sAlphaCode.equalsIgnoreCase("EUR")) 136 oCurrCode = EUR; 137 else if (sAlphaCode.equalsIgnoreCase("USD")) 138 oCurrCode = USD; 139 else if (sAlphaCode.equalsIgnoreCase("GBP")) 140 oCurrCode = GBP; 141 else if (sAlphaCode.equalsIgnoreCase("JPY")) 142 oCurrCode = JPY; 143 else if (sAlphaCode.equalsIgnoreCase("CNY")) 144 oCurrCode = CNY; 145 else if (sAlphaCode.equalsIgnoreCase("RUB")) 146 oCurrCode = RUB; 147 else { 148 oCurrCode = EUR; iTableIndex = Arrays.binarySearch(Table, sAlphaCode, oCurrCode.currencyCodeComparator()); 150 if (iTableIndex >= 0) 151 oCurrCode = Table[iTableIndex]; 152 else 153 oCurrCode = null; 154 } 155 } else { 156 oCurrCode = null; 157 } 158 return oCurrCode; 159 } 161 163 public static CurrencyCode currencyCodeFor (int iNumCode) { 164 final int iCount = Table.length; 165 CurrencyCode oCurrCode = null; 166 if (iNumCode==978) 167 oCurrCode=EUR; 168 else if (iNumCode==840) 169 oCurrCode=USD; 170 else if (iNumCode==826) 171 oCurrCode=GBP; 172 else if (iNumCode==392) 173 oCurrCode=JPY; 174 else if (iNumCode==156) 175 oCurrCode=CNY; 176 else if (iNumCode==643) 177 oCurrCode=RUB; 178 else 179 { 180 for (int c=0; c<iCount && oCurrCode==null; c++) { 181 if (Table[c].iNumericCode==iNumCode) oCurrCode=Table[c]; 182 } } 184 return oCurrCode; 185 } 187 189 private CurrencyCodeComparator currencyCodeComparator() { 190 if (null==oCurrCodeComp) oCurrCodeComp = new CurrencyCodeComparator(); 191 return oCurrCodeComp; 192 } 193 194 196 public static final CurrencyCode CNY = new CurrencyCode(156,"CNY","¤","cn","China","Yuan Renminbi"); 197 public static final CurrencyCode EUR = new CurrencyCode(978,"EUR","€","eec","European Economic Comunity","Euro"); 198 public static final CurrencyCode GBP = new CurrencyCode(826,"GBP","£","uk","United Kingdom","Pound Sterling"); 199 public static final CurrencyCode JPY = new CurrencyCode(392,"JPY","¥","jp","Japan","Yen"); 200 public static final CurrencyCode USD = new CurrencyCode(840,"USD","$","us","United States","US Dollar"); 201 public static final CurrencyCode RUB = new CurrencyCode(643,"RUB","R","ru","Russia","Russian Ruble"); 202 203 205 private int iNumericCode; 206 private String sAlphaCode; 207 private String sSignCode; 208 private String sIdEntity; 209 private String sNmEntity; 210 private String sNmCurrencyEn; 211 private Currency jCurrency; 212 213 215 private static final Class ComparatorClass = new CurrencyCode(0,null,null,null,null,null).getClass(); 216 217 private CurrencyCodeComparator oCurrCodeComp = null; 218 219 221 private static final CurrencyCode[] Table = new CurrencyCode[] { 222 new CurrencyCode(20,"ADP","¤","ad","Andorra","Andorran Peseta"), 223 new CurrencyCode(784,"AED","¤","ae","United Arab Emirates","UAE Dirham"), 224 new CurrencyCode(4,"AFA","¤","af","Afghanistan","Afghani"), 225 new CurrencyCode(8,"ALL","¤","al","Albania","Lek"), 226 new CurrencyCode(51,"AMD","¤","am","Armenia","Armenian Dram"), 227 new CurrencyCode(532,"ANG","ƒ","an","Netherlands Antilles","Antillian Guilder"), 228 new CurrencyCode(982,"AOR","¤","ao","Angola","Kwanza Reajustado"), 229 new CurrencyCode(32,"ARS","¤","ar","Argentina","Argentine Peso"), 230 new CurrencyCode(40,"ATS","¤","as","Austria","Schilling"), 231 new CurrencyCode(36,"AUD","$","au","Australia","Australian Dollar"), 232 new CurrencyCode(533,"AWG","ƒ","aw","Aruba","Aruban Guilder"), 233 new CurrencyCode(31,"AZM","¤","az","Azerbaijan","Azerbaijanian Manat"), 234 new CurrencyCode(977,"BAM","¤","ba","Bosnia-Herzegovina","Convertible Marks"), 235 new CurrencyCode(52,"BBD","$","bb","Barbados","Barbados Dollar"), 236 new CurrencyCode(50,"BDT","¤","bd","Bangladesh","Taka"), 237 new CurrencyCode(56,"BEF","¤","be","Belgium","Belgian Franc"), 238 new CurrencyCode(975,"BGN","¤","bg","Bulgaria","Bulgarian Lev"), 239 new CurrencyCode(48,"BHD","¤","bh","Bahrain","Bahraini Dinar"), 240 new CurrencyCode(108,"BIF","¤","bi","Burundi","Burundi Franc"), 241 new CurrencyCode(60,"BMD","¤","bm","Bermuda","Bermudian Dollar"), 242 new CurrencyCode(96,"BND","¤","bn","Brunei Darussalam","Brunei Dollar"), 243 new CurrencyCode(986,"BRL","¤","br","Brazil","Brazilian Real"), 244 new CurrencyCode(44,"BSD","¤","bs","Bahamas","Bahamian Dollar"), 245 new CurrencyCode(64,"BTN","¤","bt","Bhutan","Ngultrum"), 246 new CurrencyCode(72,"BWP","¤",null,"Botswana","Pula"), 247 new CurrencyCode(974,"BYR","¤","by","Belarus","Belarussian Ruble"), 248 new CurrencyCode(84,"BZD","¤","bz","Belize","Belize Dollar"), 249 new CurrencyCode(124,"CAD","¤","ca","Canada","Canadian Dollar"), 250 new CurrencyCode(976,"CDF","¤","cg","Congo, The Democratic Republic Of","Franc Congolais"), 251 new CurrencyCode(756,"CHF","¤","ch","Switzerland","Swiss Franc"), 252 new CurrencyCode(152,"CLP","¤","cl","Chile","Chilean Peso"), 253 CNY, 254 new CurrencyCode(170,"COP","¤","co","Colombia","Colombian Peso"), 255 new CurrencyCode(188,"CRC","¤","cr","Costa Rica","Costa Rican Colon"), 256 new CurrencyCode(192,"CUP","¤","cu","Cuba","Cuban Peso"), 257 new CurrencyCode(132,"CVE","¤","cv","Cape Verde","Cape Verde Escudo"), 258 new CurrencyCode(196,"CYP","¤","cy","Cyprus","Cyprus Pound"), 259 new CurrencyCode(203,"CZK","¤","cz","Czech Republic","Czech Koruna"), 260 new CurrencyCode(280,"DEM","¤","nu","Germany","Deutsche Mark"), 261 new CurrencyCode(262,"DJF","¤","dj","Djibouti","Djibouti Franc"), 262 new CurrencyCode(208,"DKK","¤","dk","Denmark","Danish Krone"), 263 new CurrencyCode(214,"DOP","¤","do","Dominican Republic","Dominican Peso"), 264 new CurrencyCode(12,"DZD","¤","dz","Algeria","Algerian Dinar"), 265 new CurrencyCode(218,"ECS","¤","ec","Ecuador","Sucre"), 266 new CurrencyCode(233,"EEK","¤","ee","Estonia","Kroon"), 267 new CurrencyCode(818,"EGP","£","eg","Egypt","Egyptian Pound"), 268 new CurrencyCode(232,"ERN","¤","nu","Eritrea","Nakfa"), 269 new CurrencyCode(724,"ESP","Pts","es","Spain","Spanish Peseta"), 270 new CurrencyCode(230,"ETB","¤","et","Ethiopia","Ethiopian Birr"), 271 EUR, 272 new CurrencyCode(246,"FIM","¤","fi","Finland","Markka"), 273 new CurrencyCode(242,"FJD","¤","fj","Fiji","Fiji Dollar"), 274 new CurrencyCode(238,"FKP","¤","fk","Falkland Islands","Pound"), 275 new CurrencyCode(250,"FRF","F","fr","France","French Franc"), 276 GBP, 277 new CurrencyCode(981,"GEL","¤","ge","Georgia","Lari"), 278 new CurrencyCode(288,"GHC","¤","gh","Ghana","Cedi"), 279 new CurrencyCode(292,"GIP","£","gi","Gibraltar","Gibraltar Pound"), 280 new CurrencyCode(270,"GMD","¤","gm","Gambia","Dalasi"), 281 new CurrencyCode(324,"GNF","F","gn","Guinea","Guinea Franc"), 282 new CurrencyCode(300,"GRD","¤","gr","Greece","Drachma"), 283 new CurrencyCode(320,"GTQ","¤","gt","Guatemala","Quetzal"), 284 new CurrencyCode(624,"GWP","¤","gw","Guinea-Bissau","Guinea-Bissau Peso"), 285 new CurrencyCode(328,"GYD","$","gy","Guyana","Guyana Dollar"), 286 new CurrencyCode(344,"HKD","$","hk","Hong Kong","Hong Kong Dollar"), 287 new CurrencyCode(340,"HNL","¤","hn","Honduras","Lempira"), 288 new CurrencyCode(191,"HRK","¤","hr","Croatia","Kuna"), 289 new CurrencyCode(332,"HTG","¤","ht","Haiti","Gourde"), 290 new CurrencyCode(348,"HUF","ƒ","hu","Hungary","Forint"), 291 new CurrencyCode(360,"IDR","¤","id","Indonesia","Rupiah"), 292 new CurrencyCode(360,"IDR","¤","tp","East Timor","Rupiah"), 293 new CurrencyCode(372,"IEP","£","ie","Ireland","Irish Pound"), 294 new CurrencyCode(376,"ILS","¤","il","Israel","New Israeli Sheqel"), 295 new CurrencyCode(356,"INR","¤","in","India","Indian Rupee"), 296 new CurrencyCode(368,"IQD","¤","iq","Iraq","Iraqi Dinar"), 297 new CurrencyCode(364,"IRR","¤","ir","Iran","Iranian Rial"), 298 new CurrencyCode(352,"ISK","¤","is","Iceland","Iceland Krona"), 299 new CurrencyCode(380,"ITL","£","it","Italy","Italian Lira"), 300 new CurrencyCode(388,"JMD","$","jm","Jamaica","Jamaican Dollar"), 301 new CurrencyCode(400,"JOD","¤","jo","Jordan","Jordanian Dinar"), 302 JPY, 303 new CurrencyCode(404,"KES","¤","ke","Kenya","Kenyan Shilling"), 304 new CurrencyCode(417,"KGS","¤","kg","Kyrgyzstan","Som"), 305 new CurrencyCode(116,"KHR","¤","kh","Cambodia, Kingdom of","Riel"), 306 new CurrencyCode(174,"KMF","¤","km","Comoros","Comoro Franc"), 307 new CurrencyCode(408,"KPW","¤",null,"Korea, Democratic People's Republic Of","North Korean Won"), 308 new CurrencyCode(410,"KRW","¤",null,"Korea, Republic Of","Won"), 309 new CurrencyCode(414,"KWD","¤","kw","Kuwait","Kuwaiti Dinar"), 310 new CurrencyCode(136,"KYD","¤","ky","Cayman Islands","Cayman Islands Dollar"), 311 new CurrencyCode(398,"KZT","¤","kz","Kazakhstan","Tenge"), 312 new CurrencyCode(418,"LAK","¤","la","Lao People's Democratic Republic","Kip"), 313 new CurrencyCode(422,"LBP","¤","lb","Lebanon","Lebanese Pound"), 314 new CurrencyCode(144,"LKR","¤","lk","Sri Lanka","Sri Lanka Rupee"), 315 new CurrencyCode(430,"LRD","¤","lr","Liberia","Liberian Dollar"), 316 new CurrencyCode(426,"LSL","¤","ls","Lesotho","Loti"), 317 new CurrencyCode(440,"LTL","¤","lt","Lithuania","Lithuanian Litas"), 318 new CurrencyCode(442,"LUF","¤","lu","Luxembourg","Luxembourg Franc"), 319 new CurrencyCode(428,"LVL","¤","lv","Latvia","Latvian Lats"), 320 new CurrencyCode(434,"LYD","¤","ly","Libyan Arab Jamahiriya","Libyan Dinar"), 321 new CurrencyCode(504,"MAD","¤","ma","Morocco","Moroccan Dirham"), 322 new CurrencyCode(498,"MDL","¤","md","Republic Of Moldova","Moldovan Leu"), 323 new CurrencyCode(450,"MGF","¤","mg","Madagascar","Malagasy Franc"), 324 new CurrencyCode(807,"MKD","¤","mk","Macedonia, The Former Yugoslav Republic Of","Denar"), 325 new CurrencyCode(104,"MMK","¤","mm","Myanmar","Kyat"), 326 new CurrencyCode(496,"MNT","¤","mn","Mongolia","Tugrik"), 327 new CurrencyCode(446,"MOP","¤","mo","Macau","Pataca"), 328 new CurrencyCode(478,"MRO","¤","mr","Mauritania","Ouguiya"), 329 new CurrencyCode(470,"MTL","¤","mt","Malta","Maltese Lira"), 330 new CurrencyCode(480,"MUR","¤","mu","Mauritius","Mauritius Rupee"), 331 new CurrencyCode(462,"MVR","¤","mv","Maldives","Rufiyaa"), 332 new CurrencyCode(454,"MWK","¤","mw","Malawi","Kwacha"), 333 new CurrencyCode(484,"MXN","¤","mx","Mexico","Mexican Peso"), 334 new CurrencyCode(979,"MXV","¤","mx","Mexico","Mexican Unidad de Inversion (UDI)"), 335 new CurrencyCode(458,"MYR","¤","my","Malaysia","Malaysian Ringgit"), 336 new CurrencyCode(508,"MZM","¤","mz","Mozambique","Metical"), 337 new CurrencyCode(516,"NAD","¤","na","Namibia","Namibia Dollar"), 338 new CurrencyCode(566,"NGN","¤","ng","Nigeria","Naira"), 339 new CurrencyCode(558,"NIO","¤","ni","Nicaragua","Cordoba Oro"), 340 new CurrencyCode(528,"NLG","¤","nl","Netherlands","Netherlands Guilder"), 341 new CurrencyCode(578,"NOK","¤","no","Norway","Norwegian Krone"), 342 new CurrencyCode(524,"NPR","¤","np","Nepal","Nepalese Rupee"), 343 new CurrencyCode(554,"NZD","¤","nz","New Zealand","New Zealand Dollar"), 344 new CurrencyCode(512,"OMR","¤","om","Oman","Rial Omani"), 345 new CurrencyCode(590,"PAB","¤","pa","Panama","Balboa"), 346 new CurrencyCode(604,"PEN","¤","pe","Peru","Nuevo Sol"), 347 new CurrencyCode(598,"PGK","¤","pg","Papua New Guinea","Kina"), 348 new CurrencyCode(608,"PHP","¤","ph","Philippines","Philippine Peso"), 349 new CurrencyCode(586,"PKR","¤","pk","Pakistan","Pakistan Rupee"), 350 new CurrencyCode(985,"PLN","¤","pl","Poland","Zloty"), 351 new CurrencyCode(620,"PTE","¤","pt","Portugal","Portuguese Escudo"), 352 new CurrencyCode(600,"PYG","¤","py","Paraguay","Guarani"), 353 new CurrencyCode(634,"QAR","¤","qa","Qatar","Qatari Rial"), 354 new CurrencyCode(642,"ROL","¤","ro","Romania","Leu"), 355 RUB, 356 new CurrencyCode(810,"RUR","¤","ru","Russian Federation","Russian Ruble"), 357 new CurrencyCode(646,"RWF","¤","rw","Rwanda","Rwanda Franc"), 358 new CurrencyCode(682,"SAR","¤","sa","Saudi Arabia","Saudi Riyal"), 359 new CurrencyCode(90,"SBD","¤","sb","Solomon Islands","Solomon Islands Dollar"), 360 new CurrencyCode(690,"SCR","¤","sc","Seychelles","Seychelles Rupee"), 361 new CurrencyCode(736,"SDD","¤","sd","Sudan","Sudanese Dinar"), 362 new CurrencyCode(752,"SEK","¤","se","Sweden","Swedish Krona"), 363 new CurrencyCode(702,"SGD","¤","sg","Singapore","Singapore Dollar"), 364 new CurrencyCode(705,"SIT","¤","si","Slovenia","Tolar"), 365 new CurrencyCode(703,"SKK","¤","si","Slovakia","Slovak Koruna"), 366 new CurrencyCode(694,"SLL","¤","sl","Sierra Leone","Leone"), 367 new CurrencyCode(706,"SOS","¤","so","Somalia","Somali Shilling"), 368 new CurrencyCode(740,"SRG","¤","sr","Suriname","Surinam Guilder"), 369 new CurrencyCode(678,"STD","¤","st","Saint Tome and Principe","Dobra"), 370 new CurrencyCode(222,"SVC","¤","sv","El Salvador","El Salvador Colon"), 371 new CurrencyCode(760,"SYP","¤","sy","Syrian Arab Republic","Syrian Pound"), 372 new CurrencyCode(748,"SZL","¤","sz","Swaziland","Lilangeni"), 373 new CurrencyCode(764,"THB","?","th","Thailand","Baht"), 374 new CurrencyCode(762,"TJR","¤","tj","Tadjikistan (Old)","Tajik Ruble (old)"), 375 new CurrencyCode(972,"TJS","¤","tj","Tadjikistan","Somoni"), 376 new CurrencyCode(795,"TMM","¤","tm","Turkmenistan","Manat"), 377 new CurrencyCode(788,"TND","¤","tn","Tunisia","Tunisian Dinar"), 378 new CurrencyCode(776,"TOP","¤","to","Tonga","Pa'anga"), 379 new CurrencyCode(626,"TPE","¤","tp","East Timor","Timor Escudo"), 380 new CurrencyCode(792,"TRL","£","tr","Turkey","Turkish Lira"), 381 new CurrencyCode(780,"TTD","¤","tt","Trinidad and Tobago","Trinidad and Tobago Dollar"), 382 new CurrencyCode(901,"TWD","¤","tw","Taiwan","New Taiwan Dollar"), 383 new CurrencyCode(834,"TZS","¤","tz","United Republic Of Tanzania","Tanzanian Shilling"), 384 new CurrencyCode(980,"UAH","¤","ua","Ukraine","Hryvnia"), 385 new CurrencyCode(800,"UGX","¤","ug","Uganda","Uganda Shilling"), 386 USD, 387 new CurrencyCode(858,"UYU","¤","uy","Uruguay","Peso Uruguayo"), 388 new CurrencyCode(860,"UZS","¤","uz","Uzbekistan","Uzbekistan Sum"), 389 new CurrencyCode(862,"VEB","¤","ve","Venezuela","Bolivar"), 390 new CurrencyCode(704,"VND","¤","vn","Vietnam","Dong"), 391 new CurrencyCode(548,"VUV","¤","vu","Vanuatu","Vatu"), 392 new CurrencyCode(882,"WST","¤","ws","Samoa","Tala"), 393 new CurrencyCode(950,"XAF","¤","ga","Gabon/Guinea/Congo/Chad/Cameroon","CFA Franc BEAC"), 394 new CurrencyCode(951,"XCD","$","gd","Caribbean Islands", "Caribbean Dollar"), 395 new CurrencyCode(952,"XOF","¤","gw","Guinea-Bissau/Togo/Senegal/niger/Mali","CFA Franc BCEAO"), 396 new CurrencyCode(953,"XPF","¤","pf","Polynesia/New Caledonia/Wallis","CFP Franc"), 397 new CurrencyCode(999,"XXX","",null,null,"No currency"), 398 new CurrencyCode(886,"YER","¤","ye","Yemen","Yemeni Rial"), 399 new CurrencyCode(891,"YUM","¤","yu","Yugoslavia","New Dinar"), 400 new CurrencyCode(710,"ZAR","¤","za","South Africa/Namibia/Lesotho","Rand"), 401 new CurrencyCode(894,"ZMK","¤","zm","Zambia","Kwacha"), 402 new CurrencyCode(180,"ZRN","¤","zr","Zaire","New Zaire"), 403 new CurrencyCode(716,"ZWD","$","zw","Zimbabwe","Zimbabwe Dollar") 404 }; 405 } 406 | Popular Tags |