All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.neovisionaries.i18n.CurrencyCode Maven / Gradle / Ivy

/*
 * Copyright (C) 2014-2019 Neo Visionaries Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.neovisionaries.i18n;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Currency;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;


/**
 * Currency code (ISO 4217).
 *
 * 

* The initial entries in this enum was created based on * the official currency & funds code list (ISO 4217) of * January 1, 2014. *

* * @since 1.9 * * @see The official currency & funds code list * * @see ISO 4217 * * @author Takahiko Kawasaki */ public enum CurrencyCode { /** * Undefined. * *

* This is not an official ISO 4217 code. *

* * @since 1.14 * @see #XXX XXX: 999 No currency */ UNDEFINED("Undefined", -1, -1), /** * UAE Dirham * [numeric code = 784, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AE AE}: UNITED ARAB EMIRATES *
*/ AED("UAE Dirham", 784, 2, CountryCode.AE), /** * Afghani * [numeric code = 971, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AF AF}: AFGHANISTAN *
*/ AFN("Afghani", 971, 2, CountryCode.AF), /** * Lek * [numeric code = 8, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AL AL}: ALBANIA *
*/ ALL("Lek", 8, 2, CountryCode.AL), /** * Armenian Dram * [numeric code = 51, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AM AM}: ARMENIA *
*/ AMD("Armenian Dram", 51, 2, CountryCode.AM), /** * Netherlands Antillean Guilder * [numeric code = 532, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CW CW}: CURAÇAO *
  • {@link CountryCode#SX SX}: SINT MAARTEN (DUTCH PART) *
*/ ANG("Netherlands Antillean Guilder", 532, 2, CountryCode.CW, CountryCode.SX), /** * Kwanza * [numeric code = 973, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AO AO}: ANGOLA *
*/ AOA("Kwanza", 973, 2, CountryCode.AO), /** * Argentine Peso * [numeric code = 32, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AR AR}: ARGENTINA *
*/ ARS("Argentine Peso", 32, 2, CountryCode.AR), /** * Australian Dollar * [numeric code = 36, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AU AU}: AUSTRALIA *
  • {@link CountryCode#CC CC}: COCOS (KEELING) ISLANDS *
  • {@link CountryCode#CX CX}: CHRISTMAS ISLAND *
  • {@link CountryCode#HM HM}: HEARD ISLAND AND McDONALD ISLANDS *
  • {@link CountryCode#KI KI}: KIRIBATI *
  • {@link CountryCode#NF NF}: NORFOLK ISLAND *
  • {@link CountryCode#NR NR}: NAURU *
  • {@link CountryCode#TV TV}: TUVALU *
*/ AUD("Australian Dollar", 36, 2, CountryCode.AU, CountryCode.CC, CountryCode.CX, CountryCode.HM, CountryCode.KI, CountryCode.NF, CountryCode.NR, CountryCode.TV), /** * Aruban Florin * [numeric code = 533, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AW AW}: ARUBA *
*/ AWG("Aruban Florin", 533, 2, CountryCode.AW), /** * Azerbaijanian Manat * [numeric code = 944, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AZ AZ}: AZERBAIJAN *
*/ AZN("Azerbaijanian Manat", 944, 2, CountryCode.AZ), /** * Convertible Mark * [numeric code = 977, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BA BA}: BOSNIA AND HERZEGOVINA *
*/ BAM("Convertible Mark", 977, 2, CountryCode.BA), /** * Barbados Dollar * [numeric code = 52, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BB BB}: BARBADOS *
*/ BBD("Barbados Dollar", 52, 2, CountryCode.BB), /** * Taka * [numeric code = 50, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BD BD}: BANGLADESH *
*/ BDT("Taka", 50, 2, CountryCode.BD), /** * Bulgarian Lev * [numeric code = 975, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BG BG}: BULGARIA *
*/ BGN("Bulgarian Lev", 975, 2, CountryCode.BG), /** * Bahraini Dinar * [numeric code = 48, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#BH BH}: BAHRAIN *
*/ BHD("Bahraini Dinar", 48, 3, CountryCode.BH), /** * Burundi Franc * [numeric code = 108, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#BI BI}: BURUNDI *
*/ BIF("Burundi Franc", 108, 0, CountryCode.BI), /** * Bermudian Dollar * [numeric code = 60, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BM BM}: BERMUDA *
*/ BMD("Bermudian Dollar", 60, 2, CountryCode.BM), /** * Brunei Dollar * [numeric code = 96, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BN BN}: BRUNEI DARUSSALAM *
*/ BND("Brunei Dollar", 96, 2, CountryCode.BN), /** * Boliviano * [numeric code = 68, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BO BO}: BOLIVIA, PLURINATIONAL STATE OF *
*/ BOB("Boliviano", 68, 2, CountryCode.BO), /** * Mvdol * [numeric code = 984, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#BO BO}: BOLIVIA, PLURINATIONAL STATE OF *
*/ BOV("Mvdol", 984, 2, CountryCode.BO) { @Override public boolean isFund() { return true; } }, /** * Brazilian Real * [numeric code = 986, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BR BR}: BRAZIL *
*/ BRL("Brazilian Real", 986, 2, CountryCode.BR), /** * Bahamian Dollar * [numeric code = 44, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BS BS}: BAHAMAS *
*/ BSD("Bahamian Dollar", 44, 2, CountryCode.BS), /** * Ngultrum * [numeric code = 64, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BT BT}: BHUTAN *
*/ BTN("Ngultrum", 64, 2, CountryCode.BT), /** * Pula * [numeric code = 72, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BW BW}: BOTSWANA *
*/ BWP("Pula", 72, 2, CountryCode.BW), /** * Belarusian Ruble * [numeric code = 933, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BY BY}: BELARUS *
* *

* This currency code was added by ISO 4217 AMENDMENT NUMBER 161 (18 December 2015). Effective from 1 July 2016. *

* * @see ISO 4217 AMENDMENT NUMBER 161 * * @see #BYR * * @since 1.19 */ BYN("Belarusian Ruble", 933, 2, CountryCode.BY), /** * Belarusian Ruble * [numeric code = 974, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#BY BY}: BELARUS *
* * @see #BYN * * @deprecated */ BYR("Belarusian Ruble", 974, 0, CountryCode.BY), /** * Belize Dollar * [numeric code = 84, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BZ BZ}: BELIZE *
*/ BZD("Belize Dollar", 84, 2, CountryCode.BZ), /** * Canadian Dollar * [numeric code = 124, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CA CA}: CANADA *
*/ CAD("Canadian Dollar", 124, 2, CountryCode.CA), /** * Congolese Franc * [numeric code = 976, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CD CD}: CONGO, THE DEMOCRATIC REPUBLIC OF *
*/ CDF("Congolese Franc", 976, 2, CountryCode.CD), /** * WIR Euro * [numeric code = 947, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#CH CH}: SWITZERLAND *
*/ CHE("WIR Euro", 947, 2, CountryCode.CH) { @Override public boolean isFund() { return true; } }, /** * Swiss Franc * [numeric code = 756, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CH CH}: SWITZERLAND *
  • {@link CountryCode#LI LI}: LIECHTENSTEIN *
*/ CHF("Swiss Franc", 756, 2, CountryCode.CH, CountryCode.LI), /** * WIR Franc * [numeric code = 948, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#CH CH}: SWITZERLAND *
*/ CHW("WIR Franc", 948, 2, CountryCode.CH) { @Override public boolean isFund() { return true; } }, /** * Unidad de Fomento * [numeric code = 990, minor unit = 0, fund] * *

Used by:

*
    *
  • {@link CountryCode#CL CL}: CHILE *
*/ CLF("Unidad de Fomento", 990, 0, CountryCode.CL) { @Override public boolean isFund() { return true; } }, /** * Chilean Peso * [numeric code = 152, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#CL CL}: CHILE *
*/ CLP("Chilean Peso", 152, 0, CountryCode.CL), /** * Yuan Renminbi * [numeric code = 156, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CN CN}: CHINA *
*/ CNY("Yuan Renminbi", 156, 2, CountryCode.CN), /** * Colombian Peso * [numeric code = 170, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CO CO}: COLOMBIA *
*/ COP("Colombian Peso", 170, 2, CountryCode.CO), /** * Unidad de Valor Real * [numeric code = 970, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#CO CO}: COLOMBIA *
*/ COU("Unidad de Valor Real", 970, 2, CountryCode.CO) { @Override public boolean isFund() { return true; } }, /** * Costa Rican Colon * [numeric code = 188, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CR CR}: COSTA RICA *
*/ CRC("Costa Rican Colon", 188, 2, CountryCode.CR), /** * Peso Convertible * [numeric code = 931, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CU CU}: CUBA *
*/ CUC("Peso Convertible", 931, 2, CountryCode.CU), /** * Cuban Peso * [numeric code = 192, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CU CU}: CUBA *
*/ CUP("Cuban Peso", 192, 2, CountryCode.CU), /** * Cape Verde Escudo * [numeric code = 132, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CV CV}: CAPE VERDE *
*/ CVE("Cape Verde Escudo", 132, 2, CountryCode.CV), /** * Czech Koruna * [numeric code = 203, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CZ CZ}: CZECH REPUBLIC *
*/ CZK("Czech Koruna", 203, 2, CountryCode.CZ), /** * Djibouti Franc * [numeric code = 262, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#DJ DJ}: DJIBOUTI *
*/ DJF("Djibouti Franc", 262, 0, CountryCode.DJ), /** * Danish Krone * [numeric code = 208, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#DK DK}: DENMARK *
  • {@link CountryCode#FO FO}: FAROE ISLANDS *
  • {@link CountryCode#GL GL}: GREENLAND *
*/ DKK("Danish Krone", 208, 2, CountryCode.DK, CountryCode.FO, CountryCode.GL), /** * Dominican Peso * [numeric code = 214, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#DO DO}: DOMINICAN REPUBLIC *
*/ DOP("Dominican Peso", 214, 2, CountryCode.DO), /** * Algerian Dinar * [numeric code = 12, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#DZ DZ}: ALGERIA *
*/ DZD("Algerian Dinar", 12, 2, CountryCode.DZ), /** * Egyptian Pound * [numeric code = 818, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#EG EG}: EGYPT *
*/ EGP("Egyptian Pound", 818, 2, CountryCode.EG), /** * Nakfa * [numeric code = 232, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ER ER}: ERITREA *
*/ ERN("Nakfa", 232, 2, CountryCode.ER), /** * Ethiopian Birr * [numeric code = 230, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ET ET}: ETHIOPIA *
*/ ETB("Ethiopian Birr", 230, 2, CountryCode.ET), /** * Euro * [numeric code = 978, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AD AD}: ANDORRA *
  • {@link CountryCode#AT AT}: AUSTRIA *
  • {@link CountryCode#AX AX}: ÅLAND ISLANDS *
  • {@link CountryCode#BE BE}: BELGIUM *
  • {@link CountryCode#BL BL}: SAINT BARTHÉLEMY *
  • {@link CountryCode#CY CY}: CYPRUS *
  • {@link CountryCode#DE DE}: GERMANY *
  • {@link CountryCode#EE EE}: ESTONIA *
  • {@link CountryCode#ES ES}: SPAIN *
  • {@link CountryCode#EU EU}: EUROPEAN UNION *
  • {@link CountryCode#FI FI}: FINLAND *
  • {@link CountryCode#FR FR}: FRANCE *
  • {@link CountryCode#GF GF}: FRENCH GUIANA *
  • {@link CountryCode#GP GP}: GUADELOUPE *
  • {@link CountryCode#GR GR}: GREECE *
  • {@link CountryCode#IE IE}: IRELAND *
  • {@link CountryCode#IT IT}: ITALY *
  • {@link CountryCode#LT LT}: LITHUANIA *
  • {@link CountryCode#LU LU}: LUXEMBOURG *
  • {@link CountryCode#LV LV}: LATVIA *
  • {@link CountryCode#MC MC}: MONACO *
  • {@link CountryCode#ME ME}: MONTENEGRO *
  • {@link CountryCode#MF MF}: SAINT MARTIN (FRENCH PART) *
  • {@link CountryCode#MQ MQ}: MARTINIQUE *
  • {@link CountryCode#MT MT}: MALTA *
  • {@link CountryCode#NL NL}: NETHERLANDS *
  • {@link CountryCode#PM PM}: SAINT PIERRE AND MIQUELON *
  • {@link CountryCode#PT PT}: PORTUGAL *
  • {@link CountryCode#RE RE}: RÉUNION *
  • {@link CountryCode#SI SI}: SLOVENIA *
  • {@link CountryCode#SK SK}: SLOVAKIA *
  • {@link CountryCode#SM SM}: SAN MARINO *
  • {@link CountryCode#TF TF}: FRENCH SOUTHERN TERRITORIES *
  • {@link CountryCode#VA VA}: HOLY SEE (VATICAN CITY STATE) *
  • {@link CountryCode#XK XK}: KOSOVO, REPUBLIC OF *
  • {@link CountryCode#YT YT}: MAYOTTE *
*/ EUR("Euro", 978, 2, CountryCode.AD, CountryCode.AT, CountryCode.AX, CountryCode.BE, CountryCode.BL, CountryCode.CY, CountryCode.DE, CountryCode.EE, CountryCode.ES, CountryCode.EU, CountryCode.FI, CountryCode.FR, CountryCode.GF, CountryCode.GP, CountryCode.GR, CountryCode.IE, CountryCode.IT, CountryCode.LT, CountryCode.LU, CountryCode.LV, CountryCode.MC, CountryCode.ME, CountryCode.MF, CountryCode.MQ, CountryCode.MT, CountryCode.NL, CountryCode.PM, CountryCode.PT, CountryCode.RE, CountryCode.SI, CountryCode.SK, CountryCode.SM, CountryCode.TF, CountryCode.VA, CountryCode.XK, CountryCode.YT), /** * Fiji Dollar * [numeric code = 242, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#FJ FJ}: FIJI *
*/ FJD("Fiji Dollar", 242, 2, CountryCode.FJ), /** * Falkland Islands Pound * [numeric code = 238, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#FK FK}: FALKLAND ISLANDS (MALVINAS) *
*/ FKP("Falkland Islands Pound", 238, 2, CountryCode.FK), /** * Pound Sterling * [numeric code = 826, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GB GB}: UNITED KINGDOM *
  • {@link CountryCode#GG GG}: GUERNSEY *
  • {@link CountryCode#IM IM}: ISLE OF MAN *
  • {@link CountryCode#JE JE}: JERSEY *
*/ GBP("Pound Sterling", 826, 2, CountryCode.GB, CountryCode.GG, CountryCode.IM, CountryCode.JE), /** * Lari * [numeric code = 981, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GE GE}: GEORGIA *
*/ GEL("Lari", 981, 2, CountryCode.GE), /** * Ghana Cedi * [numeric code = 936, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GH GH}: GHANA *
*/ GHS("Ghana Cedi", 936, 2, CountryCode.GH), /** * Gibraltar Pound * [numeric code = 292, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GI GI}: GIBRALTAR *
*/ GIP("Gibraltar Pound", 292, 2, CountryCode.GI), /** * Dalasi * [numeric code = 270, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GM GM}: GAMBIA *
*/ GMD("Dalasi", 270, 2, CountryCode.GM), /** * Guinea Franc * [numeric code = 324, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#GN GN}: GUINEA *
*/ GNF("Guinea Franc", 324, 0, CountryCode.GN), /** * Quetzal * [numeric code = 320, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GT GT}: GUATEMALA *
*/ GTQ("Quetzal", 320, 2, CountryCode.GT), /** * Guyana Dollar * [numeric code = 328, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#GY GY}: GUYANA *
*/ GYD("Guyana Dollar", 328, 2, CountryCode.GY), /** * Hong Kong Dollar * [numeric code = 344, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#HK HK}: HONG KONG *
*/ HKD("Hong Kong Dollar", 344, 2, CountryCode.HK), /** * Lempira * [numeric code = 340, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#HN HN}: HONDURAS *
*/ HNL("Lempira", 340, 2, CountryCode.HN), /** * Croatian Kuna * [numeric code = 191, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#HR HR}: CROATIA *
*/ HRK("Croatian Kuna", 191, 2, CountryCode.HR), /** * Gourde * [numeric code = 332, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#HT HT}: HAITI *
*/ HTG("Gourde", 332, 2, CountryCode.HT), /** * Forint * [numeric code = 348, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#HU HU}: HUNGARY *
*/ HUF("Forint", 348, 2, CountryCode.HU), /** * Rupiah * [numeric code = 360, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ID ID}: INDONESIA *
*/ IDR("Rupiah", 360, 2, CountryCode.ID), /** * New Israeli Sheqel * [numeric code = 376, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#IL IL}: ISRAEL *
*/ ILS("New Israeli Sheqel", 376, 2, CountryCode.IL), /** * Indian Rupee * [numeric code = 356, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BT BT}: BHUTAN *
  • {@link CountryCode#IN IN}: INDIA *
*/ INR("Indian Rupee", 356, 2, CountryCode.BT, CountryCode.IN), /** * Iraqi Dinar * [numeric code = 368, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#IQ IQ}: IRAQ *
*/ IQD("Iraqi Dinar", 368, 3, CountryCode.IQ), /** * Iranian Rial * [numeric code = 364, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#IR IR}: IRAN, ISLAMIC REPUBLIC OF *
*/ IRR("Iranian Rial", 364, 2, CountryCode.IR), /** * Iceland Krona * [numeric code = 352, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#IS IS}: ICELAND *
*/ ISK("Iceland Krona", 352, 0, CountryCode.IS), /** * Jamaican Dollar * [numeric code = 388, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#JM JM}: JAMAICA *
*/ JMD("Jamaican Dollar", 388, 2, CountryCode.JM), /** * Jordanian Dinar * [numeric code = 400, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#JO JO}: JORDAN *
*/ JOD("Jordanian Dinar", 400, 3, CountryCode.JO), /** * Yen * [numeric code = 392, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#JP JP}: JAPAN *
*/ JPY("Yen", 392, 0, CountryCode.JP), /** * Kenyan Shilling * [numeric code = 404, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KE KE}: KENYA *
*/ KES("Kenyan Shilling", 404, 2, CountryCode.KE), /** * Som * [numeric code = 417, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KG KG}: KYRGYZSTAN *
*/ KGS("Som", 417, 2, CountryCode.KG), /** * Riel * [numeric code = 116, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KH KH}: CAMBODIA *
*/ KHR("Riel", 116, 2, CountryCode.KH), /** * Comoro Franc * [numeric code = 174, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#KM KM}: COMOROS *
*/ KMF("Comoro Franc", 174, 0, CountryCode.KM), /** * North Korean Won * [numeric code = 408, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KP KP}: KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF *
*/ KPW("North Korean Won", 408, 2, CountryCode.KP), /** * Won * [numeric code = 410, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#KR KR}: KOREA, REPUBLIC OF *
*/ KRW("Won", 410, 0, CountryCode.KR), /** * Kuwaiti Dinar * [numeric code = 414, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#KW KW}: KUWAIT *
*/ KWD("Kuwaiti Dinar", 414, 3, CountryCode.KW), /** * Cayman Islands Dollar * [numeric code = 136, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KY KY}: CAYMAN ISLANDS *
*/ KYD("Cayman Islands Dollar", 136, 2, CountryCode.KY), /** * Tenge * [numeric code = 398, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#KZ KZ}: KAZAKHSTAN *
*/ KZT("Tenge", 398, 2, CountryCode.KZ), /** * Kip * [numeric code = 418, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LA LA}: LAO PEOPLE'S DEMOCRATIC REPUBLIC *
*/ LAK("Kip", 418, 2, CountryCode.LA), /** * Lebanese Pound * [numeric code = 422, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LB LB}: LEBANON *
*/ LBP("Lebanese Pound", 422, 2, CountryCode.LB), /** * Sri Lanka Rupee * [numeric code = 144, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LK LK}: SRI LANKA *
*/ LKR("Sri Lanka Rupee", 144, 2, CountryCode.LK), /** * Liberian Dollar * [numeric code = 430, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LR LR}: LIBERIA *
*/ LRD("Liberian Dollar", 430, 2, CountryCode.LR), /** * Loti * [numeric code = 426, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LS LS}: LESOTHO *
*/ LSL("Loti", 426, 2, CountryCode.LS), /** * Lithuanian Litas * [numeric code = 440, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LT LT}: LITHUANIA *
* * @deprecated */ LTL("Lithuanian Litas", 440, 2, CountryCode.LT), /** * Libyan Dinar * [numeric code = 434, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#LY LY}: LIBYA *
*/ LYD("Libyan Dinar", 434, 3, CountryCode.LY), /** * Moroccan Dirham * [numeric code = 504, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#EH EH}: WESTERN SAHARA *
  • {@link CountryCode#MA MA}: MOROCCO *
*/ MAD("Moroccan Dirham", 504, 2, CountryCode.EH, CountryCode.MA), /** * Moldovan Leu * [numeric code = 498, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MD MD}: MOLDOVA, REPUBLIC OF *
*/ MDL("Moldovan Leu", 498, 2, CountryCode.MD), /** * Malagasy Ariary * [numeric code = 969, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MG MG}: MADAGASCAR *
*/ MGA("Malagasy Ariary", 969, 2, CountryCode.MG), /** * Denar * [numeric code = 807, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MK MK}: NORTH MACEDONIA, REPUBLIC OF *
*/ MKD("Denar", 807, 2, CountryCode.MK), /** * Kyat * [numeric code = 104, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MM MM}: MYANMAR *
*/ MMK("Kyat", 104, 2, CountryCode.MM), /** * Tugrik * [numeric code = 496, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MN MN}: MONGOLIA *
*/ MNT("Tugrik", 496, 2, CountryCode.MN), /** * Pataca * [numeric code = 446, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MO MO}: MACAO *
*/ MOP("Pataca", 446, 2, CountryCode.MO), /** * Ouguiya * [numeric code = 478, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MR MR}: MAURITANIA *
* * @see #MRU * * @deprecated */ MRO("Ouguiya", 478, 2, CountryCode.MR), /** * Ouguiya * [numeric code = 929, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MR MR}: MAURITANIA *
* *

* Excerpted from ISO 4217 AMENDMENT NUMBER 165: *

* *
*

* The Central Bank of Mauritania is carrying out a re-denomination of * their local currency, with the entry into circulation of the OUGUIYA. * The conversion rate is 10 (old) Ouguiya to 1 (new) Ouguiya (10:1). *

* *

* From 1 January 2018 to 30 June 2018, the old and new denominations run concurrently. *

*
* * @since 1.23 * * @see #MRO * * @see ISO 4217 AMENDMENT NUMBER 165 */ MRU("Ouguiya", 929, 2, CountryCode.MR), /** * Mauritius Rupee * [numeric code = 480, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MU MU}: MAURITIUS *
*/ MUR("Mauritius Rupee", 480, 2, CountryCode.MU), /** * Rufiyaa * [numeric code = 462, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MV MV}: MALDIVES *
*/ MVR("Rufiyaa", 462, 2, CountryCode.MV), /** * Kwacha * [numeric code = 454, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MW MW}: MALAWI *
*/ MWK("Kwacha", 454, 2, CountryCode.MW), /** * Mexican Peso * [numeric code = 484, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MX MX}: MEXICO *
*/ MXN("Mexican Peso", 484, 2, CountryCode.MX), /** * Mexican Unidad de Inversion (UDI) * [numeric code = 979, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#MX MX}: MEXICO *
*/ MXV("Mexican Unidad de Inversion (UDI)", 979, 2, CountryCode.MX) { @Override public boolean isFund() { return true; } }, /** * Malaysian Ringgit * [numeric code = 458, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MY MY}: MALAYSIA *
*/ MYR("Malaysian Ringgit", 458, 2, CountryCode.MY), /** * Mozambique Metical * [numeric code = 943, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#MZ MZ}: MOZAMBIQUE *
*/ MZN("Mozambique Metical", 943, 2, CountryCode.MZ), /** * Namibia Dollar * [numeric code = 516, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#NA NA}: NAMIBIA *
*/ NAD("Namibia Dollar", 516, 2, CountryCode.NA), /** * Naira * [numeric code = 566, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#NG NG}: NIGERIA *
*/ NGN("Naira", 566, 2, CountryCode.NG), /** * Cordoba Oro * [numeric code = 558, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#NI NI}: NICARAGUA *
*/ NIO("Cordoba Oro", 558, 2, CountryCode.NI), /** * Norwegian Krone * [numeric code = 578, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#BV BV}: BOUVET ISLAND *
  • {@link CountryCode#NO NO}: NORWAY *
  • {@link CountryCode#SJ SJ}: SVALBARD AND JAN MAYEN *
*/ NOK("Norwegian Krone", 578, 2, CountryCode.BV, CountryCode.NO, CountryCode.SJ), /** * Nepalese Rupee * [numeric code = 524, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#NP NP}: NEPAL *
*/ NPR("Nepalese Rupee", 524, 2, CountryCode.NP), /** * New Zealand Dollar * [numeric code = 554, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#CK CK}: COOK ISLANDS *
  • {@link CountryCode#NU NU}: NIUE *
  • {@link CountryCode#NZ NZ}: NEW ZEALAND *
  • {@link CountryCode#PN PN}: PITCAIRN *
  • {@link CountryCode#TK TK}: TOKELAU *
*/ NZD("New Zealand Dollar", 554, 2, CountryCode.CK, CountryCode.NU, CountryCode.NZ, CountryCode.PN, CountryCode.TK), /** * Rial Omani * [numeric code = 512, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#OM OM}: OMAN *
*/ OMR("Rial Omani", 512, 3, CountryCode.OM), /** * Balboa * [numeric code = 590, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PA PA}: PANAMA *
*/ PAB("Balboa", 590, 2, CountryCode.PA), /** * Nuevo Sol * [numeric code = 604, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PE PE}: PERU *
*/ PEN("Nuevo Sol", 604, 2, CountryCode.PE), /** * Kina * [numeric code = 598, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PG PG}: PAPUA NEW GUINEA *
*/ PGK("Kina", 598, 2, CountryCode.PG), /** * Philippine Peso * [numeric code = 608, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PH PH}: PHILIPPINES *
*/ PHP("Philippine Peso", 608, 2, CountryCode.PH), /** * Pakistan Rupee * [numeric code = 586, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PK PK}: PAKISTAN *
*/ PKR("Pakistan Rupee", 586, 2, CountryCode.PK), /** * Zloty * [numeric code = 985, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#PL PL}: POLAND *
*/ PLN("Zloty", 985, 2, CountryCode.PL), /** * Guarani * [numeric code = 600, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#PY PY}: PARAGUAY *
*/ PYG("Guarani", 600, 0, CountryCode.PY), /** * Qatari Rial * [numeric code = 634, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#QA QA}: QATAR *
*/ QAR("Qatari Rial", 634, 2, CountryCode.QA), /** * New Romanian Leu * [numeric code = 946, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#RO RO}: ROMANIA *
*/ RON("New Romanian Leu", 946, 2, CountryCode.RO), /** * Serbian Dinar * [numeric code = 941, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#RS RS}: SERBIA *
*/ RSD("Serbian Dinar", 941, 2, CountryCode.RS), /** * Russian Ruble * [numeric code = 643, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#RU RU}: RUSSIAN FEDERATION *
* * @see #RUR */ RUB("Russian Ruble", 643, 2, CountryCode.RU), /** * Russian Ruble * before the 1998 redenomination (1 {@link #RUB} = 1,000 {@link #RUR}). * [numeric code = 810, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#RU RU}: RUSSIAN FEDERATION *
* * @see #RUB * * @since 1.20 * * @deprecated */ RUR("Russian Ruble", 810, 2, CountryCode.RU), /** * Rwanda Franc * [numeric code = 646, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#RW RW}: RWANDA *
*/ RWF("Rwanda Franc", 646, 0, CountryCode.RW), /** * Saudi Riyal * [numeric code = 682, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SA SA}: SAUDI ARABIA *
*/ SAR("Saudi Riyal", 682, 2, CountryCode.SA), /** * Solomon Islands Dollar * [numeric code = 90, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SB SB}: SOLOMON ISLANDS *
*/ SBD("Solomon Islands Dollar", 90, 2, CountryCode.SB), /** * Seychelles Rupee * [numeric code = 690, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SC SC}: SEYCHELLES *
*/ SCR("Seychelles Rupee", 690, 2, CountryCode.SC), /** * Sudanese Pound * [numeric code = 938, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SD SD}: SUDAN *
*/ SDG("Sudanese Pound", 938, 2, CountryCode.SD), /** * Swedish Krona * [numeric code = 752, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SE SE}: SWEDEN *
*/ SEK("Swedish Krona", 752, 2, CountryCode.SE), /** * Singapore Dollar * [numeric code = 702, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SG SG}: SINGAPORE *
*/ SGD("Singapore Dollar", 702, 2, CountryCode.SG), /** * Saint Helena Pound * [numeric code = 654, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SH SH}: SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA *
*/ SHP("Saint Helena Pound", 654, 2, CountryCode.SH), /** * Leone * [numeric code = 694, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SL SL}: SIERRA LEONE *
*/ SLL("Leone", 694, 2, CountryCode.SL), /** * Somali Shilling * [numeric code = 706, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SO SO}: SOMALIA *
*/ SOS("Somali Shilling", 706, 2, CountryCode.SO), /** * Surinam Dollar * [numeric code = 968, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SR SR}: SURINAME *
*/ SRD("Surinam Dollar", 968, 2, CountryCode.SR), /** * South Sudanese Pound * [numeric code = 728, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SS SS}: SOUTH SUDAN *
*/ SSP("South Sudanese Pound", 728, 2, CountryCode.SS), /** * Dobra * [numeric code = 678, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ST ST}: SAO TOME AND PRINCIPE *
* * @see #STN * * @deprecated */ STD("Dobra", 678, 2, CountryCode.ST), /** * Dobra * [numeric code = 930, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ST ST}: SAO TOME AND PRINCIPE *
* *

* Excerpted from ISO 4217 AMENDMENT NUMBER 164: *

* *
*

* The Central Bank of S. Tomé and Príncipe is carrying out * an important Monetary Reform Project, with the entry into circulation * of a new family of DOBRAS. The conversion rate is 1000 (old) Dobras to * 1 (new) Dobra (1000:1). *

* *

* From 1 January 2018 to 30 June 2018, the old and new denominations run concurrently. *

*
* * @since 1.23 * * @see #STD * * @see ISO 4217 AMENDMENT NUMBER 164 */ STN("Dobra", 930, 2, CountryCode.ST), /** * El Salvador Colon * [numeric code = 222, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SV SV}: EL SALVADOR *
*/ SVC("El Salvador Colon", 222, 2, CountryCode.SV), /** * Syrian Pound * [numeric code = 760, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SY SY}: SYRIAN ARAB REPUBLIC *
*/ SYP("Syrian Pound", 760, 2, CountryCode.SY), /** * Lilangeni * [numeric code = 748, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#SZ SZ}: ESWATINI *
*/ SZL("Lilangeni", 748, 2, CountryCode.SZ), /** * Baht * [numeric code = 764, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TH TH}: THAILAND *
*/ THB("Baht", 764, 2, CountryCode.TH), /** * Somoni * [numeric code = 972, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TJ TJ}: TAJIKISTAN *
*/ TJS("Somoni", 972, 2, CountryCode.TJ), /** * Turkmenistan New Manat * [numeric code = 934, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TM TM}: TURKMENISTAN *
*/ TMT("Turkmenistan New Manat", 934, 2, CountryCode.TM), /** * Tunisian Dinar * [numeric code = 788, minor unit = 3] * *

Used by:

*
    *
  • {@link CountryCode#TN TN}: TUNISIA *
*/ TND("Tunisian Dinar", 788, 3, CountryCode.TN), /** * Paʻanga * [numeric code = 776, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TO TO}: TONGA *
*/ TOP("Pa\u02BBanga", 776, 2, CountryCode.TO), /** * Turkish Lira * [numeric code = 949, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TR TR}: TURKEY *
*/ TRY("Turkish Lira", 949, 2, CountryCode.TR), /** * Trinidad and Tobago Dollar * [numeric code = 780, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TT TT}: TRINIDAD AND TOBAGO *
*/ TTD("Trinidad and Tobago Dollar", 780, 2, CountryCode.TT), /** * New Taiwan Dollar * [numeric code = 901, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TW TW}: TAIWAN, PROVINCE OF CHINA *
*/ TWD("New Taiwan Dollar", 901, 2, CountryCode.TW), /** * Tanzanian Shilling * [numeric code = 834, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#TZ TZ}: TANZANIA, UNITED REPUBLIC OF *
*/ TZS("Tanzanian Shilling", 834, 2, CountryCode.TZ), /** * Hryvnia * [numeric code = 980, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#UA UA}: UKRAINE *
*/ UAH("Hryvnia", 980, 2, CountryCode.UA), /** * Uganda Shilling * [numeric code = 800, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#UG UG}: UGANDA *
*/ UGX("Uganda Shilling", 800, 0, CountryCode.UG), /** * US Dollar * [numeric code = 840, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AS AS}: AMERICAN SAMOA *
  • {@link CountryCode#BQ BQ}: BONAIRE, SINT EUSTATIUS AND SABA *
  • {@link CountryCode#EC EC}: ECUADOR *
  • {@link CountryCode#FM FM}: MICRONESIA, FEDERATED STATES OF *
  • {@link CountryCode#GU GU}: GUAM *
  • {@link CountryCode#HT HT}: HAITI *
  • {@link CountryCode#IO IO}: BRITISH INDIAN OCEAN TERRITORY *
  • {@link CountryCode#MH MH}: MARSHALL ISLANDS *
  • {@link CountryCode#MP MP}: NORTHERN MARIANA ISLANDS *
  • {@link CountryCode#PA PA}: PANAMA *
  • {@link CountryCode#PR PR}: PUERTO RICO *
  • {@link CountryCode#PW PW}: PALAU *
  • {@link CountryCode#SV SV}: EL SALVADOR *
  • {@link CountryCode#TC TC}: TURKS AND CAICOS ISLANDS *
  • {@link CountryCode#TL TL}: TIMOR-LESTE *
  • {@link CountryCode#UM UM}: UNITED STATES MINOR OUTLYING ISLANDS *
  • {@link CountryCode#US US}: UNITED STATES *
  • {@link CountryCode#VG VG}: VIRGIN ISLANDS (BRITISH) *
  • {@link CountryCode#VI VI}: VIRGIN ISLANDS (US) *
*/ USD("US Dollar", 840, 2, CountryCode.AS, CountryCode.BQ, CountryCode.EC, CountryCode.FM, CountryCode.GU, CountryCode.HT, CountryCode.IO, CountryCode.MH, CountryCode.MP, CountryCode.PA, CountryCode.PR, CountryCode.PW, CountryCode.SV, CountryCode.TC, CountryCode.TL, CountryCode.UM, CountryCode.US, CountryCode.VG, CountryCode.VI), /** * US Dollar (Next day) * [numeric code = 997, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#US US}: UNITED STATES *
*/ USN("US Dollar (Next day)", 997, 2, CountryCode.US) { @Override public boolean isFund() { return true; } }, /** * US Dollar (Same day) * [numeric code = 998, minor unit = 2, fund] * *

Used by:

*
    *
  • {@link CountryCode#US US}: UNITED STATES *
*/ USS("US Dollar (Same day)", 998, 2, CountryCode.US) { @Override public boolean isFund() { return true; } }, /** * Uruguay Peso en Unidades Indexadas (URUIURUI) * [numeric code = 940, minor unit = 0, fund] * *

Used by:

*
    *
  • {@link CountryCode#UY UY}: URUGUAY *
*/ UYI("Uruguay Peso en Unidades Indexadas (URUIURUI)", 940, 0, CountryCode.UY) { @Override public boolean isFund() { return true; } }, /** * Peso Uruguayo * [numeric code = 858, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#UY UY}: URUGUAY *
*/ UYU("Peso Uruguayo", 858, 2, CountryCode.UY), /** * Uzbekistan Sum * [numeric code = 860, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#UZ UZ}: UZBEKISTAN *
*/ UZS("Uzbekistan Sum", 860, 2, CountryCode.UZ), /** * Bolivar * [numeric code = 937, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#VE VE}: VENEZUELA, BOLIVARIAN REPUBLIC OF *
*/ VEF("Bolivar", 937, 2, CountryCode.VE), /** * Bolivar * [numeric code = 928, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#VE VE}: VENEZUELA, BOLIVARIAN REPUBLIC OF *
*/ VES("Bolivar Soberano", 928, 2, CountryCode.VE), /** * Dong * [numeric code = 704, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#VN VN}: VIET NAM *
*/ VND("Dong", 704, 0, CountryCode.VN), /** * Vatu * [numeric code = 548, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#VU VU}: VANUATU *
*/ VUV("Vatu", 548, 0, CountryCode.VU), /** * Tala * [numeric code = 882, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#WS WS}: SAMOA *
*/ WST("Tala", 882, 2, CountryCode.WS), /** * CFA Franc BEAC * [numeric code = 950, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#CF CF}: CENTRAL AFRICAN REPUBLIC *
  • {@link CountryCode#CG CG}: CONGO *
  • {@link CountryCode#CM CM}: CAMEROON *
  • {@link CountryCode#GA GA}: GABON *
  • {@link CountryCode#GQ GQ}: EQUATORIAL GUINEA *
  • {@link CountryCode#TD TD}: CHAD *
*/ XAF("CFA Franc BEAC", 950, 0, CountryCode.CF, CountryCode.CG, CountryCode.CM, CountryCode.GA, CountryCode.GQ, CountryCode.TD), /** * Silver * [numeric code = 961, minor unit = -1, precious metal] */ XAG("Silver", 961, -1) { @Override public boolean isPreciousMetal() { return true; } }, /** * Gold * [numeric code = 959, minor unit = -1, precious metal] */ XAU("Gold", 959, -1) { @Override public boolean isPreciousMetal() { return true; } }, /** * Bond Markets Unit European Composite Unit (EURCO) * [numeric code = 955, minor unit = -1] */ XBA("Bond Markets Unit European Composite Unit (EURCO)", 955, -1), /** * Bond Markets Unit European Monetary Unit (E.M.U.-6) * [numeric code = 956, minor unit = -1] */ XBB("Bond Markets Unit European Monetary Unit (E.M.U.-6)", 956, -1), /** * Bond Markets Unit European Unit of Account 9 (E.U.A.-9) * [numeric code = 957, minor unit = -1] */ XBC("Bond Markets Unit European Unit of Account 9 (E.U.A.-9)", 957, -1), /** * Bond Markets Unit European Unit of Account 17 (E.U.A.-17) * [numeric code = 958, minor unit = -1] */ XBD("Bond Markets Unit European Unit of Account 17 (E.U.A.-17)", 958, -1), /** * East Caribbean Dollar * [numeric code = 951, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#AG AG}: ANTIGUA AND BARBUDA *
  • {@link CountryCode#AI AI}: ANGUILLA *
  • {@link CountryCode#DM DM}: DOMINICA *
  • {@link CountryCode#GD GD}: GRENADA *
  • {@link CountryCode#KN KN}: SAINT KITTS AND NEVIS *
  • {@link CountryCode#LC LC}: SAINT LUCIA *
  • {@link CountryCode#MS MS}: MONTSERRAT *
  • {@link CountryCode#VC VC}: SAINT VINCENT AND THE GRENADINES *
*/ XCD("East Caribbean Dollar", 951, 2, CountryCode.AG, CountryCode.AI, CountryCode.DM, CountryCode.GD, CountryCode.KN, CountryCode.LC, CountryCode.MS, CountryCode.VC), /** * SDR (Special Drawing Right) * [numeric code = 960, minor unit = -1] */ XDR("SDR (Special Drawing Right)", 960, -1), /** * CFA Franc BCEAO * [numeric code = 952, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#BF BF}: BURKINA FASO *
  • {@link CountryCode#BJ BJ}: BENIN *
  • {@link CountryCode#CI CI}: CÔTE D'IVOIRE *
  • {@link CountryCode#GW GW}: GUINEA-BISSAU *
  • {@link CountryCode#ML ML}: MALI *
  • {@link CountryCode#NE NE}: NIGER *
  • {@link CountryCode#SN SN}: SENEGAL *
  • {@link CountryCode#TG TG}: TOGO *
*/ XOF("CFA Franc BCEAO", 952, 0, CountryCode.BF, CountryCode.BJ, CountryCode.CI, CountryCode.GW, CountryCode.ML, CountryCode.NE, CountryCode.SN, CountryCode.TG), /** * Palladium * [numeric code = 964, minor unit = -1, precious metal] */ XPD("Palladium", 964, -1) { @Override public boolean isPreciousMetal() { return true; } }, /** * CFP Franc * [numeric code = 953, minor unit = 0] * *

Used by:

*
    *
  • {@link CountryCode#NC NC}: NEW CALEDONIA *
  • {@link CountryCode#PF PF}: FRENCH POLYNESIA *
  • {@link CountryCode#WF WF}: WALLIS AND FUTUNA *
*/ XPF("CFP Franc", 953, 0, CountryCode.NC, CountryCode.PF, CountryCode.WF), /** * Platinum * [numeric code = 962, minor unit = -1, precious metal] */ XPT("Platinum", 962, -1) { @Override public boolean isPreciousMetal() { return true; } }, /** * Sucre * [numeric code = 994, minor unit = -1] */ XSU("Sucre", 994, -1), /** * Codes specifically reserved for testing purposes. * [numeric code = 963, minor unit = -1] */ XTS("Codes specifically reserved for testing purposes", 963, -1), /** * ADB Unit of Account * [numeric code = 965, minor unit = -1] */ XUA("ADB Unit of Account", 965, -1), /** * The codes assigned for transactions where no currency is involved * [numeric code = 999, minor unit = -1] */ XXX("The codes assigned for transactions where no currency is involved", 999, -1), /** * Yemeni Rial * [numeric code = 886, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#YE YE}: YEMEN *
*/ YER("Yemeni Rial", 886, 2, CountryCode.YE), /** * Rand * [numeric code = 710, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#LS LS}: LESOTHO *
  • {@link CountryCode#NA NA}: NAMIBIA *
  • {@link CountryCode#ZA ZA}: SOUTH AFRICA *
*/ ZAR("Rand", 710, 2, CountryCode.LS, CountryCode.NA, CountryCode.ZA), /** * Zambian Kwacha * [numeric code = 967, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ZM ZM}: ZAMBIA *
*/ ZMW("Zambian Kwacha", 967, 2, CountryCode.ZM), /** * Zimbabwe Dollar * [numeric code = 932, minor unit = 2] * *

Used by:

*
    *
  • {@link CountryCode#ZW ZW}: ZIMBABWE *
*/ ZWL("Zimbabwe Dollar", 932, 2, CountryCode.ZW), ; private static final Map numericMap = new HashMap(); static { for (CurrencyCode cc : values()) { numericMap.put(cc.getNumeric(), cc); } } private final String name; private final int numeric; private final int minorUnit; private final List countryList; private CurrencyCode(String name, int numeric, int minorUnit, CountryCode... countries) { this.name = name; this.numeric = numeric; this.minorUnit = minorUnit; this.countryList = Collections.unmodifiableList(Arrays.asList(countries)); } /** * Get the currency name. * * @return * The currency name. */ public String getName() { return name; } /** * Get the ISO 4217 numeric code. * * @return * The ISO 4217 * numeric code. */ public int getNumeric() { return numeric; } /** * Get the minor unit. * * @return * The minor unit. {@code -1} means N.A. */ public int getMinorUnit() { return minorUnit; } /** * Get the list of countries using this currency. * * @return * The list of countries using this currency. */ public List getCountryList() { return countryList; } /** * Check if this currency code represents a fund. * *

* {@code CurrencyCode} instances listed below return {@code true}. *

* *
    *
  • {@link #BOV} Mvdol *
  • {@link #CHE} WIR EUro *
  • {@link #CHW} WIR Franc *
  • {@link #CLF} Unidad de Fomento *
  • {@link #COU} Unidad de Valor Real *
  • {@link #MXV} Mexican Unidad de Inversion (UDI) *
  • {@link #USN} US Dollar (Next day) *
  • {@link #USS} US Dollar (Same day) *
  • {@link #UYI} Uruguay Peso en Unidades *
* * @return * True if this currency code represents a fund. */ public boolean isFund() { return false; } /** * Check if this currency code represents a precious metal. * *

* {@code CurrencyCode} instances listed below return {@code true}. *

* *
    *
  • {@link #XAG} Silver *
  • {@link #XAU} Gold *
  • {@link #XPD} Palladium *
  • {@link #XPT} Platinum *
* * @return * True if this currency code represents a precious metal. */ public boolean isPreciousMetal() { return false; } /** * Get the {@link Currency} instance that corresponds to * this currency code. * *

* This method is an alias of {@link Currency}{@code .}{@link * Currency#getInstance(String) getInstance}{@code (this.name())}. * The only difference is that this method returns {@code null} * when {@code Currency.getInstance(String)} throws {@code * IllegalArgumentException}. *

* * @return * A {@link Currency} instance, or {@code null} if this * ISO 4217 code is not supported by the implementation * of {@link Currency#getInstance(String)}. * * @see Currency#getInstance(String) */ public Currency getCurrency() { try { return Currency.getInstance(this.name()); } catch (IllegalArgumentException e) { // Currency.getInstance(String) throws IllegalArgumentException // when the given ISO 4217 code is not supported. return null; } } /** * Get a {@code CurrencyCode} that corresponds to the given * ISO 4217 * alpha-3 code. * *

* This method calls {@link #getByCode(String, boolean) getByCode}{@code (code, true)}. * Note that the behavior has changed since the version 1.13. In the older versions, * this method was an alias of {@code getByCode(code, false)}. *

* * @param code * ISO 4217 * alpha-3 code. * When {@code "UNDEFINED"} is given, {@link #UNDEFINED CurrencyCode.UNDEFINED} * is returned. * * @return * A {@code CurrencyCode} instance, or {@code null} if not found. * * @see #getByCode(String, boolean) */ public static CurrencyCode getByCode(String code) { return getByCode(code, true); } /** * Get a {@code CurrencyCode} that corresponds to the given * ISO 4217 * alpha-3 code. * *

* This method calls {@link #getByCode(String, boolean) getByCode}{@code (code, false)}. *

* * @param code * ISO 4217 * alpha-3 code. Or {@code "UNDEFINED"} (case insensitive). * * @return * A {@code CurrencyCode} instance, or {@code null} if not found. * * @since 1.13 * * @see #getByCode(String, boolean) */ public static CurrencyCode getByCodeIgnoreCase(String code) { return getByCode(code, false); } /** * Get a {@code CurrencyCode} that corresponds to the given * ISO 4217 * alpha-3 code. * * @param code * ISO 4217 * alpha-3 code. * Or {@code "UNDEFINED"} (its case sensitivity depends on the value of * {@code caseSensitive}). * * @param caseSensitive * If {@code true}, the given code should consist of upper-case letters only. * If {@code false}, this method internally canonicalizes the given code by * {@link String#toUpperCase()} and then performs search. For example, * {@code getByCode("jpy", true)} returns {@code null}, but on the other hand, * {@code getByCode("jpy", false)} returns {@link #JPY CurrencyCode.JPY}. * * @return * A {@code CurrencyCode} instance, or {@code null} if not found. */ public static CurrencyCode getByCode(String code, boolean caseSensitive) { code = canonicalize(code, caseSensitive); if (code == null) { return null; } try { return Enum.valueOf(CurrencyCode.class, code); } catch (IllegalArgumentException e) { return null; } } /** * Get a {@code CurrencyCode} that corresponds to the given * ISO 4217 * numeric code. * * @param code * ISO 4217 * numeric code. * * @return * A {@code CurrencyCode} instance, or {@code null} if not found. * If 0 or a negative value is given, {@code null} is returned. */ public static CurrencyCode getByCode(int code) { if (code <= 0) { return null; } return numericMap.get(code); } private static String canonicalize(String code, boolean caseSensitive) { if (code == null || code.length() == 0) { return null; } if (caseSensitive) { return code; } else { return code.toUpperCase(); } } /** * Get a list of {@code CurrencyCode} instances whose country * list contains the specified country. * *

* This method is an alias of {@link #getByCountry(String, boolean) * getByCountry}{@code (country, true)}. * Note that the behavior has changed since the version 1.13. * In the older versions, this method was an alias of {@code * getByCountry(code, false)}. *

* * @param country * Country code. ISO 3166-1 alpha-2 or alpha-3. * * @return * List of {@code CurrencyCode} instances. If there is no * {@code CurrencyCode} instance whose country list contains * the specified country, the size of the returned list is zero. */ public static List getByCountry(String country) { return getByCountry(country, true); } /** * Get a list of {@code CurrencyCode} instances whose country * list contains the specified country. * *

* This method is an alias of {@link #getByCountry(String, boolean) * getByCountry}{@code (country, false)}. *

* * @param country * Country code. ISO 3166-1 alpha-2 or alpha-3. * * @return * List of {@code CurrencyCode} instances. If there is no * {@code CurrencyCode} instance whose country list contains * the specified country, the size of the returned list is zero. * * @since 1.13 */ public static List getByCountryIgnoreCase(String country) { return getByCountry(country, false); } /** * Get a list of {@code CurrencyCode} instances whose country * list contains the specified country. * *

* This method is an alias of {@link #getByCountry(CountryCode) * getByCountry}{@code (}{@link CountryCode}{@code .}{@link * CountryCode#getByCode(String, boolean) getByCode}{@code * (country, caseSensitive))}. *

* * @param country * Country code. ISO 3166-1 alpha-2 or alpha-3. * * @param caseSensitive * If {@code true}, the given code should consist of uppercase * letters only. If {@code false}, case is ignored. * * @return * List of {@code CurrencyCode} instances. If there is no * {@code CurrencyCode} instance whose country list contains * the specified country, the size of the returned list is zero. */ public static List getByCountry(String country, boolean caseSensitive) { return getByCountry(CountryCode.getByCode(country, caseSensitive)); } /** * Get a list of {@code CurrencyCode} instances whose country list * contains the specified country. * * @param country * {@code CountryCode} instance that represents a country. * * @return * List of {@code CurrencyCode} instances. If there is no * {@code CurrencyCode} instance whose country list contains * the specified country, the size of the returned list is zero. */ public static List getByCountry(CountryCode country) { List list = new ArrayList(); if (country == null) { return list; } for (CurrencyCode currency : values()) { for (CountryCode cc : currency.countryList) { if (cc == country) { list.add(currency); } } } return list; } /** * Get a list of {@code CurrencyCode} by a name regular expression. * *

* This method is almost equivalent to {@link #findByName(Pattern) * findByName}{@code (Pattern.compile(regex))}. *

* * @param regex * Regular expression for names. * * @return * List of {@code CurrencyCode}. If nothing has matched, * an empty list is returned. * * @throws IllegalArgumentException * {@code regex} is {@code null}. * * @throws java.util.regex.PatternSyntaxException * {@code regex} failed to be compiled. * * @since 1.11 */ public static List findByName(String regex) { if (regex == null) { throw new IllegalArgumentException("regex is null."); } // Compile the regular expression. This may throw // java.util.regex.PatternSyntaxException. Pattern pattern = Pattern.compile(regex); return findByName(pattern); } /** * Get a list of {@code CurrencyCode} by a name pattern. * *

* For example, the list obtained by the code snippet below: *

* *
     * Pattern pattern = Pattern.compile(".*Ruble");
     * List<CurrencyCode> list = CurrencyCode.findByName(pattern);
* *

* contains 4 {@code CurrencyCode}s as listed below. *

* *
    *
  1. {@link #BYN} : Belarusian Ruble *
  2. {@link #BYR} : Belarusian Ruble *
  3. {@link #RUB} : Russian Ruble *
  4. {@link #RUR} : Russian Ruble *
* * @param pattern * Pattern to match names. * * @return * List of {@code CurrencyCde}. If nothing has matched, * an empty list is returned. * * @throws IllegalArgumentException * {@code pattern} is {@code null}. * * @since 1.11 */ public static List findByName(Pattern pattern) { if (pattern == null) { throw new IllegalArgumentException("pattern is null."); } List list = new ArrayList(); for (CurrencyCode entry : values()) { // If the name matches the given pattern. if (pattern.matcher(entry.getName()).matches()) { list.add(entry); } } return list; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy