1/* 2 * Copyright (C) 2010 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.i18n.addressinput; 18 19import org.json.JSONException; 20import org.json.JSONObject; 21 22import java.util.HashMap; 23import java.util.Map; 24 25/** 26 * Initial data in JSON format for regions. This has some formatting information for some countries, 27 * and a list of all the regions that the widget can support. Data has been sorted below for ease of 28 * editing. 29 */ 30class RegionDataConstants { 31 32 private static final Map<String, String> COUNTRY_FORMAT_MAP = 33 new HashMap<String, String>(); 34 35 private enum RegionDataEnum { 36 37 AC(new String[]{ 38 "name", "ASCENSION ISLAND", 39 }), 40 AD(new String[]{ 41 "name", "ANDORRA", 42 "lang", "ca", 43 "languages", "ca", 44 "fmt", "%N%n%O%n%A%n%Z %S", 45 "require", "AS", 46 "upper", "S", 47 "state_name_type", "parish", 48 }), 49 AE(new String[]{ 50 "name", "UNITED ARAB EMIRATES", 51 "fmt", "%N%n%O%n%A%n%C", 52 "require", "AC", 53 }), 54 AF(new String[]{ 55 "name", "AFGHANISTAN", 56 }), 57 AG(new String[]{ 58 "name", "ANTIGUA AND BARBUDA", 59 "require", "A", 60 }), 61 AI(new String[]{ 62 "name", "ANGUILLA", 63 }), 64 AL(new String[]{ 65 "name", "ALBANIA", 66 }), 67 AM(new String[]{ 68 "name", "ARMENIA", 69 "lang", "hy", 70 "languages", "hy", 71 "fmt", "%N%n%O%n%A%n%Z%n%C%n%S", 72 "lfmt", "%N%n%O%n%A%n%Z%n%C%n%S", 73 }), 74 AN(new String[]{ 75 "name", "NETHERLANDS ANTILLES", 76 }), 77 AO(new String[]{ 78 "name", "ANGOLA", 79 }), 80 AQ(new String[]{ 81 "name", "ANTARCTICA", 82 }), 83 AR(new String[]{ 84 "name", "ARGENTINA", 85 "lang", "es", 86 "languages", "es", 87 "fmt", "%N%n%O%n%A%n%Z %C%n%S", 88 "upper", "ACZ", 89 "state_name_type", "state", 90 }), 91 AS(new String[]{ 92 "name", "AMERICAN SAMOA", 93 "fmt", "%N%n%O%n%A%n%C %S %Z", 94 "require", "ACSZ", 95 "upper", "ACNOS", 96 "zip_name_type", "zip", 97 "state_name_type", "state", 98 }), 99 AT(new String[]{ 100 "name", "AUSTRIA", 101 "fmt", "%O%n%N%n%A%n%Z %C", 102 "require", "ACZ", 103 }), 104 AU(new String[]{ 105 "name", "AUSTRALIA", 106 "lang", "en", 107 "languages", "en", 108 "fmt", "%O%n%N%n%A%n%C %S %Z", 109 "require", "ACSZ", 110 "upper", "CS", 111 "state_name_type", "state", 112 }), 113 AW(new String[]{ 114 "name", "ARUBA", 115 }), 116 AX(new String[]{ 117 "name", "FINLAND", 118 "fmt", "%O%n%N%n%A%nAX-%Z %C%n\u00C5LAND", 119 "require", "ACZ", 120 "postprefix", "AX-", 121 }), 122 AZ(new String[]{ 123 "name", "AZERBAIJAN", 124 "fmt", "%N%n%O%n%A%nAZ %Z %C", 125 "postprefix", "AZ ", 126 }), 127 BA(new String[]{ 128 "name", "BOSNIA AND HERZEGOVINA", 129 "fmt", "%N%n%O%n%A%n%Z %C", 130 }), 131 BB(new String[]{ 132 "name", "BARBADOS", 133 "state_name_type", "parish", 134 }), 135 BD(new String[]{ 136 "name", "BANGLADESH", 137 "fmt", "%N%n%O%n%A%n%C - %Z", 138 }), 139 BE(new String[]{ 140 "name", "BELGIUM", 141 "fmt", "%O%n%N%n%A%n%Z %C", 142 "require", "ACZ", 143 }), 144 BF(new String[]{ 145 "name", "BURKINA FASO", 146 "fmt", "%N%n%O%n%A%n%C %X", 147 }), 148 BG(new String[]{ 149 "name", "BULGARIA (REP.)", 150 "fmt", "%N%n%O%n%A%n%Z %C", 151 }), 152 BH(new String[]{ 153 "name", "BAHRAIN", 154 "fmt", "%N%n%O%n%A%n%C %Z", 155 }), 156 BI(new String[]{ 157 "name", "BURUNDI", 158 }), 159 BJ(new String[]{ 160 "name", "BENIN", 161 "upper", "AC", 162 }), 163 BL(new String[]{ 164 "name", "SAINT BARTHELEMY", 165 "fmt", "%O%n%N%n%A%n%Z %C %X", 166 "upper", "ACX", 167 "require", "ACZ", 168 }), 169 BM(new String[]{ 170 "name", "BERMUDA", 171 "fmt", "%N%n%O%n%A%n%C %Z", 172 }), 173 BN(new String[]{ 174 "name", "BRUNEI DARUSSALAM", 175 "fmt", "%N%n%O%n%A%n%C %Z", 176 }), 177 BO(new String[]{ 178 "name", "BOLIVIA", 179 "upper", "AC", 180 }), 181 BR(new String[]{ 182 "name", "BRAZIL", 183 "lang", "pt", 184 "languages", "pt", 185 "fmt", "%O%n%N%n%A%n%C-%S%n%Z", 186 "require", "ASCZ", 187 "upper", "CS", 188 "state_name_type", "state", 189 }), 190 BS(new String[]{ 191 "name", "BAHAMAS", 192 "lang", "en", 193 "languages", "en", 194 "fmt", "%N%n%O%n%A%n%C, %S", 195 "state_name_type", "island", 196 }), 197 BT(new String[]{ 198 "name", "BHUTAN", 199 }), 200 BV(new String[]{ 201 "name", "BOUVET ISLAND", 202 }), 203 BW(new String[]{ 204 "name", "BOTSWANA", 205 }), 206 BY(new String[]{ 207 "name", "BELARUS", 208 "fmt", "%S%n%Z %C %X%n%A%n%O%n%N", 209 }), 210 BZ(new String[]{ 211 "name", "BELIZE", 212 }), 213 CA(new String[]{ 214 "name", "CANADA", 215 "lang", "en", 216 "languages", "en~fr", 217 "fmt", "%N%n%O%n%A%n%C %S %Z", 218 "require", "ACSZ", 219 "upper", "ACNOSZ", 220 }), 221 CC(new String[]{ 222 "name", "COCOS (KEELING) ISLANDS", 223 "fmt", "%O%n%N%n%A%n%C %S %Z", 224 "upper", "CS", 225 }), 226 CD(new String[]{ 227 "name", "CONGO (DEM. REP.)", 228 "fmt", "%N%n%O%n%A%n%C %X", 229 }), 230 CF(new String[]{ 231 "name", "CENTRAL AFRICAN REPUBLIC", 232 }), 233 CG(new String[]{ 234 "name", "CONGO (REP.)", 235 }), 236 CH(new String[]{ 237 "name", "SWITZERLAND", 238 "lang", "de", 239 "languages", "de~fr~it", 240 "fmt", "%O%n%N%n%A%nCH-%Z %C", 241 "require", "ACZ", 242 "upper", "", 243 "postprefix", "CH-", 244 }), 245 CI(new String[]{ 246 "name", "COTE D'IVOIRE", 247 "fmt", "%N%n%O%n%X %A %C %X", 248 }), 249 CK(new String[]{ 250 "name", "COOK ISLANDS", 251 "fmt", "%N%n%O%n%A%n%C %Z", 252 }), 253 CL(new String[]{ 254 "name", "CHILE", 255 "lang", "es", 256 "languages", "es", 257 "fmt", "%N%n%O%n%A%n%Z %C%n%S", 258 "state_name_type", "state", 259 }), 260 CM(new String[]{ 261 "name", "CAMEROON", 262 }), 263 CN(new String[]{ 264 "name", "P.R. CHINA", 265 "lang", "zh-hans", 266 "languages", "zh-hans", 267 "fmt", "%Z%n%S%C%D%n%A%n%O%n%N", 268 "lfmt", "%N%n%O%n%A%n%D%n%C%n%S, %Z", 269 "require", "ACSZ", 270 "upper", "S", 271 }), 272 CO(new String[]{ 273 "name", "COLOMBIA", 274 "fmt", "%N%n%O%n%A%n%C, %S", 275 }), 276 CR(new String[]{ 277 "name", "COSTA RICA", 278 "fmt", "%N%n%O%n%A%n%Z %C", 279 }), 280 CS(new String[]{ 281 "name", "SERBIA AND MONTENEGRO", 282 "fmt", "%N%n%O%n%A%n%Z %C", 283 }), 284 CV(new String[]{ 285 "name", "CAPE VERDE", 286 "lang", "pt", 287 "languages", "pt", 288 "fmt", "%N%n%O%n%A%n%Z %C%n%S", 289 "state_name_type", "island", 290 }), 291 CX(new String[]{ 292 "name", "CHRISTMAS ISLAND", 293 "fmt", "%O%n%N%n%A%n%C %S %Z", 294 "upper", "CS", 295 }), 296 CY(new String[]{ 297 "name", "CYPRUS", 298 "fmt", "%N%n%O%n%A%n%Z %C", 299 }), 300 CZ(new String[]{ 301 "name", "CZECH REP.", 302 "fmt", "%N%n%O%n%A%n%Z %C", 303 }), 304 DE(new String[]{ 305 "name", "GERMANY", 306 "fmt", "%N%n%O%n%A%n%Z %C", 307 "require", "ACZ", 308 }), 309 DJ(new String[]{ 310 "name", "DJIBOUTI", 311 }), 312 DK(new String[]{ 313 "name", "DENMARK", 314 "fmt", "%O%n%N%n%A%n%Z %C", 315 "require", "ACZ", 316 }), 317 DM(new String[]{ 318 "name", "DOMINICA", 319 }), 320 DO(new String[]{ 321 "name", "DOMINICAN REP.", 322 "fmt", "%N%n%O%n%A%n%Z %C", 323 }), 324 DZ(new String[]{ 325 "name", "ALGERIA", 326 "fmt", "%N%n%O%n%A%n%Z %C", 327 }), 328 EC(new String[]{ 329 "name", "ECUADOR", 330 "fmt", "%N%n%O%n%A%n%Z%n%C", 331 "upper", "CZ", 332 }), 333 EE(new String[]{ 334 "name", "ESTONIA", 335 "fmt", "%N%n%O%n%A%n%Z %C", 336 }), 337 EG(new String[]{ 338 "name", "EGYPT", 339 "fmt", "%N%n%O%n%A%n%C%n%S%n%Z", 340 "lfmt", "%N%n%O%n%A%n%C%n%S%n%Z", 341 }), 342 EH(new String[]{ 343 "name", "WESTERN SAHARA", 344 }), 345 ER(new String[]{ 346 "name", "ERITREA", 347 }), 348 ES(new String[]{ 349 "name", "SPAIN", 350 "lang", "es", 351 "languages", "es", 352 "fmt", "%N%n%O%n%A%n%Z %C %S", 353 "require", "ACSZ", 354 "upper", "CS", 355 }), 356 ET(new String[]{ 357 "name", "ETHIOPIA", 358 "fmt", "%N%n%O%n%A%n%Z %C", 359 }), 360 FI(new String[]{ 361 "name", "FINLAND", 362 "fmt", "%O%n%N%n%A%nFI-%Z %C", 363 "require", "ACZ", 364 "postprefix", "FI-", 365 }), 366 FJ(new String[]{ 367 "name", "FIJI", 368 }), 369 FK(new String[]{ 370 "name", "FALKLAND ISLANDS (MALVINAS)", 371 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 372 "require", "ACZ", 373 "upper", "CZ", 374 }), 375 FM(new String[]{ 376 "name", "MICRONESIA (Federated State of)", 377 "fmt", "%N%n%O%n%A%n%C %S %Z", 378 "require", "ACSZ", 379 "upper", "ACNOS", 380 "zip_name_type", "zip", 381 "state_name_type", "state", 382 }), 383 FO(new String[]{ 384 "name", "FAROE ISLANDS", 385 "fmt", "%N%n%O%n%A%nFO%Z %C", 386 "postprefix", "FO", 387 }), 388 FR(new String[]{ 389 "name", "FRANCE", 390 "fmt", "%O%n%N%n%A%n%Z %C %X", 391 "require", "ACZ", 392 "upper", "CX", 393 }), 394 GA(new String[]{ 395 "name", "GABON", 396 }), 397 GB(new String[]{ 398 "name", "UNITED KINGDOM", 399 "fmt", "%N%n%O%n%A%n%C%n%S%n%Z", 400 "require", "ACZ", 401 "upper", "CZ", 402 "state_name_type", "county", 403 }), 404 GD(new String[]{ 405 "name", "GRENADA (WEST INDIES)", 406 }), 407 GE(new String[]{ 408 "name", "GEORGIA", 409 "fmt", "%N%n%O%n%A%n%Z %C", 410 }), 411 GF(new String[]{ 412 "name", "FRENCH GUIANA", 413 "fmt", "%O%n%N%n%A%n%Z %C %X", 414 "require", "ACZ", 415 "upper", "ACX", 416 }), 417 GG(new String[]{ 418 "name", "CHANNEL ISLANDS", 419 "fmt", "%N%n%O%n%A%n%X%n%C%nGUERNSEY%n%Z", 420 "require", "ACZ", 421 "upper", "CZ", 422 }), 423 GH(new String[]{ 424 "name", "GHANA", 425 }), 426 GI(new String[]{ 427 "name", "GIBRALTAR", 428 "fmt", "%N%n%O%n%A", 429 "require", "A", 430 }), 431 GL(new String[]{ 432 "name", "GREENLAND", 433 "fmt", "%N%n%O%n%A%n%Z %C", 434 "require", "ACZ", 435 }), 436 GM(new String[]{ 437 "name", "GAMBIA", 438 }), 439 GN(new String[]{ 440 "name", "GUINEA", 441 "fmt", "%N%n%O%n%Z %A %C", 442 }), 443 GP(new String[]{ 444 "name", "GUADELOUPE", 445 "fmt", "%O%n%N%n%A%n%Z %C %X", 446 "require", "ACZ", 447 "upper", "ACX", 448 }), 449 GQ(new String[]{ 450 "name", "EQUATORIAL GUINEA", 451 }), 452 GR(new String[]{ 453 "name", "GREECE", 454 "fmt", "%N%n%O%n%A%n%Z %C", 455 "require", "ACZ", 456 }), 457 GS(new String[]{ 458 "name", "SOUTH GEORGIA", 459 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 460 "require", "ACZ", 461 "upper", "CZ", 462 }), 463 GT(new String[]{ 464 "name", "GUATEMALA", 465 "fmt", "%N%n%O%n%A%n%Z- %C", 466 }), 467 GU(new String[]{ 468 "name", "GUAM", 469 "fmt", "%N%n%O%n%A%n%C %S %Z", 470 "require", "ACSZ", 471 "upper", "ACNOS", 472 "zip_name_type", "zip", 473 "state_name_type", "state", 474 }), 475 GW(new String[]{ 476 "name", "GUINEA-BISSAU", 477 "fmt", "%N%n%O%n%A%n%Z %C", 478 }), 479 GY(new String[]{ 480 "name", "GUYANA", 481 }), 482 HK(new String[]{ 483 "name", "HONG KONG", 484 "lang", "zh", 485 "languages", "zh", 486 "fmt", "%S%n%A%n%O%n%N", 487 "lfmt", "%N%n%O%n%A%n%S", 488 "require", "AS", 489 "upper", "S", 490 "state_name_type", "area", 491 }), 492 HM(new String[]{ 493 "name", "HEARD AND MCDONALD ISLANDS", 494 "fmt", "%O%n%N%n%A%n%C %S %Z", 495 "upper", "CS", 496 }), 497 HN(new String[]{ 498 "name", "HONDURAS", 499 "fmt", "%N%n%O%n%A%n%C, %S%n%Z", 500 "require", "ACS", 501 }), 502 HR(new String[]{ 503 "name", "CROATIA", 504 "fmt", "%N%n%O%n%A%nHR-%Z %C", 505 "postprefix", "HR-", 506 }), 507 HT(new String[]{ 508 "name", "HAITI", 509 "fmt", "%N%n%O%n%A%nHT%Z %C %X", 510 "postprefix", "HT", 511 }), 512 HU(new String[]{ 513 "name", "HUNGARY (Rep.)", 514 "fmt", "%N%n%O%n%C%n%A%n%Z", 515 "upper", "ACNO", 516 }), 517 ID(new String[]{ 518 "name", "INDONESIA", 519 "fmt", "%N%n%O%n%A%n%C %Z%n%S", 520 }), 521 IE(new String[]{ 522 "name", "IRELAND", 523 "lang", "en", 524 "languages", "en", 525 "fmt", "%N%n%O%n%A%n%C%n%S", 526 "state_name_type", "county", 527 }), 528 IL(new String[]{ 529 "name", "ISRAEL", 530 "fmt", "%N%n%O%n%A%n%C %Z", 531 }), 532 IM(new String[]{ 533 "name", "ISLE OF MAN", 534 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 535 "require", "ACZ", 536 "upper", "CZ", 537 }), 538 IN(new String[]{ 539 "name", "INDIA", 540 "lang", "en", 541 "languages", "en", 542 "fmt", "%N%n%O%n%A%n%C %Z%n%S", 543 "require", "ACSZ", 544 "state_name_type", "state", 545 }), 546 IO(new String[]{ 547 "name", "BRITISH INDIAN OCEAN TERRITORY", 548 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 549 "require", "ACZ", 550 "upper", "CZ", 551 }), 552 IQ(new String[]{ 553 "name", "IRAQ", 554 "fmt", "%O%n%N%n%A%n%C, %S%n%Z", 555 "require", "ACS", 556 "upper", "CS", 557 }), 558 IS(new String[]{ 559 "name", "ICELAND", 560 "fmt", "%N%n%O%n%A%n%Z %C", 561 }), 562 IT(new String[]{ 563 "name", "ITALY", 564 "lang", "it", 565 "languages", "it", 566 "fmt", "%N%n%O%n%A%n%Z %C %S", 567 "require", "ACSZ", 568 "upper", "CS", 569 }), 570 JE(new String[]{ 571 "name", "CHANNEL ISLANDS", 572 "fmt", "%N%n%O%n%A%n%X%n%C%nJERSEY%n%Z", 573 "require", "ACZ", 574 "upper", "CZ", 575 }), 576 JM(new String[]{ 577 "name", "JAMAICA", 578 "lang", "en", 579 "languages", "en", 580 "fmt", "%N%n%O%n%A%n%C%n%S %X", 581 "require", "ACS", 582 "state_name_type", "parish", 583 }), 584 JO(new String[]{ 585 "name", "JORDAN", 586 "fmt", "%N%n%O%n%A%n%C %Z", 587 }), 588 JP(new String[]{ 589 "name", "JAPAN", 590 "lang", "ja", 591 "languages", "ja", 592 "fmt", "\u3012%Z%n%S%C%n%A%n%O%n%N", 593 "lfmt", "%N%n%O%n%A%n%C, %S%n%Z", 594 "require", "ACSZ", 595 "upper", "S", 596 "state_name_type", "prefecture", 597 }), 598 KE(new String[]{ 599 "name", "KENYA", 600 "fmt", "%N%n%O%n%A%n%C%n%Z", 601 }), 602 KG(new String[]{ 603 "name", "KYRGYZSTAN", 604 "fmt", "%Z %C %X%n%A%n%O%n%N", 605 }), 606 KH(new String[]{ 607 "name", "CAMBODIA", 608 "fmt", "%N%n%O%n%A%n%C %Z", 609 }), 610 KI(new String[]{ 611 "name", "KIRIBATI", 612 "fmt", "%N%n%O%n%A%n%S%n%C", 613 "upper", "ACNOS", 614 "state_name_type", "island", 615 }), 616 KM(new String[]{ 617 "name", "COMOROS", 618 "upper", "AC", 619 }), 620 KN(new String[]{ 621 "name", "SAINT KITTS AND NEVIS", 622 "lang", "en", 623 "languages", "en", 624 "fmt", "%N%n%O%n%A%n%C, %S", 625 "require", "ACS", 626 "state_name_type", "island", 627 }), 628 KR(new String[]{ 629 "name", "KOREA (REP.)", 630 "lang", "ko", 631 "languages", "ko", 632 "fmt", "%S %C%D%n%A%n%O%n%N%nSEOUL %Z", 633 "lfmt", "%N%n%O%n%A%n%D%n%C%n%S%nSEOUL %Z", 634 "require", "ACSZ", 635 "upper", "Z", 636 "state_name_type", "do_si", 637 }), 638 KW(new String[]{ 639 "name", "KUWAIT", 640 "fmt", "%N%n%O%n%A%n%Z %C", 641 }), 642 KY(new String[]{ 643 "name", "CAYMAN ISLANDS", 644 "lang", "en", 645 "languages", "en", 646 "fmt", "%N%n%O%n%A%n%S", 647 "require", "AS", 648 "state_name_type", "island", 649 }), 650 KZ(new String[]{ 651 "name", "KAZAKHSTAN", 652 "fmt", "%Z%n%S%n%C%n%A%n%O%n%N", 653 }), 654 LA(new String[]{ 655 "name", "LAO (PEOPLE'S DEM. REP.)", 656 "fmt", "%N%n%O%n%A%n%Z %C", 657 }), 658 LB(new String[]{ 659 "name", "LEBANON", 660 "fmt", "%N%n%O%n%A%n%C %Z", 661 }), 662 LC(new String[]{ 663 "name", "SAINT LUCIA", 664 }), 665 LI(new String[]{ 666 "name", "LIECHTENSTEIN", 667 "fmt", "%O%n%N%n%A%nFL-%Z %C", 668 "require", "ACZ", 669 "postprefix", "FL-", 670 }), 671 LK(new String[]{ 672 "name", "SRI LANKA", 673 "fmt", "%N%n%O%n%A%n%C%n%Z", 674 }), 675 LR(new String[]{ 676 "name", "LIBERIA", 677 "fmt", "%N%n%O%n%A%n%Z %C %X", 678 }), 679 LS(new String[]{ 680 "name", "LESOTHO", 681 "fmt", "%N%n%O%n%A%n%C %Z", 682 }), 683 LT(new String[]{ 684 "name", "LITHUANIA", 685 "fmt", "%O%n%N%n%A%nLT-%Z %C", 686 "postprefix", "LT-", 687 }), 688 LU(new String[]{ 689 "name", "LUXEMBOURG", 690 "fmt", "%O%n%N%n%A%nL-%Z %C", 691 "require", "ACZ", 692 "postprefix", "L-", 693 }), 694 LV(new String[]{ 695 "name", "LATVIA", 696 "fmt", "%N%n%O%n%A%n%C, %Z", 697 }), 698 LY(new String[]{ 699 "name", "LIBYA", 700 }), 701 MA(new String[]{ 702 "name", "MOROCCO", 703 "fmt", "%N%n%O%n%A%n%Z %C", 704 }), 705 MC(new String[]{ 706 "name", "MONACO", 707 "fmt", "%N%n%O%n%A%nMC-%Z %C %X", 708 "postprefix", "MC-", 709 }), 710 MD(new String[]{ 711 "name", "Rep. MOLDOVA", 712 "fmt", "%N%n%O%n%A%nMD-%Z %C", 713 "postprefix", "MD-", 714 }), 715 ME(new String[]{ 716 "name", "MONTENEGRO", 717 "fmt", "%N%n%O%n%A%n%Z %C", 718 }), 719 MF(new String[]{ 720 "name", "SAINT MARTIN", 721 "fmt", "%O%n%N%n%A%n%Z %C %X", 722 "upper", "ACX", 723 "require", "ACZ", 724 }), 725 MG(new String[]{ 726 "name", "MADAGASCAR", 727 "fmt", "%N%n%O%n%A%n%Z %C", 728 }), 729 MH(new String[]{ 730 "name", "MARSHALL ISLANDS", 731 "fmt", "%N%n%O%n%A%n%C %S %Z", 732 "require", "ACSZ", 733 "upper", "ACNOS", 734 "zip_name_type", "zip", 735 "state_name_type", "state", 736 }), 737 MK(new String[]{ 738 "name", "MACEDONIA", 739 "fmt", "%N%n%O%n%A%n%Z %C", 740 }), 741 ML(new String[]{ 742 "name", "MALI", 743 }), 744 MN(new String[]{ 745 "name", "MONGOLIA", 746 "fmt", "%N%n%O%n%A%n%S %C-%X%n%Z", 747 }), 748 MO(new String[]{ 749 "name", "MACAO", 750 "lang", "zh-hant", 751 "languages", "zh-hant", 752 "fmt", "%A%n%O%n%N", 753 "lfmt", "%N%n%O%n%A", 754 "require", "A", 755 }), 756 MP(new String[]{ 757 "name", "NORTHERN MARIANA ISLANDS", 758 "fmt", "%N%n%O%n%A%n%C %S %Z", 759 "require", "ACSZ", 760 "upper", "ACNOS", 761 "zip_name_type", "zip", 762 "state_name_type", "state", 763 }), 764 MQ(new String[]{ 765 "name", "MARTINIQUE", 766 "fmt", "%O%n%N%n%A%n%Z %C %X", 767 "require", "ACZ", 768 "upper", "ACX", 769 }), 770 MR(new String[]{ 771 "name", "MAURITANIA", 772 "upper", "AC", 773 }), 774 MS(new String[]{ 775 "name", "MONTSERRAT", 776 }), 777 MT(new String[]{ 778 "name", "MALTA", 779 "fmt", "%N%n%O%n%A%n%C %Z", 780 "upper", "CZ", 781 }), 782 MU(new String[]{ 783 "name", "MAURITIUS", 784 "fmt", "%N%n%O%n%A%n%Z%n%C", 785 "upper", "CZ", 786 }), 787 MV(new String[]{ 788 "name", "MALDIVES", 789 "fmt", "%N%n%O%n%A%n%C %Z", 790 }), 791 MW(new String[]{ 792 "name", "MALAWI", 793 "fmt", "%N%n%O%n%A%n%C %X", 794 }), 795 MX(new String[]{ 796 "name", "MEXICO", 797 "lang", "es", 798 "languages", "es", 799 "fmt", "%N%n%O%n%A%n%Z %C, %S", 800 "require", "ACZ", 801 "upper", "CSZ", 802 "state_name_type", "state", 803 }), 804 MY(new String[]{ 805 "name", "MALAYSIA", 806 "lang", "ms", 807 "languages", "ms", 808 "fmt", "%N%n%O%n%A%n%Z %C, %S", 809 "require", "ACZ", 810 "upper", "CS", 811 "state_name_type", "state", 812 }), 813 MZ(new String[]{ 814 "name", "MOZAMBIQUE", 815 "fmt", "%N%n%O%n%A%n%C", 816 }), 817 NA(new String[]{ 818 "name", "NAMIBIA", 819 }), 820 NC(new String[]{ 821 "name", "NEW CALEDONIA", 822 "fmt", "%O%n%N%n%A%n%Z %C %X", 823 "require", "ACZ", 824 "upper", "ACX", 825 }), 826 NE(new String[]{ 827 "name", "NIGER", 828 "fmt", "%N%n%O%n%A%n%Z %C", 829 }), 830 NF(new String[]{ 831 "name", "NORFOLK ISLAND", 832 "fmt", "%O%n%N%n%A%n%C %S %Z", 833 "upper", "CS", 834 }), 835 NG(new String[]{ 836 "name", "NIGERIA", 837 "lang", "fr", 838 "languages", "fr", 839 "fmt", "%N%n%O%n%A%n%C %Z%n%S", 840 "upper", "CS", 841 "state_name_type", "state", 842 }), 843 NI(new String[]{ 844 "name", "NICARAGUA", 845 "lang", "es", 846 "languages", "es", 847 "fmt", "%N%n%O%n%A%n%Z%n%C, %S", 848 "upper", "CS", 849 "state_name_type", "department", 850 }), 851 NL(new String[]{ 852 "name", "NETHERLANDS", 853 "fmt", "%O%n%N%n%A%n%Z %C", 854 "require", "ACZ", 855 }), 856 NO(new String[]{ 857 "name", "NORWAY", 858 "fmt", "%N%n%O%n%A%n%Z %C", 859 "require", "ACZ", 860 }), 861 NP(new String[]{ 862 "name", "NEPAL", 863 "fmt", "%N%n%O%n%A%n%C %Z", 864 }), 865 NR(new String[]{ 866 "name", "NAURU CENTRAL PACIFIC", 867 "lang", "en", 868 "languages", "en", 869 "fmt", "%N%n%O%n%A%n%S", 870 "require", "AS", 871 "state_name_type", "district", 872 }), 873 NU(new String[]{ 874 "name", "NIUE", 875 }), 876 NZ(new String[]{ 877 "name", "NEW ZEALAND", 878 "fmt", "%N%n%O%n%A%n%C %Z", 879 "require", "ACZ", 880 }), 881 OM(new String[]{ 882 "name", "OMAN", 883 "fmt", "%N%n%O%n%A%n%Z%n%C", 884 }), 885 PA(new String[]{ 886 "name", "PANAMA (REP.)", 887 "fmt", "%N%n%O%n%A%n%C%n%S", 888 "upper", "CS", 889 }), 890 PE(new String[]{ 891 "name", "PERU", 892 }), 893 PF(new String[]{ 894 "name", "FRENCH POLYNESIA", 895 "fmt", "%N%n%O%n%A%n%Z %C %S", 896 "require", "ACSZ", 897 "upper", "CS", 898 "state_name_type", "island", 899 }), 900 PG(new String[]{ 901 "name", "PAPUA NEW GUINEA", 902 "fmt", "%N%n%O%n%A%n%C %Z %S", 903 "require", "ACS", 904 }), 905 PH(new String[]{ 906 "name", "PHILIPPINES", 907 "fmt", "%N%n%O%n%A%n%Z %C%n%S", 908 "require", "AC", 909 }), 910 PK(new String[]{ 911 "name", "PAKISTAN", 912 "fmt", "%N%n%O%n%A%n%C-%Z", 913 }), 914 PL(new String[]{ 915 "name", "POLAND", 916 "fmt", "%N%n%O%n%A%n%Z %C", 917 "require", "ACZ", 918 }), 919 PM(new String[]{ 920 "name", "ST. PIERRE AND MIQUELON", 921 "fmt", "%O%n%N%n%A%n%Z %C %X", 922 "require", "ACZ", 923 "upper", "ACX", 924 }), 925 PN(new String[]{ 926 "name", "PITCAIRN", 927 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 928 "require", "ACZ", 929 "upper", "CZ", 930 }), 931 PR(new String[]{ 932 "name", "PUERTO RICO", 933 "fmt", "%N%n%O%n%A%n%C PR %Z", 934 "require", "ACZ", 935 "upper", "ACNO", 936 "zip_name_type", "zip", 937 "postprefix", "PR", 938 }), 939 PS(new String[]{ 940 "name", "PALESTINIAN TERRITORY", 941 }), 942 PT(new String[]{ 943 "name", "PORTUGAL", 944 "fmt", "%N%n%O%n%A%n%Z %C", 945 "require", "ACZ", 946 }), 947 PW(new String[]{ 948 "name", "PALAU", 949 "fmt", "%N%n%O%n%A%n%C %S %Z", 950 "require", "ACSZ", 951 "upper", "ACNOS", 952 "zip_name_type", "zip", 953 "state_name_type", "state", 954 }), 955 PY(new String[]{ 956 "name", "PARAGUAY", 957 "fmt", "%N%n%O%n%A%n%Z %C", 958 }), 959 QA(new String[]{ 960 "name", "QATAR", 961 "upper", "AC", 962 }), 963 RE(new String[]{ 964 "name", "REUNION", 965 "fmt", "%O%n%N%n%A%n%Z %C %X", 966 "require", "ACZ", 967 "upper", "ACX", 968 }), 969 RO(new String[]{ 970 "name", "ROMANIA", 971 "fmt", "%N%n%O%n%A%n%Z %C", 972 "upper", "AC", 973 }), 974 RS(new String[]{ 975 "name", "REPUBLIC OF SERBIA", 976 "fmt", "%N%n%O%n%A%n%Z %C", 977 }), 978 RU(new String[]{ 979 "name", "RUSSIAN FEDERATION", 980 "fmt", "%Z %C %n%A%n%O%n%N", 981 "require", "ACZ", 982 "upper", "AC", 983 }), 984 RW(new String[]{ 985 "name", "RWANDA", 986 "upper", "AC", 987 }), 988 SA(new String[]{ 989 "name", "SAUDI ARABIA", 990 "fmt", "%N%n%O%n%A%n%C %Z", 991 }), 992 SB(new String[]{ 993 "name", "SOLOMON ISLANDS", 994 }), 995 SC(new String[]{ 996 "name", "SEYCHELLES", 997 "fmt", "%N%n%O%n%A%n%C%n%S", 998 "upper", "S", 999 "state_name_type", "island", 1000 }), 1001 SE(new String[]{ 1002 "name", "SWEDEN", 1003 "fmt", "%O%n%N%n%A%nSE-%Z %C", 1004 "require", "ACZ", 1005 "postprefix", "SE-", 1006 }), 1007 SG(new String[]{ 1008 "name", "REP. OF SINGAPORE", 1009 "fmt", "%N%n%O%n%A%nSINGAPORE %Z", 1010 "require", "AZ", 1011 }), 1012 SH(new String[]{ 1013 "name", "SAINT HELENA", 1014 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 1015 "require", "ACZ", 1016 "upper", "CZ", 1017 }), 1018 SI(new String[]{ 1019 "name", "SLOVENIA", 1020 "fmt", "%N%n%O%n%A%nSI- %Z %C", 1021 "postprefix", "SI-", 1022 }), 1023 SJ(new String[]{ 1024 "name", "SVALBARD AND JAN MAYEN ISLANDS", 1025 "fmt", "%N%n%O%n%A%n%Z %C", 1026 "require", "ACZ", 1027 }), 1028 SK(new String[]{ 1029 "name", "SLOVAKIA", 1030 "fmt", "%N%n%O%n%A%n%Z %C", 1031 }), 1032 SL(new String[]{ 1033 "name", "SIERRA LEONE", 1034 }), 1035 SM(new String[]{ 1036 "name", "SAN MARINO", 1037 "fmt", "%N%n%O%n%A%n%Z %C", 1038 "require", "AZ", 1039 }), 1040 SN(new String[]{ 1041 "name", "SENEGAL", 1042 "fmt", "%N%n%O%n%A%n%Z %C", 1043 }), 1044 SO(new String[]{ 1045 "name", "SOMALIA", 1046 "lang", "so", 1047 "languages", "so", 1048 "fmt", "%N%n%O%n%A%n%C, %S %Z", 1049 "require", "ACS", 1050 "upper", "ACS", 1051 }), 1052 SR(new String[]{ 1053 "name", "SURINAME", 1054 "lang", "nl", 1055 "languages", "nl", 1056 "fmt", "%N%n%O%n%A%n%C %X%n%S", 1057 "upper", "AS", 1058 }), 1059 ST(new String[]{ 1060 "name", "SAO TOME AND PRINCIPE", 1061 "fmt", "%N%n%O%n%A%n%C %X", 1062 }), 1063 SV(new String[]{ 1064 "name", "EL SALVADOR", 1065 "lang", "es", 1066 "languages", "es", 1067 "fmt", "%N%n%O%n%A%n%Z-%C%n%S", 1068 "require", "ACS", 1069 "upper", "CSZ", 1070 }), 1071 SZ(new String[]{ 1072 "name", "SWAZILAND", 1073 "fmt", "%N%n%O%n%A%n%C%n%Z", 1074 "upper", "ACZ", 1075 }), 1076 TA(new String[]{ 1077 "name", "TRISTAN DA CUNHA", 1078 }), 1079 TC(new String[]{ 1080 "name", "TURKS AND CAICOS ISLANDS", 1081 "fmt", "%N%n%O%n%A%n%X%n%C%n%Z", 1082 "require", "ACZ", 1083 "upper", "CZ", 1084 }), 1085 TD(new String[]{ 1086 "name", "CHAD", 1087 }), 1088 TF(new String[]{ 1089 "name", "FRENCH SOUTHERN TERRITORIES", 1090 }), 1091 TG(new String[]{ 1092 "name", "TOGO", 1093 }), 1094 TH(new String[]{ 1095 "name", "THAILAND", 1096 "lang", "th", 1097 "languages", "th", 1098 "fmt", "%N%n%O%n%A%n%D %C%n%S %Z", 1099 "lfmt", "%N%n%O%n%A%n%D, %C%n%S %Z", 1100 "upper", "S", 1101 }), 1102 TJ(new String[]{ 1103 "name", "TAJIKISTAN", 1104 "fmt", "%N%n%O%n%A%n%Z %C", 1105 }), 1106 TK(new String[]{ 1107 "name", "TOKELAU", 1108 }), 1109 TL(new String[]{ 1110 "name", "TIMOR-LESTE", 1111 }), 1112 TM(new String[]{ 1113 "name", "TURKMENISTAN", 1114 "fmt", "%N%n%O%n%A%n%Z %C", 1115 }), 1116 TN(new String[]{ 1117 "name", "TUNISIA", 1118 "fmt", "%N%n%O%n%A%n%Z %C", 1119 }), 1120 TO(new String[]{ 1121 "name", "TONGA", 1122 }), 1123 TR(new String[]{ 1124 "name", "TURKEY", 1125 "fmt", "%N%n%O%n%A%n%Z %C/%S", 1126 "require", "ACZ", 1127 }), 1128 TT(new String[]{ 1129 "name", "TRINIDAD AND TOBAGO", 1130 }), 1131 TV(new String[]{ 1132 "name", "TUVALU", 1133 "lang", "tyv", 1134 "languages", "tyv", 1135 "fmt", "%N%n%O%n%A%n%X%n%C%n%S", 1136 "upper", "ACS", 1137 "state_name_type", "island", 1138 }), 1139 TW(new String[]{ 1140 "name", "TAIWAN", 1141 "lang", "zh-hant", 1142 "languages", "zh-hant", 1143 "fmt", "%Z%n%S%C%n%A%n%O%n%N", 1144 "lfmt", "%N%n%O%n%A%n%C, %S %Z", 1145 "require", "ACSZ", 1146 "state_name_type", "county", 1147 }), 1148 TZ(new String[]{ 1149 "name", "TANZANIA (UNITED REP.)", 1150 }), 1151 UA(new String[]{ 1152 "name", "UKRAINE", 1153 "fmt", "%Z %C%n%A%n%O%n%N", 1154 }), 1155 UG(new String[]{ 1156 "name", "UGANDA", 1157 }), 1158 UM(new String[]{ 1159 "name", "UNITED STATES MINOR OUTLYING ISLANDS", 1160 "fmt", "%N%n%O%n%A%n%C %S %Z", 1161 "require", "ACS", 1162 "upper", "ACNOS", 1163 "zip_name_type", "zip", 1164 "state_name_type", "state", 1165 }), 1166 US(new String[]{ 1167 "name", "UNITED STATES", 1168 "lang", "en", 1169 "languages", "en", 1170 "fmt", "%N%n%O%n%A%n%C %S %Z", 1171 "require", "ACSZ", 1172 "upper", "CS", 1173 "zip_name_type", "zip", 1174 "state_name_type", "state", 1175 }), 1176 UY(new String[]{ 1177 "name", "URUGUAY", 1178 "lang", "es", 1179 "languages", "es", 1180 "fmt", "%N%n%O%n%A%n%Z %C %S", 1181 "upper", "CS", 1182 }), 1183 UZ(new String[]{ 1184 "name", "UZBEKISTAN", 1185 "fmt", "%N%n%O%n%A%n%Z %C%n%S", 1186 "upper", "CS", 1187 }), 1188 VA(new String[]{ 1189 "name", "VATICAN", 1190 "fmt", "%N%n%O%n%A%n%Z %C", 1191 }), 1192 VC(new String[]{ 1193 "name", "SAINT VINCENT AND THE GRENADINES (ANTILLES)", 1194 }), 1195 VE(new String[]{ 1196 "name", "VENEZUELA", 1197 "lang", "es", 1198 "languages", "es", 1199 "fmt", "%N%n%O%n%A%n%C %Z, %S", 1200 "require", "ACS", 1201 "upper", "CS", 1202 }), 1203 VG(new String[]{ 1204 "name", "VIRGIN ISLANDS (BRITISH)", 1205 "require", "A", 1206 }), 1207 VI(new String[]{ 1208 "name", "VIRGIN ISLANDS (U.S.)", 1209 "fmt", "%N%n%O%n%A%n%C %S %Z", 1210 "require", "ACSZ", 1211 "upper", "ACNOS", 1212 "zip_name_type", "zip", 1213 "state_name_type", "state", 1214 }), 1215 VN(new String[]{ 1216 "name", "VIET NAM", 1217 "lang", "vi", 1218 "languages", "vi", 1219 "fmt", "%N%n%O%n%A%n%C%n%S", 1220 "lfmt", "%N%n%O%n%A%n%C%n%S", 1221 "require", "AC", 1222 }), 1223 VU(new String[]{ 1224 "name", "VANUATU", 1225 }), 1226 WF(new String[]{ 1227 "name", "WALLIS AND FUTUNA ISLANDS", 1228 "fmt", "%O%n%N%n%A%n%Z %C %X", 1229 "require", "ACZ", 1230 "upper", "ACX", 1231 }), 1232 WS(new String[]{ 1233 "name", "SAMOA", 1234 }), 1235 XK(new String[]{ 1236 "name", "KOSOVO", 1237 "fmt", "%N%n%O%n%A%n%Z %C" 1238 }), 1239 YE(new String[]{ 1240 "name", "YEMEN", 1241 "require", "AC", 1242 }), 1243 YT(new String[]{ 1244 "name", "MAYOTTE", 1245 "fmt", "%O%n%N%n%A%n%Z %C %X", 1246 "require", "ACZ", 1247 "upper", "ACX", 1248 }), 1249 YU(new String[]{ 1250 "name", "SERBIA AND MONTENEGRO", 1251 "fmt", "%N%n%O%n%A%n%Z %C", 1252 }), 1253 ZA(new String[]{ 1254 "name", "SOUTH AFRICA", 1255 "fmt", "%N%n%O%n%A%n%C%n%Z", 1256 "require", "ACZ", 1257 }), 1258 ZM(new String[]{ 1259 "name", "ZAMBIA", 1260 "fmt", "%N%n%O%n%A%n%Z %C", 1261 "require", "AC", 1262 }), 1263 ZW(new String[]{ 1264 "name", "ZIMBABWE", 1265 }), 1266 ZZ(new String[]{ 1267 "fmt", "%N%n%O%n%A%n%C", 1268 "require", "AC", 1269 "upper", "C", 1270 "zip_name_type", "postal", 1271 "state_name_type", "province", 1272 }); 1273 1274 private String jsonString; 1275 1276 private RegionDataEnum(String[] inputArray) { 1277 jsonString = convertArrayToJsonString(inputArray); 1278 } 1279 1280 String getJsonString() { 1281 return jsonString; 1282 } 1283 } 1284 1285 static { 1286 for (RegionDataEnum region : RegionDataEnum.values()) { 1287 COUNTRY_FORMAT_MAP.put(region.toString(), region.getJsonString()); 1288 } 1289 } 1290 1291 static Map<String, String> getCountryFormatMap() { 1292 return COUNTRY_FORMAT_MAP; 1293 } 1294 1295 /** 1296 * Assumes the array is a well-formed array - i.e., there are no unmatched keys in the input. 1297 * Package-private so it can be accessed by tests. 1298 */ 1299 static String convertArrayToJsonString(String[] input) { 1300 JSONObject object = new JSONObject(); 1301 for (int i = 0; i < input.length; i += 2) { 1302 try { 1303 object.put(input[i], input[i + 1]); 1304 } catch (JSONException e) { 1305 // Ignore for now. 1306 } 1307 } 1308 return object.toString(); 1309 } 1310} 1311