001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2016, Connect2id Ltd and contributors. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use 007 * this file except in compliance with the License. You may obtain a copy of the 008 * License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed 013 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 014 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 015 * specific language governing permissions and limitations under the License. 016 */ 017 018package com.nimbusds.openid.connect.sdk.assurance.claims; 019 020 021import java.io.IOException; 022import java.io.InputStream; 023import java.util.Properties; 024 025import net.jcip.annotations.Immutable; 026 027import com.nimbusds.oauth2.sdk.ParseException; 028 029 030/** 031 * ISO 3166-1 alpha-2 (two-letter) country code. 032 * 033 * <p>Includes constants for all 249 current officially assigned ISO 3166-1 034 * alpha-2 codes. 035 */ 036@Immutable 037public final class ISO3166_1Alpha2CountryCode extends ISO3166_1AlphaCountryCode { 038 039 040 private static final long serialVersionUID = -7659886425656766569L; 041 042 043 // Codes extracted from Markdown at https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements 044 045 /** Andorra */ 046 public static final ISO3166_1Alpha2CountryCode AD = new ISO3166_1Alpha2CountryCode("AD"); 047 048 /** United Arab Emirates */ 049 public static final ISO3166_1Alpha2CountryCode AE = new ISO3166_1Alpha2CountryCode("AE"); 050 051 /** Afghanistan */ 052 public static final ISO3166_1Alpha2CountryCode AF = new ISO3166_1Alpha2CountryCode("AF"); 053 054 /** Antigua and Barbuda */ 055 public static final ISO3166_1Alpha2CountryCode AG = new ISO3166_1Alpha2CountryCode("AG"); 056 057 /** Anguilla */ 058 public static final ISO3166_1Alpha2CountryCode AI = new ISO3166_1Alpha2CountryCode("AI"); 059 060 /** Albania */ 061 public static final ISO3166_1Alpha2CountryCode AL = new ISO3166_1Alpha2CountryCode("AL"); 062 063 /** Armenia */ 064 public static final ISO3166_1Alpha2CountryCode AM = new ISO3166_1Alpha2CountryCode("AM"); 065 066 /** Angola */ 067 public static final ISO3166_1Alpha2CountryCode AO = new ISO3166_1Alpha2CountryCode("AO"); 068 069 /** Antarctica */ 070 public static final ISO3166_1Alpha2CountryCode AQ = new ISO3166_1Alpha2CountryCode("AQ"); 071 072 /** Argentina */ 073 public static final ISO3166_1Alpha2CountryCode AR = new ISO3166_1Alpha2CountryCode("AR"); 074 075 /** American Samoa */ 076 public static final ISO3166_1Alpha2CountryCode AS = new ISO3166_1Alpha2CountryCode("AS"); 077 078 /** Austria */ 079 public static final ISO3166_1Alpha2CountryCode AT = new ISO3166_1Alpha2CountryCode("AT"); 080 081 /** Australia */ 082 public static final ISO3166_1Alpha2CountryCode AU = new ISO3166_1Alpha2CountryCode("AU"); 083 084 /** Aruba */ 085 public static final ISO3166_1Alpha2CountryCode AW = new ISO3166_1Alpha2CountryCode("AW"); 086 087 /** Aland Islands */ 088 public static final ISO3166_1Alpha2CountryCode AX = new ISO3166_1Alpha2CountryCode("AX"); 089 090 /** Azerbaijan */ 091 public static final ISO3166_1Alpha2CountryCode AZ = new ISO3166_1Alpha2CountryCode("AZ"); 092 093 /** Bosnia and Herzegovina */ 094 public static final ISO3166_1Alpha2CountryCode BA = new ISO3166_1Alpha2CountryCode("BA"); 095 096 /** Barbados */ 097 public static final ISO3166_1Alpha2CountryCode BB = new ISO3166_1Alpha2CountryCode("BB"); 098 099 /** Bangladesh */ 100 public static final ISO3166_1Alpha2CountryCode BD = new ISO3166_1Alpha2CountryCode("BD"); 101 102 /** Belgium */ 103 public static final ISO3166_1Alpha2CountryCode BE = new ISO3166_1Alpha2CountryCode("BE"); 104 105 /** Burkina Faso */ 106 public static final ISO3166_1Alpha2CountryCode BF = new ISO3166_1Alpha2CountryCode("BF"); 107 108 /** Bulgaria */ 109 public static final ISO3166_1Alpha2CountryCode BG = new ISO3166_1Alpha2CountryCode("BG"); 110 111 /** Bahrain */ 112 public static final ISO3166_1Alpha2CountryCode BH = new ISO3166_1Alpha2CountryCode("BH"); 113 114 /** Burundi */ 115 public static final ISO3166_1Alpha2CountryCode BI = new ISO3166_1Alpha2CountryCode("BI"); 116 117 /** Benin */ 118 public static final ISO3166_1Alpha2CountryCode BJ = new ISO3166_1Alpha2CountryCode("BJ"); 119 120 /** Saint Barthélemy */ 121 public static final ISO3166_1Alpha2CountryCode BL = new ISO3166_1Alpha2CountryCode("BL"); 122 123 /** Bermuda */ 124 public static final ISO3166_1Alpha2CountryCode BM = new ISO3166_1Alpha2CountryCode("BM"); 125 126 /** Brunei Darussalam */ 127 public static final ISO3166_1Alpha2CountryCode BN = new ISO3166_1Alpha2CountryCode("BN"); 128 129 /** Bolivia (Plurinational State of) */ 130 public static final ISO3166_1Alpha2CountryCode BO = new ISO3166_1Alpha2CountryCode("BO"); 131 132 /** Bonaire, Sint Eustatius and Saba */ 133 public static final ISO3166_1Alpha2CountryCode BQ = new ISO3166_1Alpha2CountryCode("BQ"); 134 135 /** Brazil */ 136 public static final ISO3166_1Alpha2CountryCode BR = new ISO3166_1Alpha2CountryCode("BR"); 137 138 /** Bahamas */ 139 public static final ISO3166_1Alpha2CountryCode BS = new ISO3166_1Alpha2CountryCode("BS"); 140 141 /** Bhutan */ 142 public static final ISO3166_1Alpha2CountryCode BT = new ISO3166_1Alpha2CountryCode("BT"); 143 144 /** Bouvet Island */ 145 public static final ISO3166_1Alpha2CountryCode BV = new ISO3166_1Alpha2CountryCode("BV"); 146 147 /** Botswana */ 148 public static final ISO3166_1Alpha2CountryCode BW = new ISO3166_1Alpha2CountryCode("BW"); 149 150 /** Belarus */ 151 public static final ISO3166_1Alpha2CountryCode BY = new ISO3166_1Alpha2CountryCode("BY"); 152 153 /** Belize */ 154 public static final ISO3166_1Alpha2CountryCode BZ = new ISO3166_1Alpha2CountryCode("BZ"); 155 156 /** Canada */ 157 public static final ISO3166_1Alpha2CountryCode CA = new ISO3166_1Alpha2CountryCode("CA"); 158 159 /** Cocos (Keeling) Islands */ 160 public static final ISO3166_1Alpha2CountryCode CC = new ISO3166_1Alpha2CountryCode("CC"); 161 162 /** Congo, Democratic Republic of the */ 163 public static final ISO3166_1Alpha2CountryCode CD = new ISO3166_1Alpha2CountryCode("CD"); 164 165 /** Central African Republic */ 166 public static final ISO3166_1Alpha2CountryCode CF = new ISO3166_1Alpha2CountryCode("CF"); 167 168 /** Congo */ 169 public static final ISO3166_1Alpha2CountryCode CG = new ISO3166_1Alpha2CountryCode("CG"); 170 171 /** Switzerland */ 172 public static final ISO3166_1Alpha2CountryCode CH = new ISO3166_1Alpha2CountryCode("CH"); 173 174 /** Côte d'Ivoire */ 175 public static final ISO3166_1Alpha2CountryCode CI = new ISO3166_1Alpha2CountryCode("CI"); 176 177 /** Cook Islands */ 178 public static final ISO3166_1Alpha2CountryCode CK = new ISO3166_1Alpha2CountryCode("CK"); 179 180 /** Chile */ 181 public static final ISO3166_1Alpha2CountryCode CL = new ISO3166_1Alpha2CountryCode("CL"); 182 183 /** Cameroon */ 184 public static final ISO3166_1Alpha2CountryCode CM = new ISO3166_1Alpha2CountryCode("CM"); 185 186 /** China */ 187 public static final ISO3166_1Alpha2CountryCode CN = new ISO3166_1Alpha2CountryCode("CN"); 188 189 /** Colombia */ 190 public static final ISO3166_1Alpha2CountryCode CO = new ISO3166_1Alpha2CountryCode("CO"); 191 192 /** Costa Rica */ 193 public static final ISO3166_1Alpha2CountryCode CR = new ISO3166_1Alpha2CountryCode("CR"); 194 195 /** Cuba */ 196 public static final ISO3166_1Alpha2CountryCode CU = new ISO3166_1Alpha2CountryCode("CU"); 197 198 /** Cabo Verde */ 199 public static final ISO3166_1Alpha2CountryCode CV = new ISO3166_1Alpha2CountryCode("CV"); 200 201 /** Curaçao */ 202 public static final ISO3166_1Alpha2CountryCode CW = new ISO3166_1Alpha2CountryCode("CW"); 203 204 /** Christmas Island */ 205 public static final ISO3166_1Alpha2CountryCode CX = new ISO3166_1Alpha2CountryCode("CX"); 206 207 /** Cyprus */ 208 public static final ISO3166_1Alpha2CountryCode CY = new ISO3166_1Alpha2CountryCode("CY"); 209 210 /** Czechia */ 211 public static final ISO3166_1Alpha2CountryCode CZ = new ISO3166_1Alpha2CountryCode("CZ"); 212 213 /** Germany */ 214 public static final ISO3166_1Alpha2CountryCode DE = new ISO3166_1Alpha2CountryCode("DE"); 215 216 /** Djibouti */ 217 public static final ISO3166_1Alpha2CountryCode DJ = new ISO3166_1Alpha2CountryCode("DJ"); 218 219 /** Denmark */ 220 public static final ISO3166_1Alpha2CountryCode DK = new ISO3166_1Alpha2CountryCode("DK"); 221 222 /** Dominica */ 223 public static final ISO3166_1Alpha2CountryCode DM = new ISO3166_1Alpha2CountryCode("DM"); 224 225 /** Dominican Republic */ 226 public static final ISO3166_1Alpha2CountryCode DO = new ISO3166_1Alpha2CountryCode("DO"); 227 228 /** Algeria */ 229 public static final ISO3166_1Alpha2CountryCode DZ = new ISO3166_1Alpha2CountryCode("DZ"); 230 231 /** Ecuador */ 232 public static final ISO3166_1Alpha2CountryCode EC = new ISO3166_1Alpha2CountryCode("EC"); 233 234 /** Estonia */ 235 public static final ISO3166_1Alpha2CountryCode EE = new ISO3166_1Alpha2CountryCode("EE"); 236 237 /** Egypt */ 238 public static final ISO3166_1Alpha2CountryCode EG = new ISO3166_1Alpha2CountryCode("EG"); 239 240 /** Western Sahara */ 241 public static final ISO3166_1Alpha2CountryCode EH = new ISO3166_1Alpha2CountryCode("EH"); 242 243 /** Eritrea */ 244 public static final ISO3166_1Alpha2CountryCode ER = new ISO3166_1Alpha2CountryCode("ER"); 245 246 /** Spain */ 247 public static final ISO3166_1Alpha2CountryCode ES = new ISO3166_1Alpha2CountryCode("ES"); 248 249 /** Ethiopia */ 250 public static final ISO3166_1Alpha2CountryCode ET = new ISO3166_1Alpha2CountryCode("ET"); 251 252 /** Finland */ 253 public static final ISO3166_1Alpha2CountryCode FI = new ISO3166_1Alpha2CountryCode("FI"); 254 255 /** Fiji */ 256 public static final ISO3166_1Alpha2CountryCode FJ = new ISO3166_1Alpha2CountryCode("FJ"); 257 258 /** Falkland Islands (Malvinas) */ 259 public static final ISO3166_1Alpha2CountryCode FK = new ISO3166_1Alpha2CountryCode("FK"); 260 261 /** Micronesia (Federated States of) */ 262 public static final ISO3166_1Alpha2CountryCode FM = new ISO3166_1Alpha2CountryCode("FM"); 263 264 /** Faroe Islands */ 265 public static final ISO3166_1Alpha2CountryCode FO = new ISO3166_1Alpha2CountryCode("FO"); 266 267 /** France */ 268 public static final ISO3166_1Alpha2CountryCode FR = new ISO3166_1Alpha2CountryCode("FR"); 269 270 /** Gabon */ 271 public static final ISO3166_1Alpha2CountryCode GA = new ISO3166_1Alpha2CountryCode("GA"); 272 273 /** United Kingdom of Great Britain and Northern Ireland */ 274 public static final ISO3166_1Alpha2CountryCode GB = new ISO3166_1Alpha2CountryCode("GB"); 275 276 /** Grenada */ 277 public static final ISO3166_1Alpha2CountryCode GD = new ISO3166_1Alpha2CountryCode("GD"); 278 279 /** Georgia */ 280 public static final ISO3166_1Alpha2CountryCode GE = new ISO3166_1Alpha2CountryCode("GE"); 281 282 /** French Guiana */ 283 public static final ISO3166_1Alpha2CountryCode GF = new ISO3166_1Alpha2CountryCode("GF"); 284 285 /** Guernsey */ 286 public static final ISO3166_1Alpha2CountryCode GG = new ISO3166_1Alpha2CountryCode("GG"); 287 288 /** Ghana */ 289 public static final ISO3166_1Alpha2CountryCode GH = new ISO3166_1Alpha2CountryCode("GH"); 290 291 /** Gibraltar */ 292 public static final ISO3166_1Alpha2CountryCode GI = new ISO3166_1Alpha2CountryCode("GI"); 293 294 /** Greenland */ 295 public static final ISO3166_1Alpha2CountryCode GL = new ISO3166_1Alpha2CountryCode("GL"); 296 297 /** Gambia */ 298 public static final ISO3166_1Alpha2CountryCode GM = new ISO3166_1Alpha2CountryCode("GM"); 299 300 /** Guinea */ 301 public static final ISO3166_1Alpha2CountryCode GN = new ISO3166_1Alpha2CountryCode("GN"); 302 303 /** Guadeloupe */ 304 public static final ISO3166_1Alpha2CountryCode GP = new ISO3166_1Alpha2CountryCode("GP"); 305 306 /** Equatorial Guinea */ 307 public static final ISO3166_1Alpha2CountryCode GQ = new ISO3166_1Alpha2CountryCode("GQ"); 308 309 /** Greece */ 310 public static final ISO3166_1Alpha2CountryCode GR = new ISO3166_1Alpha2CountryCode("GR"); 311 312 /** South Georgia and the South Sandwich Islands */ 313 public static final ISO3166_1Alpha2CountryCode GS = new ISO3166_1Alpha2CountryCode("GS"); 314 315 /** Guatemala */ 316 public static final ISO3166_1Alpha2CountryCode GT = new ISO3166_1Alpha2CountryCode("GT"); 317 318 /** Guam */ 319 public static final ISO3166_1Alpha2CountryCode GU = new ISO3166_1Alpha2CountryCode("GU"); 320 321 /** Guinea-Bissau */ 322 public static final ISO3166_1Alpha2CountryCode GW = new ISO3166_1Alpha2CountryCode("GW"); 323 324 /** Guyana */ 325 public static final ISO3166_1Alpha2CountryCode GY = new ISO3166_1Alpha2CountryCode("GY"); 326 327 /** Hong Kong */ 328 public static final ISO3166_1Alpha2CountryCode HK = new ISO3166_1Alpha2CountryCode("HK"); 329 330 /** Heard Island and McDonald Islands */ 331 public static final ISO3166_1Alpha2CountryCode HM = new ISO3166_1Alpha2CountryCode("HM"); 332 333 /** Honduras */ 334 public static final ISO3166_1Alpha2CountryCode HN = new ISO3166_1Alpha2CountryCode("HN"); 335 336 /** Croatia */ 337 public static final ISO3166_1Alpha2CountryCode HR = new ISO3166_1Alpha2CountryCode("HR"); 338 339 /** Haiti */ 340 public static final ISO3166_1Alpha2CountryCode HT = new ISO3166_1Alpha2CountryCode("HT"); 341 342 /** Hungary */ 343 public static final ISO3166_1Alpha2CountryCode HU = new ISO3166_1Alpha2CountryCode("HU"); 344 345 /** Indonesia */ 346 public static final ISO3166_1Alpha2CountryCode ID = new ISO3166_1Alpha2CountryCode("ID"); 347 348 /** Ireland */ 349 public static final ISO3166_1Alpha2CountryCode IE = new ISO3166_1Alpha2CountryCode("IE"); 350 351 /** Israel */ 352 public static final ISO3166_1Alpha2CountryCode IL = new ISO3166_1Alpha2CountryCode("IL"); 353 354 /** Isle of Man */ 355 public static final ISO3166_1Alpha2CountryCode IM = new ISO3166_1Alpha2CountryCode("IM"); 356 357 /** India */ 358 public static final ISO3166_1Alpha2CountryCode IN = new ISO3166_1Alpha2CountryCode("IN"); 359 360 /** British Indian Ocean Territory */ 361 public static final ISO3166_1Alpha2CountryCode IO = new ISO3166_1Alpha2CountryCode("IO"); 362 363 /** Iraq */ 364 public static final ISO3166_1Alpha2CountryCode IQ = new ISO3166_1Alpha2CountryCode("IQ"); 365 366 /** Iran (Islamic Republic of) */ 367 public static final ISO3166_1Alpha2CountryCode IR = new ISO3166_1Alpha2CountryCode("IR"); 368 369 /** Iceland */ 370 public static final ISO3166_1Alpha2CountryCode IS = new ISO3166_1Alpha2CountryCode("IS"); 371 372 /** Italy */ 373 public static final ISO3166_1Alpha2CountryCode IT = new ISO3166_1Alpha2CountryCode("IT"); 374 375 /** Jersey */ 376 public static final ISO3166_1Alpha2CountryCode JE = new ISO3166_1Alpha2CountryCode("JE"); 377 378 /** Jamaica */ 379 public static final ISO3166_1Alpha2CountryCode JM = new ISO3166_1Alpha2CountryCode("JM"); 380 381 /** Jordan */ 382 public static final ISO3166_1Alpha2CountryCode JO = new ISO3166_1Alpha2CountryCode("JO"); 383 384 /** Japan */ 385 public static final ISO3166_1Alpha2CountryCode JP = new ISO3166_1Alpha2CountryCode("JP"); 386 387 /** Kenya */ 388 public static final ISO3166_1Alpha2CountryCode KE = new ISO3166_1Alpha2CountryCode("KE"); 389 390 /** Kyrgyzstan */ 391 public static final ISO3166_1Alpha2CountryCode KG = new ISO3166_1Alpha2CountryCode("KG"); 392 393 /** Cambodia */ 394 public static final ISO3166_1Alpha2CountryCode KH = new ISO3166_1Alpha2CountryCode("KH"); 395 396 /** Kiribati */ 397 public static final ISO3166_1Alpha2CountryCode KI = new ISO3166_1Alpha2CountryCode("KI"); 398 399 /** Comoros */ 400 public static final ISO3166_1Alpha2CountryCode KM = new ISO3166_1Alpha2CountryCode("KM"); 401 402 /** Saint Kitts and Nevis */ 403 public static final ISO3166_1Alpha2CountryCode KN = new ISO3166_1Alpha2CountryCode("KN"); 404 405 /** Korea (Democratic People's Republic of) */ 406 public static final ISO3166_1Alpha2CountryCode KP = new ISO3166_1Alpha2CountryCode("KP"); 407 408 /** Korea, Republic of */ 409 public static final ISO3166_1Alpha2CountryCode KR = new ISO3166_1Alpha2CountryCode("KR"); 410 411 /** Kuwait */ 412 public static final ISO3166_1Alpha2CountryCode KW = new ISO3166_1Alpha2CountryCode("KW"); 413 414 /** Cayman Islands */ 415 public static final ISO3166_1Alpha2CountryCode KY = new ISO3166_1Alpha2CountryCode("KY"); 416 417 /** Kazakhstan */ 418 public static final ISO3166_1Alpha2CountryCode KZ = new ISO3166_1Alpha2CountryCode("KZ"); 419 420 /** Lao People's Democratic Republic */ 421 public static final ISO3166_1Alpha2CountryCode LA = new ISO3166_1Alpha2CountryCode("LA"); 422 423 /** Lebanon */ 424 public static final ISO3166_1Alpha2CountryCode LB = new ISO3166_1Alpha2CountryCode("LB"); 425 426 /** Saint Lucia */ 427 public static final ISO3166_1Alpha2CountryCode LC = new ISO3166_1Alpha2CountryCode("LC"); 428 429 /** Liechtenstein */ 430 public static final ISO3166_1Alpha2CountryCode LI = new ISO3166_1Alpha2CountryCode("LI"); 431 432 /** Sri Lanka */ 433 public static final ISO3166_1Alpha2CountryCode LK = new ISO3166_1Alpha2CountryCode("LK"); 434 435 /** Liberia */ 436 public static final ISO3166_1Alpha2CountryCode LR = new ISO3166_1Alpha2CountryCode("LR"); 437 438 /** Lesotho */ 439 public static final ISO3166_1Alpha2CountryCode LS = new ISO3166_1Alpha2CountryCode("LS"); 440 441 /** Lithuania */ 442 public static final ISO3166_1Alpha2CountryCode LT = new ISO3166_1Alpha2CountryCode("LT"); 443 444 /** Luxembourg */ 445 public static final ISO3166_1Alpha2CountryCode LU = new ISO3166_1Alpha2CountryCode("LU"); 446 447 /** Latvia */ 448 public static final ISO3166_1Alpha2CountryCode LV = new ISO3166_1Alpha2CountryCode("LV"); 449 450 /** Libya */ 451 public static final ISO3166_1Alpha2CountryCode LY = new ISO3166_1Alpha2CountryCode("LY"); 452 453 /** Morocco */ 454 public static final ISO3166_1Alpha2CountryCode MA = new ISO3166_1Alpha2CountryCode("MA"); 455 456 /** Monaco */ 457 public static final ISO3166_1Alpha2CountryCode MC = new ISO3166_1Alpha2CountryCode("MC"); 458 459 /** Moldova, Republic of */ 460 public static final ISO3166_1Alpha2CountryCode MD = new ISO3166_1Alpha2CountryCode("MD"); 461 462 /** Montenegro */ 463 public static final ISO3166_1Alpha2CountryCode ME = new ISO3166_1Alpha2CountryCode("ME"); 464 465 /** Saint Martin (French part) */ 466 public static final ISO3166_1Alpha2CountryCode MF = new ISO3166_1Alpha2CountryCode("MF"); 467 468 /** Madagascar */ 469 public static final ISO3166_1Alpha2CountryCode MG = new ISO3166_1Alpha2CountryCode("MG"); 470 471 /** Marshall Islands */ 472 public static final ISO3166_1Alpha2CountryCode MH = new ISO3166_1Alpha2CountryCode("MH"); 473 474 /** North Macedonia */ 475 public static final ISO3166_1Alpha2CountryCode MK = new ISO3166_1Alpha2CountryCode("MK"); 476 477 /** Mali */ 478 public static final ISO3166_1Alpha2CountryCode ML = new ISO3166_1Alpha2CountryCode("ML"); 479 480 /** Myanmar */ 481 public static final ISO3166_1Alpha2CountryCode MM = new ISO3166_1Alpha2CountryCode("MM"); 482 483 /** Mongolia */ 484 public static final ISO3166_1Alpha2CountryCode MN = new ISO3166_1Alpha2CountryCode("MN"); 485 486 /** Macao */ 487 public static final ISO3166_1Alpha2CountryCode MO = new ISO3166_1Alpha2CountryCode("MO"); 488 489 /** Northern Mariana Islands */ 490 public static final ISO3166_1Alpha2CountryCode MP = new ISO3166_1Alpha2CountryCode("MP"); 491 492 /** Martinique */ 493 public static final ISO3166_1Alpha2CountryCode MQ = new ISO3166_1Alpha2CountryCode("MQ"); 494 495 /** Mauritania */ 496 public static final ISO3166_1Alpha2CountryCode MR = new ISO3166_1Alpha2CountryCode("MR"); 497 498 /** Montserrat */ 499 public static final ISO3166_1Alpha2CountryCode MS = new ISO3166_1Alpha2CountryCode("MS"); 500 501 /** Malta */ 502 public static final ISO3166_1Alpha2CountryCode MT = new ISO3166_1Alpha2CountryCode("MT"); 503 504 /** Mauritius */ 505 public static final ISO3166_1Alpha2CountryCode MU = new ISO3166_1Alpha2CountryCode("MU"); 506 507 /** Maldives */ 508 public static final ISO3166_1Alpha2CountryCode MV = new ISO3166_1Alpha2CountryCode("MV"); 509 510 /** Malawi */ 511 public static final ISO3166_1Alpha2CountryCode MW = new ISO3166_1Alpha2CountryCode("MW"); 512 513 /** Mexico */ 514 public static final ISO3166_1Alpha2CountryCode MX = new ISO3166_1Alpha2CountryCode("MX"); 515 516 /** Malaysia */ 517 public static final ISO3166_1Alpha2CountryCode MY = new ISO3166_1Alpha2CountryCode("MY"); 518 519 /** Mozambique */ 520 public static final ISO3166_1Alpha2CountryCode MZ = new ISO3166_1Alpha2CountryCode("MZ"); 521 522 /** Namibia */ 523 public static final ISO3166_1Alpha2CountryCode NA = new ISO3166_1Alpha2CountryCode("NA"); 524 525 /** New Caledonia */ 526 public static final ISO3166_1Alpha2CountryCode NC = new ISO3166_1Alpha2CountryCode("NC"); 527 528 /** Niger */ 529 public static final ISO3166_1Alpha2CountryCode NE = new ISO3166_1Alpha2CountryCode("NE"); 530 531 /** Norfolk Island */ 532 public static final ISO3166_1Alpha2CountryCode NF = new ISO3166_1Alpha2CountryCode("NF"); 533 534 /** Nigeria */ 535 public static final ISO3166_1Alpha2CountryCode NG = new ISO3166_1Alpha2CountryCode("NG"); 536 537 /** Nicaragua */ 538 public static final ISO3166_1Alpha2CountryCode NI = new ISO3166_1Alpha2CountryCode("NI"); 539 540 /** Netherlands */ 541 public static final ISO3166_1Alpha2CountryCode NL = new ISO3166_1Alpha2CountryCode("NL"); 542 543 /** Norway */ 544 public static final ISO3166_1Alpha2CountryCode NO = new ISO3166_1Alpha2CountryCode("NO"); 545 546 /** Nepal */ 547 public static final ISO3166_1Alpha2CountryCode NP = new ISO3166_1Alpha2CountryCode("NP"); 548 549 /** Nauru */ 550 public static final ISO3166_1Alpha2CountryCode NR = new ISO3166_1Alpha2CountryCode("NR"); 551 552 /** Niue */ 553 public static final ISO3166_1Alpha2CountryCode NU = new ISO3166_1Alpha2CountryCode("NU"); 554 555 /** New Zealand */ 556 public static final ISO3166_1Alpha2CountryCode NZ = new ISO3166_1Alpha2CountryCode("NZ"); 557 558 /** Oman */ 559 public static final ISO3166_1Alpha2CountryCode OM = new ISO3166_1Alpha2CountryCode("OM"); 560 561 /** Panama */ 562 public static final ISO3166_1Alpha2CountryCode PA = new ISO3166_1Alpha2CountryCode("PA"); 563 564 /** Peru */ 565 public static final ISO3166_1Alpha2CountryCode PE = new ISO3166_1Alpha2CountryCode("PE"); 566 567 /** French Polynesia */ 568 public static final ISO3166_1Alpha2CountryCode PF = new ISO3166_1Alpha2CountryCode("PF"); 569 570 /** Papua New Guinea */ 571 public static final ISO3166_1Alpha2CountryCode PG = new ISO3166_1Alpha2CountryCode("PG"); 572 573 /** Philippines */ 574 public static final ISO3166_1Alpha2CountryCode PH = new ISO3166_1Alpha2CountryCode("PH"); 575 576 /** Pakistan */ 577 public static final ISO3166_1Alpha2CountryCode PK = new ISO3166_1Alpha2CountryCode("PK"); 578 579 /** Poland */ 580 public static final ISO3166_1Alpha2CountryCode PL = new ISO3166_1Alpha2CountryCode("PL"); 581 582 /** Saint Pierre and Miquelon */ 583 public static final ISO3166_1Alpha2CountryCode PM = new ISO3166_1Alpha2CountryCode("PM"); 584 585 /** Pitcairn */ 586 public static final ISO3166_1Alpha2CountryCode PN = new ISO3166_1Alpha2CountryCode("PN"); 587 588 /** Puerto Rico */ 589 public static final ISO3166_1Alpha2CountryCode PR = new ISO3166_1Alpha2CountryCode("PR"); 590 591 /** Palestine, State of */ 592 public static final ISO3166_1Alpha2CountryCode PS = new ISO3166_1Alpha2CountryCode("PS"); 593 594 /** Portugal */ 595 public static final ISO3166_1Alpha2CountryCode PT = new ISO3166_1Alpha2CountryCode("PT"); 596 597 /** Palau */ 598 public static final ISO3166_1Alpha2CountryCode PW = new ISO3166_1Alpha2CountryCode("PW"); 599 600 /** Paraguay */ 601 public static final ISO3166_1Alpha2CountryCode PY = new ISO3166_1Alpha2CountryCode("PY"); 602 603 /** Qatar */ 604 public static final ISO3166_1Alpha2CountryCode QA = new ISO3166_1Alpha2CountryCode("QA"); 605 606 /** Réunion */ 607 public static final ISO3166_1Alpha2CountryCode RE = new ISO3166_1Alpha2CountryCode("RE"); 608 609 /** Romania */ 610 public static final ISO3166_1Alpha2CountryCode RO = new ISO3166_1Alpha2CountryCode("RO"); 611 612 /** Serbia */ 613 public static final ISO3166_1Alpha2CountryCode RS = new ISO3166_1Alpha2CountryCode("RS"); 614 615 /** Russian Federation */ 616 public static final ISO3166_1Alpha2CountryCode RU = new ISO3166_1Alpha2CountryCode("RU"); 617 618 /** Rwanda */ 619 public static final ISO3166_1Alpha2CountryCode RW = new ISO3166_1Alpha2CountryCode("RW"); 620 621 /** Saudi Arabia */ 622 public static final ISO3166_1Alpha2CountryCode SA = new ISO3166_1Alpha2CountryCode("SA"); 623 624 /** Solomon Islands */ 625 public static final ISO3166_1Alpha2CountryCode SB = new ISO3166_1Alpha2CountryCode("SB"); 626 627 /** Seychelles */ 628 public static final ISO3166_1Alpha2CountryCode SC = new ISO3166_1Alpha2CountryCode("SC"); 629 630 /** Sudan */ 631 public static final ISO3166_1Alpha2CountryCode SD = new ISO3166_1Alpha2CountryCode("SD"); 632 633 /** Sweden */ 634 public static final ISO3166_1Alpha2CountryCode SE = new ISO3166_1Alpha2CountryCode("SE"); 635 636 /** Singapore */ 637 public static final ISO3166_1Alpha2CountryCode SG = new ISO3166_1Alpha2CountryCode("SG"); 638 639 /** Saint Helena, Ascension and Tristan da Cunha */ 640 public static final ISO3166_1Alpha2CountryCode SH = new ISO3166_1Alpha2CountryCode("SH"); 641 642 /** Slovenia */ 643 public static final ISO3166_1Alpha2CountryCode SI = new ISO3166_1Alpha2CountryCode("SI"); 644 645 /** Svalbard and Jan Mayen */ 646 public static final ISO3166_1Alpha2CountryCode SJ = new ISO3166_1Alpha2CountryCode("SJ"); 647 648 /** Slovakia */ 649 public static final ISO3166_1Alpha2CountryCode SK = new ISO3166_1Alpha2CountryCode("SK"); 650 651 /** Sierra Leone */ 652 public static final ISO3166_1Alpha2CountryCode SL = new ISO3166_1Alpha2CountryCode("SL"); 653 654 /** San Marino */ 655 public static final ISO3166_1Alpha2CountryCode SM = new ISO3166_1Alpha2CountryCode("SM"); 656 657 /** Senegal */ 658 public static final ISO3166_1Alpha2CountryCode SN = new ISO3166_1Alpha2CountryCode("SN"); 659 660 /** Somalia */ 661 public static final ISO3166_1Alpha2CountryCode SO = new ISO3166_1Alpha2CountryCode("SO"); 662 663 /** Suriname */ 664 public static final ISO3166_1Alpha2CountryCode SR = new ISO3166_1Alpha2CountryCode("SR"); 665 666 /** South Sudan */ 667 public static final ISO3166_1Alpha2CountryCode SS = new ISO3166_1Alpha2CountryCode("SS"); 668 669 /** Sao Tome and Principe */ 670 public static final ISO3166_1Alpha2CountryCode ST = new ISO3166_1Alpha2CountryCode("ST"); 671 672 /** El Salvador */ 673 public static final ISO3166_1Alpha2CountryCode SV = new ISO3166_1Alpha2CountryCode("SV"); 674 675 /** Sint Maarten (Dutch part) */ 676 public static final ISO3166_1Alpha2CountryCode SX = new ISO3166_1Alpha2CountryCode("SX"); 677 678 /** Syrian Arab Republic */ 679 public static final ISO3166_1Alpha2CountryCode SY = new ISO3166_1Alpha2CountryCode("SY"); 680 681 /** Eswatini */ 682 public static final ISO3166_1Alpha2CountryCode SZ = new ISO3166_1Alpha2CountryCode("SZ"); 683 684 /** Turks and Caicos Islands */ 685 public static final ISO3166_1Alpha2CountryCode TC = new ISO3166_1Alpha2CountryCode("TC"); 686 687 /** Chad */ 688 public static final ISO3166_1Alpha2CountryCode TD = new ISO3166_1Alpha2CountryCode("TD"); 689 690 /** French Southern Territories */ 691 public static final ISO3166_1Alpha2CountryCode TF = new ISO3166_1Alpha2CountryCode("TF"); 692 693 /** Togo */ 694 public static final ISO3166_1Alpha2CountryCode TG = new ISO3166_1Alpha2CountryCode("TG"); 695 696 /** Thailand */ 697 public static final ISO3166_1Alpha2CountryCode TH = new ISO3166_1Alpha2CountryCode("TH"); 698 699 /** Tajikistan */ 700 public static final ISO3166_1Alpha2CountryCode TJ = new ISO3166_1Alpha2CountryCode("TJ"); 701 702 /** Tokelau */ 703 public static final ISO3166_1Alpha2CountryCode TK = new ISO3166_1Alpha2CountryCode("TK"); 704 705 /** Timor-Leste */ 706 public static final ISO3166_1Alpha2CountryCode TL = new ISO3166_1Alpha2CountryCode("TL"); 707 708 /** Turkmenistan */ 709 public static final ISO3166_1Alpha2CountryCode TM = new ISO3166_1Alpha2CountryCode("TM"); 710 711 /** Tunisia */ 712 public static final ISO3166_1Alpha2CountryCode TN = new ISO3166_1Alpha2CountryCode("TN"); 713 714 /** Tonga */ 715 public static final ISO3166_1Alpha2CountryCode TO = new ISO3166_1Alpha2CountryCode("TO"); 716 717 /** Turkey */ 718 public static final ISO3166_1Alpha2CountryCode TR = new ISO3166_1Alpha2CountryCode("TR"); 719 720 /** Trinidad and Tobago */ 721 public static final ISO3166_1Alpha2CountryCode TT = new ISO3166_1Alpha2CountryCode("TT"); 722 723 /** Tuvalu */ 724 public static final ISO3166_1Alpha2CountryCode TV = new ISO3166_1Alpha2CountryCode("TV"); 725 726 /** Taiwan, Province of China */ 727 public static final ISO3166_1Alpha2CountryCode TW = new ISO3166_1Alpha2CountryCode("TW"); 728 729 /** Tanzania, United Republic of */ 730 public static final ISO3166_1Alpha2CountryCode TZ = new ISO3166_1Alpha2CountryCode("TZ"); 731 732 /** Ukraine */ 733 public static final ISO3166_1Alpha2CountryCode UA = new ISO3166_1Alpha2CountryCode("UA"); 734 735 /** Uganda */ 736 public static final ISO3166_1Alpha2CountryCode UG = new ISO3166_1Alpha2CountryCode("UG"); 737 738 /** United States Minor Outlying Islands */ 739 public static final ISO3166_1Alpha2CountryCode UM = new ISO3166_1Alpha2CountryCode("UM"); 740 741 /** United States of America */ 742 public static final ISO3166_1Alpha2CountryCode US = new ISO3166_1Alpha2CountryCode("US"); 743 744 /** Uruguay */ 745 public static final ISO3166_1Alpha2CountryCode UY = new ISO3166_1Alpha2CountryCode("UY"); 746 747 /** Uzbekistan */ 748 public static final ISO3166_1Alpha2CountryCode UZ = new ISO3166_1Alpha2CountryCode("UZ"); 749 750 /** Holy See */ 751 public static final ISO3166_1Alpha2CountryCode VA = new ISO3166_1Alpha2CountryCode("VA"); 752 753 /** Saint Vincent and the Grenadines */ 754 public static final ISO3166_1Alpha2CountryCode VC = new ISO3166_1Alpha2CountryCode("VC"); 755 756 /** Venezuela (Bolivarian Republic of) */ 757 public static final ISO3166_1Alpha2CountryCode VE = new ISO3166_1Alpha2CountryCode("VE"); 758 759 /** Virgin Islands (British) */ 760 public static final ISO3166_1Alpha2CountryCode VG = new ISO3166_1Alpha2CountryCode("VG"); 761 762 /** Virgin Islands (U.S.) */ 763 public static final ISO3166_1Alpha2CountryCode VI = new ISO3166_1Alpha2CountryCode("VI"); 764 765 /** Viet Nam */ 766 public static final ISO3166_1Alpha2CountryCode VN = new ISO3166_1Alpha2CountryCode("VN"); 767 768 /** Vanuatu */ 769 public static final ISO3166_1Alpha2CountryCode VU = new ISO3166_1Alpha2CountryCode("VU"); 770 771 /** Wallis and Futuna */ 772 public static final ISO3166_1Alpha2CountryCode WF = new ISO3166_1Alpha2CountryCode("WF"); 773 774 /** Samoa */ 775 public static final ISO3166_1Alpha2CountryCode WS = new ISO3166_1Alpha2CountryCode("WS"); 776 777 /** Yemen */ 778 public static final ISO3166_1Alpha2CountryCode YE = new ISO3166_1Alpha2CountryCode("YE"); 779 780 /** Mayotte */ 781 public static final ISO3166_1Alpha2CountryCode YT = new ISO3166_1Alpha2CountryCode("YT"); 782 783 /** South Africa */ 784 public static final ISO3166_1Alpha2CountryCode ZA = new ISO3166_1Alpha2CountryCode("ZA"); 785 786 /** Zambia */ 787 public static final ISO3166_1Alpha2CountryCode ZM = new ISO3166_1Alpha2CountryCode("ZM"); 788 789 /** Zimbabwe */ 790 public static final ISO3166_1Alpha2CountryCode ZW = new ISO3166_1Alpha2CountryCode("ZW"); 791 792 793 /** 794 * The {@code iso3166_1alpha2-codes.properties} resource. 795 */ 796 private static final Properties CODES_RESOURCE = new Properties(); 797 798 799 /** 800 * Creates a new ISO 3166-1 alpha-2 country code. Normalises the code 801 * to upper case. 802 * 803 * @param value The country code value, must be two-letter. 804 */ 805 public ISO3166_1Alpha2CountryCode(final String value) { 806 super(value); 807 if (value.length() != 2) { 808 throw new IllegalArgumentException("The ISO 3166-1 alpha-2 country code must be 2 letters"); 809 } 810 } 811 812 813 /** 814 * Returns the matching alpha-3 country code. See 815 * {@link ISO3166_1AlphaCountryCodeMapper}. 816 * 817 * @return The matching alpha-3 country code, {@code null} if none. 818 */ 819 public ISO3166_1Alpha3CountryCode toAlpha3CountryCode() { 820 821 return ISO3166_1AlphaCountryCodeMapper.toAlpha3CountryCode(this); 822 } 823 824 825 /** 826 * Returns the country name if available in the 827 * {@code iso3166_1alpha2-codes.properties} resource. 828 * 829 * @return The country name, {@code null} if not available. 830 */ 831 @Override 832 public String getCountryName() { 833 834 if (CODES_RESOURCE.isEmpty()) { 835 InputStream is = getClass().getClassLoader().getResourceAsStream("iso3166_1alpha2-codes.properties"); 836 try { 837 CODES_RESOURCE.load(is); 838 } catch (IOException e) { 839 return null; 840 } 841 } 842 843 return CODES_RESOURCE.getProperty(getValue()); 844 } 845 846 847 @Override 848 public boolean equals(final Object object) { 849 850 return object instanceof ISO3166_1Alpha2CountryCode && 851 this.toString().equals(object.toString()); 852 } 853 854 855 /** 856 * Parses an ISO 3166-1 alpha-2 (two-letter) country code. 857 * 858 * @param s The string to parse. Must not be {@code null}. 859 * 860 * @return The ISO 3166-1 alpha-2 (two-letter) country code. 861 * 862 * @throws ParseException If parsing failed. 863 */ 864 public static ISO3166_1Alpha2CountryCode parse(final String s) 865 throws ParseException { 866 867 try { 868 return new ISO3166_1Alpha2CountryCode(s); 869 } catch (IllegalArgumentException e) { 870 throw new ParseException(e.getMessage()); 871 } 872 } 873}