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