measunit.cpp (62840B)
1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /* 4 ********************************************************************** 5 * Copyright (c) 2004-2016, International Business Machines 6 * Corporation and others. All Rights Reserved. 7 ********************************************************************** 8 * Author: Alan Liu 9 * Created: April 26, 2004 10 * Since: ICU 3.0 11 ********************************************************************** 12 */ 13 #include "utypeinfo.h" // for 'typeid' to work 14 15 #include "unicode/measunit.h" 16 17 #if !UCONFIG_NO_FORMATTING 18 19 #include "unicode/uenum.h" 20 #include "unicode/errorcode.h" 21 #include "ustrenum.h" 22 #include "cstring.h" 23 #include "uassert.h" 24 #include "measunit_impl.h" 25 26 U_NAMESPACE_BEGIN 27 28 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureUnit) 29 30 // All code between the "Start generated code" comment and 31 // the "End generated code" comment is auto generated code 32 // and must not be edited manually. For instructions on how to correctly 33 // update this code, refer to: 34 // https://icu.unicode.org/design/formatting/measureformat/updating-measure-unit 35 // 36 // Start generated code for measunit.cpp 37 38 // Maps from Type ID to offset in gSubTypes. 39 static const int32_t gOffsets[] = { 40 0, 41 2, 42 8, 43 21, 44 34, 45 38, 46 340, 47 351, 48 370, 49 378, 50 392, 51 396, 52 400, 53 408, 54 439, 55 443, 56 445, 57 462, 58 463, 59 469, 60 481, 61 487, 62 492, 63 494, 64 538 65 }; 66 67 static const int32_t kCurrencyOffset = 5; 68 69 // Must be sorted alphabetically. 70 static const char * const gTypes[] = { 71 "acceleration", 72 "angle", 73 "area", 74 "concentr", 75 "consumption", 76 "currency", 77 "digital", 78 "duration", 79 "electric", 80 "energy", 81 "force", 82 "frequency", 83 "graphics", 84 "length", 85 "light", 86 "magnetic", 87 "mass", 88 "none", 89 "power", 90 "pressure", 91 "speed", 92 "temperature", 93 "torque", 94 "volume" 95 }; 96 97 // Must be grouped by type and sorted alphabetically within each type. 98 static const char * const gSubTypes[] = { 99 "g-force", 100 "meter-per-square-second", 101 "arc-minute", 102 "arc-second", 103 "degree", 104 "radian", 105 "revolution", 106 "steradian", 107 "acre", 108 "bu-jp", 109 "cho", 110 "dunam", 111 "hectare", 112 "se-jp", 113 "square-centimeter", 114 "square-foot", 115 "square-inch", 116 "square-kilometer", 117 "square-meter", 118 "square-mile", 119 "square-yard", 120 "item", 121 "karat", 122 "katal", 123 "milligram-ofglucose-per-deciliter", 124 "millimole-per-liter", 125 "mole", 126 "ofglucose", 127 "part", 128 "part-per-1e6", 129 "part-per-1e9", 130 "percent", 131 "permille", 132 "permyriad", 133 "liter-per-100-kilometer", 134 "liter-per-kilometer", 135 "mile-per-gallon", 136 "mile-per-gallon-imperial", 137 "ADP", 138 "AED", 139 "AFA", 140 "AFN", 141 "ALK", 142 "ALL", 143 "AMD", 144 "ANG", 145 "AOA", 146 "AOK", 147 "AON", 148 "AOR", 149 "ARA", 150 "ARP", 151 "ARS", 152 "ARY", 153 "ATS", 154 "AUD", 155 "AWG", 156 "AYM", 157 "AZM", 158 "AZN", 159 "BAD", 160 "BAM", 161 "BBD", 162 "BDT", 163 "BEC", 164 "BEF", 165 "BEL", 166 "BGJ", 167 "BGK", 168 "BGL", 169 "BGN", 170 "BHD", 171 "BIF", 172 "BMD", 173 "BND", 174 "BOB", 175 "BOP", 176 "BOV", 177 "BRB", 178 "BRC", 179 "BRE", 180 "BRL", 181 "BRN", 182 "BRR", 183 "BSD", 184 "BTN", 185 "BUK", 186 "BWP", 187 "BYB", 188 "BYN", 189 "BYR", 190 "BZD", 191 "CAD", 192 "CDF", 193 "CHC", 194 "CHE", 195 "CHF", 196 "CHW", 197 "CLF", 198 "CLP", 199 "CNY", 200 "COP", 201 "COU", 202 "CRC", 203 "CSD", 204 "CSJ", 205 "CSK", 206 "CUC", 207 "CUP", 208 "CVE", 209 "CYP", 210 "CZK", 211 "DDM", 212 "DEM", 213 "DJF", 214 "DKK", 215 "DOP", 216 "DZD", 217 "ECS", 218 "ECV", 219 "EEK", 220 "EGP", 221 "ERN", 222 "ESA", 223 "ESB", 224 "ESP", 225 "ETB", 226 "EUR", 227 "FIM", 228 "FJD", 229 "FKP", 230 "FRF", 231 "GBP", 232 "GEK", 233 "GEL", 234 "GHC", 235 "GHP", 236 "GHS", 237 "GIP", 238 "GMD", 239 "GNE", 240 "GNF", 241 "GNS", 242 "GQE", 243 "GRD", 244 "GTQ", 245 "GWE", 246 "GWP", 247 "GYD", 248 "HKD", 249 "HNL", 250 "HRD", 251 "HRK", 252 "HTG", 253 "HUF", 254 "IDR", 255 "IEP", 256 "ILP", 257 "ILR", 258 "ILS", 259 "INR", 260 "IQD", 261 "IRR", 262 "ISJ", 263 "ISK", 264 "ITL", 265 "JMD", 266 "JOD", 267 "JPY", 268 "KES", 269 "KGS", 270 "KHR", 271 "KMF", 272 "KPW", 273 "KRW", 274 "KWD", 275 "KYD", 276 "KZT", 277 "LAJ", 278 "LAK", 279 "LBP", 280 "LKR", 281 "LRD", 282 "LSL", 283 "LSM", 284 "LTL", 285 "LTT", 286 "LUC", 287 "LUF", 288 "LUL", 289 "LVL", 290 "LVR", 291 "LYD", 292 "MAD", 293 "MDL", 294 "MGA", 295 "MGF", 296 "MKD", 297 "MLF", 298 "MMK", 299 "MNT", 300 "MOP", 301 "MRO", 302 "MRU", 303 "MTL", 304 "MTP", 305 "MUR", 306 "MVQ", 307 "MVR", 308 "MWK", 309 "MXN", 310 "MXP", 311 "MXV", 312 "MYR", 313 "MZE", 314 "MZM", 315 "MZN", 316 "NAD", 317 "NGN", 318 "NIC", 319 "NIO", 320 "NLG", 321 "NOK", 322 "NPR", 323 "NZD", 324 "OMR", 325 "PAB", 326 "PEH", 327 "PEI", 328 "PEN", 329 "PES", 330 "PGK", 331 "PHP", 332 "PKR", 333 "PLN", 334 "PLZ", 335 "PTE", 336 "PYG", 337 "QAR", 338 "RHD", 339 "ROK", 340 "ROL", 341 "RON", 342 "RSD", 343 "RUB", 344 "RUR", 345 "RWF", 346 "SAR", 347 "SBD", 348 "SCR", 349 "SDD", 350 "SDG", 351 "SDP", 352 "SEK", 353 "SGD", 354 "SHP", 355 "SIT", 356 "SKK", 357 "SLE", 358 "SLL", 359 "SOS", 360 "SRD", 361 "SRG", 362 "SSP", 363 "STD", 364 "STN", 365 "SUR", 366 "SVC", 367 "SYP", 368 "SZL", 369 "THB", 370 "TJR", 371 "TJS", 372 "TMM", 373 "TMT", 374 "TND", 375 "TOP", 376 "TPE", 377 "TRL", 378 "TRY", 379 "TTD", 380 "TWD", 381 "TZS", 382 "UAH", 383 "UAK", 384 "UGS", 385 "UGW", 386 "UGX", 387 "USD", 388 "USN", 389 "USS", 390 "UYI", 391 "UYN", 392 "UYP", 393 "UYU", 394 "UYW", 395 "UZS", 396 "VEB", 397 "VED", 398 "VEF", 399 "VES", 400 "VNC", 401 "VND", 402 "VUV", 403 "WST", 404 "XAF", 405 "XAG", 406 "XAU", 407 "XBA", 408 "XBB", 409 "XBC", 410 "XBD", 411 "XCD", 412 "XDR", 413 "XEU", 414 "XOF", 415 "XPD", 416 "XPF", 417 "XPT", 418 "XSU", 419 "XTS", 420 "XUA", 421 "XXX", 422 "YDD", 423 "YER", 424 "YUD", 425 "YUM", 426 "YUN", 427 "ZAL", 428 "ZAR", 429 "ZMK", 430 "ZMW", 431 "ZRN", 432 "ZRZ", 433 "ZWC", 434 "ZWD", 435 "ZWG", 436 "ZWL", 437 "ZWN", 438 "ZWR", 439 "bit", 440 "byte", 441 "gigabit", 442 "gigabyte", 443 "kilobit", 444 "kilobyte", 445 "megabit", 446 "megabyte", 447 "petabyte", 448 "terabit", 449 "terabyte", 450 "century", 451 "day", 452 "day-person", 453 "decade", 454 "fortnight", 455 "hour", 456 "microsecond", 457 "millisecond", 458 "minute", 459 "month", 460 "month-person", 461 "nanosecond", 462 "night", 463 "quarter", 464 "second", 465 "week", 466 "week-person", 467 "year", 468 "year-person", 469 "ampere", 470 "coulomb", 471 "farad", 472 "henry", 473 "milliampere", 474 "ohm", 475 "siemens", 476 "volt", 477 "becquerel", 478 "british-thermal-unit", 479 "british-thermal-unit-it", 480 "calorie", 481 "calorie-it", 482 "electronvolt", 483 "foodcalorie", 484 "gray", 485 "joule", 486 "kilocalorie", 487 "kilojoule", 488 "kilowatt-hour", 489 "sievert", 490 "therm-us", 491 "kilogram-force", 492 "kilowatt-hour-per-100-kilometer", 493 "newton", 494 "pound-force", 495 "gigahertz", 496 "hertz", 497 "kilohertz", 498 "megahertz", 499 "dot", 500 "dot-per-centimeter", 501 "dot-per-inch", 502 "em", 503 "megapixel", 504 "pixel", 505 "pixel-per-centimeter", 506 "pixel-per-inch", 507 "astronomical-unit", 508 "centimeter", 509 "chain", 510 "decimeter", 511 "earth-radius", 512 "fathom", 513 "foot", 514 "furlong", 515 "inch", 516 "jo-jp", 517 "ken", 518 "kilometer", 519 "light-year", 520 "meter", 521 "micrometer", 522 "mile", 523 "mile-scandinavian", 524 "millimeter", 525 "nanometer", 526 "nautical-mile", 527 "parsec", 528 "picometer", 529 "point", 530 "ri-jp", 531 "rin", 532 "rod", 533 "shaku-cloth", 534 "shaku-length", 535 "solar-radius", 536 "sun", 537 "yard", 538 "candela", 539 "lumen", 540 "lux", 541 "solar-luminosity", 542 "tesla", 543 "weber", 544 "carat", 545 "dalton", 546 "earth-mass", 547 "fun", 548 "grain", 549 "gram", 550 "kilogram", 551 "microgram", 552 "milligram", 553 "ounce", 554 "ounce-troy", 555 "pound", 556 "slug", 557 "solar-mass", 558 "stone", 559 "ton", 560 "tonne", 561 "", 562 "gigawatt", 563 "horsepower", 564 "kilowatt", 565 "megawatt", 566 "milliwatt", 567 "watt", 568 "atmosphere", 569 "bar", 570 "gasoline-energy-density", 571 "hectopascal", 572 "inch-ofhg", 573 "kilopascal", 574 "megapascal", 575 "millibar", 576 "millimeter-ofhg", 577 "ofhg", 578 "pascal", 579 "pound-force-per-square-inch", 580 "beaufort", 581 "kilometer-per-hour", 582 "knot", 583 "light-speed", 584 "meter-per-second", 585 "mile-per-hour", 586 "celsius", 587 "fahrenheit", 588 "generic", 589 "kelvin", 590 "rankine", 591 "newton-meter", 592 "pound-force-foot", 593 "acre-foot", 594 "barrel", 595 "bushel", 596 "centiliter", 597 "cubic-centimeter", 598 "cubic-foot", 599 "cubic-inch", 600 "cubic-kilometer", 601 "cubic-meter", 602 "cubic-mile", 603 "cubic-yard", 604 "cup", 605 "cup-imperial", 606 "cup-jp", 607 "cup-metric", 608 "deciliter", 609 "dessert-spoon", 610 "dessert-spoon-imperial", 611 "dram", 612 "drop", 613 "fluid-ounce", 614 "fluid-ounce-imperial", 615 "fluid-ounce-metric", 616 "gallon", 617 "gallon-imperial", 618 "hectoliter", 619 "jigger", 620 "koku", 621 "kosaji", 622 "liter", 623 "megaliter", 624 "milliliter", 625 "osaji", 626 "pinch", 627 "pint", 628 "pint-imperial", 629 "pint-metric", 630 "quart", 631 "quart-imperial", 632 "sai", 633 "shaku", 634 "tablespoon", 635 "teaspoon", 636 "to-jp" 637 }; 638 639 // Shortcuts to the base unit in order to make the default constructor fast 640 static const int32_t kBaseTypeIdx = 17; 641 static const int32_t kBaseSubTypeIdx = 0; 642 643 MeasureUnit *MeasureUnit::createGForce(UErrorCode &status) { 644 return MeasureUnit::create(0, 0, status); 645 } 646 647 MeasureUnit MeasureUnit::getGForce() { 648 return MeasureUnit(0, 0); 649 } 650 651 MeasureUnit *MeasureUnit::createMeterPerSecondSquared(UErrorCode &status) { 652 return MeasureUnit::create(0, 1, status); 653 } 654 655 MeasureUnit MeasureUnit::getMeterPerSecondSquared() { 656 return MeasureUnit(0, 1); 657 } 658 659 MeasureUnit *MeasureUnit::createArcMinute(UErrorCode &status) { 660 return MeasureUnit::create(1, 0, status); 661 } 662 663 MeasureUnit MeasureUnit::getArcMinute() { 664 return MeasureUnit(1, 0); 665 } 666 667 MeasureUnit *MeasureUnit::createArcSecond(UErrorCode &status) { 668 return MeasureUnit::create(1, 1, status); 669 } 670 671 MeasureUnit MeasureUnit::getArcSecond() { 672 return MeasureUnit(1, 1); 673 } 674 675 MeasureUnit *MeasureUnit::createDegree(UErrorCode &status) { 676 return MeasureUnit::create(1, 2, status); 677 } 678 679 MeasureUnit MeasureUnit::getDegree() { 680 return MeasureUnit(1, 2); 681 } 682 683 MeasureUnit *MeasureUnit::createRadian(UErrorCode &status) { 684 return MeasureUnit::create(1, 3, status); 685 } 686 687 MeasureUnit MeasureUnit::getRadian() { 688 return MeasureUnit(1, 3); 689 } 690 691 MeasureUnit *MeasureUnit::createRevolutionAngle(UErrorCode &status) { 692 return MeasureUnit::create(1, 4, status); 693 } 694 695 MeasureUnit MeasureUnit::getRevolutionAngle() { 696 return MeasureUnit(1, 4); 697 } 698 699 MeasureUnit *MeasureUnit::createSteradian(UErrorCode &status) { 700 return MeasureUnit::create(1, 5, status); 701 } 702 703 MeasureUnit MeasureUnit::getSteradian() { 704 return MeasureUnit(1, 5); 705 } 706 707 MeasureUnit *MeasureUnit::createAcre(UErrorCode &status) { 708 return MeasureUnit::create(2, 0, status); 709 } 710 711 MeasureUnit MeasureUnit::getAcre() { 712 return MeasureUnit(2, 0); 713 } 714 715 MeasureUnit *MeasureUnit::createBuJp(UErrorCode &status) { 716 return MeasureUnit::create(2, 1, status); 717 } 718 719 MeasureUnit MeasureUnit::getBuJp() { 720 return MeasureUnit(2, 1); 721 } 722 723 MeasureUnit *MeasureUnit::createCho(UErrorCode &status) { 724 return MeasureUnit::create(2, 2, status); 725 } 726 727 MeasureUnit MeasureUnit::getCho() { 728 return MeasureUnit(2, 2); 729 } 730 731 MeasureUnit *MeasureUnit::createDunam(UErrorCode &status) { 732 return MeasureUnit::create(2, 3, status); 733 } 734 735 MeasureUnit MeasureUnit::getDunam() { 736 return MeasureUnit(2, 3); 737 } 738 739 MeasureUnit *MeasureUnit::createHectare(UErrorCode &status) { 740 return MeasureUnit::create(2, 4, status); 741 } 742 743 MeasureUnit MeasureUnit::getHectare() { 744 return MeasureUnit(2, 4); 745 } 746 747 MeasureUnit *MeasureUnit::createSeJp(UErrorCode &status) { 748 return MeasureUnit::create(2, 5, status); 749 } 750 751 MeasureUnit MeasureUnit::getSeJp() { 752 return MeasureUnit(2, 5); 753 } 754 755 MeasureUnit *MeasureUnit::createSquareCentimeter(UErrorCode &status) { 756 return MeasureUnit::create(2, 6, status); 757 } 758 759 MeasureUnit MeasureUnit::getSquareCentimeter() { 760 return MeasureUnit(2, 6); 761 } 762 763 MeasureUnit *MeasureUnit::createSquareFoot(UErrorCode &status) { 764 return MeasureUnit::create(2, 7, status); 765 } 766 767 MeasureUnit MeasureUnit::getSquareFoot() { 768 return MeasureUnit(2, 7); 769 } 770 771 MeasureUnit *MeasureUnit::createSquareInch(UErrorCode &status) { 772 return MeasureUnit::create(2, 8, status); 773 } 774 775 MeasureUnit MeasureUnit::getSquareInch() { 776 return MeasureUnit(2, 8); 777 } 778 779 MeasureUnit *MeasureUnit::createSquareKilometer(UErrorCode &status) { 780 return MeasureUnit::create(2, 9, status); 781 } 782 783 MeasureUnit MeasureUnit::getSquareKilometer() { 784 return MeasureUnit(2, 9); 785 } 786 787 MeasureUnit *MeasureUnit::createSquareMeter(UErrorCode &status) { 788 return MeasureUnit::create(2, 10, status); 789 } 790 791 MeasureUnit MeasureUnit::getSquareMeter() { 792 return MeasureUnit(2, 10); 793 } 794 795 MeasureUnit *MeasureUnit::createSquareMile(UErrorCode &status) { 796 return MeasureUnit::create(2, 11, status); 797 } 798 799 MeasureUnit MeasureUnit::getSquareMile() { 800 return MeasureUnit(2, 11); 801 } 802 803 MeasureUnit *MeasureUnit::createSquareYard(UErrorCode &status) { 804 return MeasureUnit::create(2, 12, status); 805 } 806 807 MeasureUnit MeasureUnit::getSquareYard() { 808 return MeasureUnit(2, 12); 809 } 810 811 MeasureUnit *MeasureUnit::createItem(UErrorCode &status) { 812 return MeasureUnit::create(3, 0, status); 813 } 814 815 MeasureUnit MeasureUnit::getItem() { 816 return MeasureUnit(3, 0); 817 } 818 819 MeasureUnit *MeasureUnit::createKarat(UErrorCode &status) { 820 return MeasureUnit::create(3, 1, status); 821 } 822 823 MeasureUnit MeasureUnit::getKarat() { 824 return MeasureUnit(3, 1); 825 } 826 827 MeasureUnit *MeasureUnit::createKatal(UErrorCode &status) { 828 return MeasureUnit::create(3, 2, status); 829 } 830 831 MeasureUnit MeasureUnit::getKatal() { 832 return MeasureUnit(3, 2); 833 } 834 835 MeasureUnit *MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode &status) { 836 return MeasureUnit::create(3, 3, status); 837 } 838 839 MeasureUnit MeasureUnit::getMilligramOfglucosePerDeciliter() { 840 return MeasureUnit(3, 3); 841 } 842 843 MeasureUnit *MeasureUnit::createMilligramPerDeciliter(UErrorCode &status) { 844 return MeasureUnit::create(3, 3, status); 845 } 846 847 MeasureUnit MeasureUnit::getMilligramPerDeciliter() { 848 return MeasureUnit(3, 3); 849 } 850 851 MeasureUnit *MeasureUnit::createMillimolePerLiter(UErrorCode &status) { 852 return MeasureUnit::create(3, 4, status); 853 } 854 855 MeasureUnit MeasureUnit::getMillimolePerLiter() { 856 return MeasureUnit(3, 4); 857 } 858 859 MeasureUnit *MeasureUnit::createMole(UErrorCode &status) { 860 return MeasureUnit::create(3, 5, status); 861 } 862 863 MeasureUnit MeasureUnit::getMole() { 864 return MeasureUnit(3, 5); 865 } 866 867 MeasureUnit *MeasureUnit::createOfglucose(UErrorCode &status) { 868 return MeasureUnit::create(3, 6, status); 869 } 870 871 MeasureUnit MeasureUnit::getOfglucose() { 872 return MeasureUnit(3, 6); 873 } 874 875 MeasureUnit *MeasureUnit::createPart(UErrorCode &status) { 876 return MeasureUnit::create(3, 7, status); 877 } 878 879 MeasureUnit MeasureUnit::getPart() { 880 return MeasureUnit(3, 7); 881 } 882 883 MeasureUnit *MeasureUnit::createPartPer1E6(UErrorCode &status) { 884 return MeasureUnit::create(3, 8, status); 885 } 886 887 MeasureUnit MeasureUnit::getPartPer1E6() { 888 return MeasureUnit(3, 8); 889 } 890 891 MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) { 892 return MeasureUnit::create(3, 8, status); 893 } 894 895 MeasureUnit MeasureUnit::getPartPerMillion() { 896 return MeasureUnit(3, 8); 897 } 898 899 MeasureUnit *MeasureUnit::createPartPer1E9(UErrorCode &status) { 900 return MeasureUnit::create(3, 9, status); 901 } 902 903 MeasureUnit MeasureUnit::getPartPer1E9() { 904 return MeasureUnit(3, 9); 905 } 906 907 MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) { 908 return MeasureUnit::create(3, 10, status); 909 } 910 911 MeasureUnit MeasureUnit::getPercent() { 912 return MeasureUnit(3, 10); 913 } 914 915 MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) { 916 return MeasureUnit::create(3, 11, status); 917 } 918 919 MeasureUnit MeasureUnit::getPermille() { 920 return MeasureUnit(3, 11); 921 } 922 923 MeasureUnit *MeasureUnit::createPermyriad(UErrorCode &status) { 924 return MeasureUnit::create(3, 12, status); 925 } 926 927 MeasureUnit MeasureUnit::getPermyriad() { 928 return MeasureUnit(3, 12); 929 } 930 931 MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) { 932 return MeasureUnit::create(4, 0, status); 933 } 934 935 MeasureUnit MeasureUnit::getLiterPer100Kilometers() { 936 return MeasureUnit(4, 0); 937 } 938 939 MeasureUnit *MeasureUnit::createLiterPerKilometer(UErrorCode &status) { 940 return MeasureUnit::create(4, 1, status); 941 } 942 943 MeasureUnit MeasureUnit::getLiterPerKilometer() { 944 return MeasureUnit(4, 1); 945 } 946 947 MeasureUnit *MeasureUnit::createMilePerGallon(UErrorCode &status) { 948 return MeasureUnit::create(4, 2, status); 949 } 950 951 MeasureUnit MeasureUnit::getMilePerGallon() { 952 return MeasureUnit(4, 2); 953 } 954 955 MeasureUnit *MeasureUnit::createMilePerGallonImperial(UErrorCode &status) { 956 return MeasureUnit::create(4, 3, status); 957 } 958 959 MeasureUnit MeasureUnit::getMilePerGallonImperial() { 960 return MeasureUnit(4, 3); 961 } 962 963 MeasureUnit *MeasureUnit::createBit(UErrorCode &status) { 964 return MeasureUnit::create(6, 0, status); 965 } 966 967 MeasureUnit MeasureUnit::getBit() { 968 return MeasureUnit(6, 0); 969 } 970 971 MeasureUnit *MeasureUnit::createByte(UErrorCode &status) { 972 return MeasureUnit::create(6, 1, status); 973 } 974 975 MeasureUnit MeasureUnit::getByte() { 976 return MeasureUnit(6, 1); 977 } 978 979 MeasureUnit *MeasureUnit::createGigabit(UErrorCode &status) { 980 return MeasureUnit::create(6, 2, status); 981 } 982 983 MeasureUnit MeasureUnit::getGigabit() { 984 return MeasureUnit(6, 2); 985 } 986 987 MeasureUnit *MeasureUnit::createGigabyte(UErrorCode &status) { 988 return MeasureUnit::create(6, 3, status); 989 } 990 991 MeasureUnit MeasureUnit::getGigabyte() { 992 return MeasureUnit(6, 3); 993 } 994 995 MeasureUnit *MeasureUnit::createKilobit(UErrorCode &status) { 996 return MeasureUnit::create(6, 4, status); 997 } 998 999 MeasureUnit MeasureUnit::getKilobit() { 1000 return MeasureUnit(6, 4); 1001 } 1002 1003 MeasureUnit *MeasureUnit::createKilobyte(UErrorCode &status) { 1004 return MeasureUnit::create(6, 5, status); 1005 } 1006 1007 MeasureUnit MeasureUnit::getKilobyte() { 1008 return MeasureUnit(6, 5); 1009 } 1010 1011 MeasureUnit *MeasureUnit::createMegabit(UErrorCode &status) { 1012 return MeasureUnit::create(6, 6, status); 1013 } 1014 1015 MeasureUnit MeasureUnit::getMegabit() { 1016 return MeasureUnit(6, 6); 1017 } 1018 1019 MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) { 1020 return MeasureUnit::create(6, 7, status); 1021 } 1022 1023 MeasureUnit MeasureUnit::getMegabyte() { 1024 return MeasureUnit(6, 7); 1025 } 1026 1027 MeasureUnit *MeasureUnit::createPetabyte(UErrorCode &status) { 1028 return MeasureUnit::create(6, 8, status); 1029 } 1030 1031 MeasureUnit MeasureUnit::getPetabyte() { 1032 return MeasureUnit(6, 8); 1033 } 1034 1035 MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) { 1036 return MeasureUnit::create(6, 9, status); 1037 } 1038 1039 MeasureUnit MeasureUnit::getTerabit() { 1040 return MeasureUnit(6, 9); 1041 } 1042 1043 MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) { 1044 return MeasureUnit::create(6, 10, status); 1045 } 1046 1047 MeasureUnit MeasureUnit::getTerabyte() { 1048 return MeasureUnit(6, 10); 1049 } 1050 1051 MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) { 1052 return MeasureUnit::create(7, 0, status); 1053 } 1054 1055 MeasureUnit MeasureUnit::getCentury() { 1056 return MeasureUnit(7, 0); 1057 } 1058 1059 MeasureUnit *MeasureUnit::createDay(UErrorCode &status) { 1060 return MeasureUnit::create(7, 1, status); 1061 } 1062 1063 MeasureUnit MeasureUnit::getDay() { 1064 return MeasureUnit(7, 1); 1065 } 1066 1067 MeasureUnit *MeasureUnit::createDayPerson(UErrorCode &status) { 1068 return MeasureUnit::create(7, 2, status); 1069 } 1070 1071 MeasureUnit MeasureUnit::getDayPerson() { 1072 return MeasureUnit(7, 2); 1073 } 1074 1075 MeasureUnit *MeasureUnit::createDecade(UErrorCode &status) { 1076 return MeasureUnit::create(7, 3, status); 1077 } 1078 1079 MeasureUnit MeasureUnit::getDecade() { 1080 return MeasureUnit(7, 3); 1081 } 1082 1083 MeasureUnit *MeasureUnit::createFortnight(UErrorCode &status) { 1084 return MeasureUnit::create(7, 4, status); 1085 } 1086 1087 MeasureUnit MeasureUnit::getFortnight() { 1088 return MeasureUnit(7, 4); 1089 } 1090 1091 MeasureUnit *MeasureUnit::createHour(UErrorCode &status) { 1092 return MeasureUnit::create(7, 5, status); 1093 } 1094 1095 MeasureUnit MeasureUnit::getHour() { 1096 return MeasureUnit(7, 5); 1097 } 1098 1099 MeasureUnit *MeasureUnit::createMicrosecond(UErrorCode &status) { 1100 return MeasureUnit::create(7, 6, status); 1101 } 1102 1103 MeasureUnit MeasureUnit::getMicrosecond() { 1104 return MeasureUnit(7, 6); 1105 } 1106 1107 MeasureUnit *MeasureUnit::createMillisecond(UErrorCode &status) { 1108 return MeasureUnit::create(7, 7, status); 1109 } 1110 1111 MeasureUnit MeasureUnit::getMillisecond() { 1112 return MeasureUnit(7, 7); 1113 } 1114 1115 MeasureUnit *MeasureUnit::createMinute(UErrorCode &status) { 1116 return MeasureUnit::create(7, 8, status); 1117 } 1118 1119 MeasureUnit MeasureUnit::getMinute() { 1120 return MeasureUnit(7, 8); 1121 } 1122 1123 MeasureUnit *MeasureUnit::createMonth(UErrorCode &status) { 1124 return MeasureUnit::create(7, 9, status); 1125 } 1126 1127 MeasureUnit MeasureUnit::getMonth() { 1128 return MeasureUnit(7, 9); 1129 } 1130 1131 MeasureUnit *MeasureUnit::createMonthPerson(UErrorCode &status) { 1132 return MeasureUnit::create(7, 10, status); 1133 } 1134 1135 MeasureUnit MeasureUnit::getMonthPerson() { 1136 return MeasureUnit(7, 10); 1137 } 1138 1139 MeasureUnit *MeasureUnit::createNanosecond(UErrorCode &status) { 1140 return MeasureUnit::create(7, 11, status); 1141 } 1142 1143 MeasureUnit MeasureUnit::getNanosecond() { 1144 return MeasureUnit(7, 11); 1145 } 1146 1147 MeasureUnit *MeasureUnit::createNight(UErrorCode &status) { 1148 return MeasureUnit::create(7, 12, status); 1149 } 1150 1151 MeasureUnit MeasureUnit::getNight() { 1152 return MeasureUnit(7, 12); 1153 } 1154 1155 MeasureUnit *MeasureUnit::createQuarter(UErrorCode &status) { 1156 return MeasureUnit::create(7, 13, status); 1157 } 1158 1159 MeasureUnit MeasureUnit::getQuarter() { 1160 return MeasureUnit(7, 13); 1161 } 1162 1163 MeasureUnit *MeasureUnit::createSecond(UErrorCode &status) { 1164 return MeasureUnit::create(7, 14, status); 1165 } 1166 1167 MeasureUnit MeasureUnit::getSecond() { 1168 return MeasureUnit(7, 14); 1169 } 1170 1171 MeasureUnit *MeasureUnit::createWeek(UErrorCode &status) { 1172 return MeasureUnit::create(7, 15, status); 1173 } 1174 1175 MeasureUnit MeasureUnit::getWeek() { 1176 return MeasureUnit(7, 15); 1177 } 1178 1179 MeasureUnit *MeasureUnit::createWeekPerson(UErrorCode &status) { 1180 return MeasureUnit::create(7, 16, status); 1181 } 1182 1183 MeasureUnit MeasureUnit::getWeekPerson() { 1184 return MeasureUnit(7, 16); 1185 } 1186 1187 MeasureUnit *MeasureUnit::createYear(UErrorCode &status) { 1188 return MeasureUnit::create(7, 17, status); 1189 } 1190 1191 MeasureUnit MeasureUnit::getYear() { 1192 return MeasureUnit(7, 17); 1193 } 1194 1195 MeasureUnit *MeasureUnit::createYearPerson(UErrorCode &status) { 1196 return MeasureUnit::create(7, 18, status); 1197 } 1198 1199 MeasureUnit MeasureUnit::getYearPerson() { 1200 return MeasureUnit(7, 18); 1201 } 1202 1203 MeasureUnit *MeasureUnit::createAmpere(UErrorCode &status) { 1204 return MeasureUnit::create(8, 0, status); 1205 } 1206 1207 MeasureUnit MeasureUnit::getAmpere() { 1208 return MeasureUnit(8, 0); 1209 } 1210 1211 MeasureUnit *MeasureUnit::createCoulomb(UErrorCode &status) { 1212 return MeasureUnit::create(8, 1, status); 1213 } 1214 1215 MeasureUnit MeasureUnit::getCoulomb() { 1216 return MeasureUnit(8, 1); 1217 } 1218 1219 MeasureUnit *MeasureUnit::createFarad(UErrorCode &status) { 1220 return MeasureUnit::create(8, 2, status); 1221 } 1222 1223 MeasureUnit MeasureUnit::getFarad() { 1224 return MeasureUnit(8, 2); 1225 } 1226 1227 MeasureUnit *MeasureUnit::createHenry(UErrorCode &status) { 1228 return MeasureUnit::create(8, 3, status); 1229 } 1230 1231 MeasureUnit MeasureUnit::getHenry() { 1232 return MeasureUnit(8, 3); 1233 } 1234 1235 MeasureUnit *MeasureUnit::createMilliampere(UErrorCode &status) { 1236 return MeasureUnit::create(8, 4, status); 1237 } 1238 1239 MeasureUnit MeasureUnit::getMilliampere() { 1240 return MeasureUnit(8, 4); 1241 } 1242 1243 MeasureUnit *MeasureUnit::createOhm(UErrorCode &status) { 1244 return MeasureUnit::create(8, 5, status); 1245 } 1246 1247 MeasureUnit MeasureUnit::getOhm() { 1248 return MeasureUnit(8, 5); 1249 } 1250 1251 MeasureUnit *MeasureUnit::createSiemens(UErrorCode &status) { 1252 return MeasureUnit::create(8, 6, status); 1253 } 1254 1255 MeasureUnit MeasureUnit::getSiemens() { 1256 return MeasureUnit(8, 6); 1257 } 1258 1259 MeasureUnit *MeasureUnit::createVolt(UErrorCode &status) { 1260 return MeasureUnit::create(8, 7, status); 1261 } 1262 1263 MeasureUnit MeasureUnit::getVolt() { 1264 return MeasureUnit(8, 7); 1265 } 1266 1267 MeasureUnit *MeasureUnit::createBecquerel(UErrorCode &status) { 1268 return MeasureUnit::create(9, 0, status); 1269 } 1270 1271 MeasureUnit MeasureUnit::getBecquerel() { 1272 return MeasureUnit(9, 0); 1273 } 1274 1275 MeasureUnit *MeasureUnit::createBritishThermalUnit(UErrorCode &status) { 1276 return MeasureUnit::create(9, 1, status); 1277 } 1278 1279 MeasureUnit MeasureUnit::getBritishThermalUnit() { 1280 return MeasureUnit(9, 1); 1281 } 1282 1283 MeasureUnit *MeasureUnit::createBritishThermalUnitIt(UErrorCode &status) { 1284 return MeasureUnit::create(9, 2, status); 1285 } 1286 1287 MeasureUnit MeasureUnit::getBritishThermalUnitIt() { 1288 return MeasureUnit(9, 2); 1289 } 1290 1291 MeasureUnit *MeasureUnit::createCalorie(UErrorCode &status) { 1292 return MeasureUnit::create(9, 3, status); 1293 } 1294 1295 MeasureUnit MeasureUnit::getCalorie() { 1296 return MeasureUnit(9, 3); 1297 } 1298 1299 MeasureUnit *MeasureUnit::createCalorieIt(UErrorCode &status) { 1300 return MeasureUnit::create(9, 4, status); 1301 } 1302 1303 MeasureUnit MeasureUnit::getCalorieIt() { 1304 return MeasureUnit(9, 4); 1305 } 1306 1307 MeasureUnit *MeasureUnit::createElectronvolt(UErrorCode &status) { 1308 return MeasureUnit::create(9, 5, status); 1309 } 1310 1311 MeasureUnit MeasureUnit::getElectronvolt() { 1312 return MeasureUnit(9, 5); 1313 } 1314 1315 MeasureUnit *MeasureUnit::createFoodcalorie(UErrorCode &status) { 1316 return MeasureUnit::create(9, 6, status); 1317 } 1318 1319 MeasureUnit MeasureUnit::getFoodcalorie() { 1320 return MeasureUnit(9, 6); 1321 } 1322 1323 MeasureUnit *MeasureUnit::createGray(UErrorCode &status) { 1324 return MeasureUnit::create(9, 7, status); 1325 } 1326 1327 MeasureUnit MeasureUnit::getGray() { 1328 return MeasureUnit(9, 7); 1329 } 1330 1331 MeasureUnit *MeasureUnit::createJoule(UErrorCode &status) { 1332 return MeasureUnit::create(9, 8, status); 1333 } 1334 1335 MeasureUnit MeasureUnit::getJoule() { 1336 return MeasureUnit(9, 8); 1337 } 1338 1339 MeasureUnit *MeasureUnit::createKilocalorie(UErrorCode &status) { 1340 return MeasureUnit::create(9, 9, status); 1341 } 1342 1343 MeasureUnit MeasureUnit::getKilocalorie() { 1344 return MeasureUnit(9, 9); 1345 } 1346 1347 MeasureUnit *MeasureUnit::createKilojoule(UErrorCode &status) { 1348 return MeasureUnit::create(9, 10, status); 1349 } 1350 1351 MeasureUnit MeasureUnit::getKilojoule() { 1352 return MeasureUnit(9, 10); 1353 } 1354 1355 MeasureUnit *MeasureUnit::createKilowattHour(UErrorCode &status) { 1356 return MeasureUnit::create(9, 11, status); 1357 } 1358 1359 MeasureUnit MeasureUnit::getKilowattHour() { 1360 return MeasureUnit(9, 11); 1361 } 1362 1363 MeasureUnit *MeasureUnit::createSievert(UErrorCode &status) { 1364 return MeasureUnit::create(9, 12, status); 1365 } 1366 1367 MeasureUnit MeasureUnit::getSievert() { 1368 return MeasureUnit(9, 12); 1369 } 1370 1371 MeasureUnit *MeasureUnit::createThermUs(UErrorCode &status) { 1372 return MeasureUnit::create(9, 13, status); 1373 } 1374 1375 MeasureUnit MeasureUnit::getThermUs() { 1376 return MeasureUnit(9, 13); 1377 } 1378 1379 MeasureUnit *MeasureUnit::createKilogramForce(UErrorCode &status) { 1380 return MeasureUnit::create(10, 0, status); 1381 } 1382 1383 MeasureUnit MeasureUnit::getKilogramForce() { 1384 return MeasureUnit(10, 0); 1385 } 1386 1387 MeasureUnit *MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode &status) { 1388 return MeasureUnit::create(10, 1, status); 1389 } 1390 1391 MeasureUnit MeasureUnit::getKilowattHourPer100Kilometer() { 1392 return MeasureUnit(10, 1); 1393 } 1394 1395 MeasureUnit *MeasureUnit::createNewton(UErrorCode &status) { 1396 return MeasureUnit::create(10, 2, status); 1397 } 1398 1399 MeasureUnit MeasureUnit::getNewton() { 1400 return MeasureUnit(10, 2); 1401 } 1402 1403 MeasureUnit *MeasureUnit::createPoundForce(UErrorCode &status) { 1404 return MeasureUnit::create(10, 3, status); 1405 } 1406 1407 MeasureUnit MeasureUnit::getPoundForce() { 1408 return MeasureUnit(10, 3); 1409 } 1410 1411 MeasureUnit *MeasureUnit::createGigahertz(UErrorCode &status) { 1412 return MeasureUnit::create(11, 0, status); 1413 } 1414 1415 MeasureUnit MeasureUnit::getGigahertz() { 1416 return MeasureUnit(11, 0); 1417 } 1418 1419 MeasureUnit *MeasureUnit::createHertz(UErrorCode &status) { 1420 return MeasureUnit::create(11, 1, status); 1421 } 1422 1423 MeasureUnit MeasureUnit::getHertz() { 1424 return MeasureUnit(11, 1); 1425 } 1426 1427 MeasureUnit *MeasureUnit::createKilohertz(UErrorCode &status) { 1428 return MeasureUnit::create(11, 2, status); 1429 } 1430 1431 MeasureUnit MeasureUnit::getKilohertz() { 1432 return MeasureUnit(11, 2); 1433 } 1434 1435 MeasureUnit *MeasureUnit::createMegahertz(UErrorCode &status) { 1436 return MeasureUnit::create(11, 3, status); 1437 } 1438 1439 MeasureUnit MeasureUnit::getMegahertz() { 1440 return MeasureUnit(11, 3); 1441 } 1442 1443 MeasureUnit *MeasureUnit::createDot(UErrorCode &status) { 1444 return MeasureUnit::create(12, 0, status); 1445 } 1446 1447 MeasureUnit MeasureUnit::getDot() { 1448 return MeasureUnit(12, 0); 1449 } 1450 1451 MeasureUnit *MeasureUnit::createDotPerCentimeter(UErrorCode &status) { 1452 return MeasureUnit::create(12, 1, status); 1453 } 1454 1455 MeasureUnit MeasureUnit::getDotPerCentimeter() { 1456 return MeasureUnit(12, 1); 1457 } 1458 1459 MeasureUnit *MeasureUnit::createDotPerInch(UErrorCode &status) { 1460 return MeasureUnit::create(12, 2, status); 1461 } 1462 1463 MeasureUnit MeasureUnit::getDotPerInch() { 1464 return MeasureUnit(12, 2); 1465 } 1466 1467 MeasureUnit *MeasureUnit::createEm(UErrorCode &status) { 1468 return MeasureUnit::create(12, 3, status); 1469 } 1470 1471 MeasureUnit MeasureUnit::getEm() { 1472 return MeasureUnit(12, 3); 1473 } 1474 1475 MeasureUnit *MeasureUnit::createMegapixel(UErrorCode &status) { 1476 return MeasureUnit::create(12, 4, status); 1477 } 1478 1479 MeasureUnit MeasureUnit::getMegapixel() { 1480 return MeasureUnit(12, 4); 1481 } 1482 1483 MeasureUnit *MeasureUnit::createPixel(UErrorCode &status) { 1484 return MeasureUnit::create(12, 5, status); 1485 } 1486 1487 MeasureUnit MeasureUnit::getPixel() { 1488 return MeasureUnit(12, 5); 1489 } 1490 1491 MeasureUnit *MeasureUnit::createPixelPerCentimeter(UErrorCode &status) { 1492 return MeasureUnit::create(12, 6, status); 1493 } 1494 1495 MeasureUnit MeasureUnit::getPixelPerCentimeter() { 1496 return MeasureUnit(12, 6); 1497 } 1498 1499 MeasureUnit *MeasureUnit::createPixelPerInch(UErrorCode &status) { 1500 return MeasureUnit::create(12, 7, status); 1501 } 1502 1503 MeasureUnit MeasureUnit::getPixelPerInch() { 1504 return MeasureUnit(12, 7); 1505 } 1506 1507 MeasureUnit *MeasureUnit::createAstronomicalUnit(UErrorCode &status) { 1508 return MeasureUnit::create(13, 0, status); 1509 } 1510 1511 MeasureUnit MeasureUnit::getAstronomicalUnit() { 1512 return MeasureUnit(13, 0); 1513 } 1514 1515 MeasureUnit *MeasureUnit::createCentimeter(UErrorCode &status) { 1516 return MeasureUnit::create(13, 1, status); 1517 } 1518 1519 MeasureUnit MeasureUnit::getCentimeter() { 1520 return MeasureUnit(13, 1); 1521 } 1522 1523 MeasureUnit *MeasureUnit::createChain(UErrorCode &status) { 1524 return MeasureUnit::create(13, 2, status); 1525 } 1526 1527 MeasureUnit MeasureUnit::getChain() { 1528 return MeasureUnit(13, 2); 1529 } 1530 1531 MeasureUnit *MeasureUnit::createDecimeter(UErrorCode &status) { 1532 return MeasureUnit::create(13, 3, status); 1533 } 1534 1535 MeasureUnit MeasureUnit::getDecimeter() { 1536 return MeasureUnit(13, 3); 1537 } 1538 1539 MeasureUnit *MeasureUnit::createEarthRadius(UErrorCode &status) { 1540 return MeasureUnit::create(13, 4, status); 1541 } 1542 1543 MeasureUnit MeasureUnit::getEarthRadius() { 1544 return MeasureUnit(13, 4); 1545 } 1546 1547 MeasureUnit *MeasureUnit::createFathom(UErrorCode &status) { 1548 return MeasureUnit::create(13, 5, status); 1549 } 1550 1551 MeasureUnit MeasureUnit::getFathom() { 1552 return MeasureUnit(13, 5); 1553 } 1554 1555 MeasureUnit *MeasureUnit::createFoot(UErrorCode &status) { 1556 return MeasureUnit::create(13, 6, status); 1557 } 1558 1559 MeasureUnit MeasureUnit::getFoot() { 1560 return MeasureUnit(13, 6); 1561 } 1562 1563 MeasureUnit *MeasureUnit::createFurlong(UErrorCode &status) { 1564 return MeasureUnit::create(13, 7, status); 1565 } 1566 1567 MeasureUnit MeasureUnit::getFurlong() { 1568 return MeasureUnit(13, 7); 1569 } 1570 1571 MeasureUnit *MeasureUnit::createInch(UErrorCode &status) { 1572 return MeasureUnit::create(13, 8, status); 1573 } 1574 1575 MeasureUnit MeasureUnit::getInch() { 1576 return MeasureUnit(13, 8); 1577 } 1578 1579 MeasureUnit *MeasureUnit::createJoJp(UErrorCode &status) { 1580 return MeasureUnit::create(13, 9, status); 1581 } 1582 1583 MeasureUnit MeasureUnit::getJoJp() { 1584 return MeasureUnit(13, 9); 1585 } 1586 1587 MeasureUnit *MeasureUnit::createKen(UErrorCode &status) { 1588 return MeasureUnit::create(13, 10, status); 1589 } 1590 1591 MeasureUnit MeasureUnit::getKen() { 1592 return MeasureUnit(13, 10); 1593 } 1594 1595 MeasureUnit *MeasureUnit::createKilometer(UErrorCode &status) { 1596 return MeasureUnit::create(13, 11, status); 1597 } 1598 1599 MeasureUnit MeasureUnit::getKilometer() { 1600 return MeasureUnit(13, 11); 1601 } 1602 1603 MeasureUnit *MeasureUnit::createLightYear(UErrorCode &status) { 1604 return MeasureUnit::create(13, 12, status); 1605 } 1606 1607 MeasureUnit MeasureUnit::getLightYear() { 1608 return MeasureUnit(13, 12); 1609 } 1610 1611 MeasureUnit *MeasureUnit::createMeter(UErrorCode &status) { 1612 return MeasureUnit::create(13, 13, status); 1613 } 1614 1615 MeasureUnit MeasureUnit::getMeter() { 1616 return MeasureUnit(13, 13); 1617 } 1618 1619 MeasureUnit *MeasureUnit::createMicrometer(UErrorCode &status) { 1620 return MeasureUnit::create(13, 14, status); 1621 } 1622 1623 MeasureUnit MeasureUnit::getMicrometer() { 1624 return MeasureUnit(13, 14); 1625 } 1626 1627 MeasureUnit *MeasureUnit::createMile(UErrorCode &status) { 1628 return MeasureUnit::create(13, 15, status); 1629 } 1630 1631 MeasureUnit MeasureUnit::getMile() { 1632 return MeasureUnit(13, 15); 1633 } 1634 1635 MeasureUnit *MeasureUnit::createMileScandinavian(UErrorCode &status) { 1636 return MeasureUnit::create(13, 16, status); 1637 } 1638 1639 MeasureUnit MeasureUnit::getMileScandinavian() { 1640 return MeasureUnit(13, 16); 1641 } 1642 1643 MeasureUnit *MeasureUnit::createMillimeter(UErrorCode &status) { 1644 return MeasureUnit::create(13, 17, status); 1645 } 1646 1647 MeasureUnit MeasureUnit::getMillimeter() { 1648 return MeasureUnit(13, 17); 1649 } 1650 1651 MeasureUnit *MeasureUnit::createNanometer(UErrorCode &status) { 1652 return MeasureUnit::create(13, 18, status); 1653 } 1654 1655 MeasureUnit MeasureUnit::getNanometer() { 1656 return MeasureUnit(13, 18); 1657 } 1658 1659 MeasureUnit *MeasureUnit::createNauticalMile(UErrorCode &status) { 1660 return MeasureUnit::create(13, 19, status); 1661 } 1662 1663 MeasureUnit MeasureUnit::getNauticalMile() { 1664 return MeasureUnit(13, 19); 1665 } 1666 1667 MeasureUnit *MeasureUnit::createParsec(UErrorCode &status) { 1668 return MeasureUnit::create(13, 20, status); 1669 } 1670 1671 MeasureUnit MeasureUnit::getParsec() { 1672 return MeasureUnit(13, 20); 1673 } 1674 1675 MeasureUnit *MeasureUnit::createPicometer(UErrorCode &status) { 1676 return MeasureUnit::create(13, 21, status); 1677 } 1678 1679 MeasureUnit MeasureUnit::getPicometer() { 1680 return MeasureUnit(13, 21); 1681 } 1682 1683 MeasureUnit *MeasureUnit::createPoint(UErrorCode &status) { 1684 return MeasureUnit::create(13, 22, status); 1685 } 1686 1687 MeasureUnit MeasureUnit::getPoint() { 1688 return MeasureUnit(13, 22); 1689 } 1690 1691 MeasureUnit *MeasureUnit::createRiJp(UErrorCode &status) { 1692 return MeasureUnit::create(13, 23, status); 1693 } 1694 1695 MeasureUnit MeasureUnit::getRiJp() { 1696 return MeasureUnit(13, 23); 1697 } 1698 1699 MeasureUnit *MeasureUnit::createRin(UErrorCode &status) { 1700 return MeasureUnit::create(13, 24, status); 1701 } 1702 1703 MeasureUnit MeasureUnit::getRin() { 1704 return MeasureUnit(13, 24); 1705 } 1706 1707 MeasureUnit *MeasureUnit::createRod(UErrorCode &status) { 1708 return MeasureUnit::create(13, 25, status); 1709 } 1710 1711 MeasureUnit MeasureUnit::getRod() { 1712 return MeasureUnit(13, 25); 1713 } 1714 1715 MeasureUnit *MeasureUnit::createShakuCloth(UErrorCode &status) { 1716 return MeasureUnit::create(13, 26, status); 1717 } 1718 1719 MeasureUnit MeasureUnit::getShakuCloth() { 1720 return MeasureUnit(13, 26); 1721 } 1722 1723 MeasureUnit *MeasureUnit::createShakuLength(UErrorCode &status) { 1724 return MeasureUnit::create(13, 27, status); 1725 } 1726 1727 MeasureUnit MeasureUnit::getShakuLength() { 1728 return MeasureUnit(13, 27); 1729 } 1730 1731 MeasureUnit *MeasureUnit::createSolarRadius(UErrorCode &status) { 1732 return MeasureUnit::create(13, 28, status); 1733 } 1734 1735 MeasureUnit MeasureUnit::getSolarRadius() { 1736 return MeasureUnit(13, 28); 1737 } 1738 1739 MeasureUnit *MeasureUnit::createSun(UErrorCode &status) { 1740 return MeasureUnit::create(13, 29, status); 1741 } 1742 1743 MeasureUnit MeasureUnit::getSun() { 1744 return MeasureUnit(13, 29); 1745 } 1746 1747 MeasureUnit *MeasureUnit::createYard(UErrorCode &status) { 1748 return MeasureUnit::create(13, 30, status); 1749 } 1750 1751 MeasureUnit MeasureUnit::getYard() { 1752 return MeasureUnit(13, 30); 1753 } 1754 1755 MeasureUnit *MeasureUnit::createCandela(UErrorCode &status) { 1756 return MeasureUnit::create(14, 0, status); 1757 } 1758 1759 MeasureUnit MeasureUnit::getCandela() { 1760 return MeasureUnit(14, 0); 1761 } 1762 1763 MeasureUnit *MeasureUnit::createLumen(UErrorCode &status) { 1764 return MeasureUnit::create(14, 1, status); 1765 } 1766 1767 MeasureUnit MeasureUnit::getLumen() { 1768 return MeasureUnit(14, 1); 1769 } 1770 1771 MeasureUnit *MeasureUnit::createLux(UErrorCode &status) { 1772 return MeasureUnit::create(14, 2, status); 1773 } 1774 1775 MeasureUnit MeasureUnit::getLux() { 1776 return MeasureUnit(14, 2); 1777 } 1778 1779 MeasureUnit *MeasureUnit::createSolarLuminosity(UErrorCode &status) { 1780 return MeasureUnit::create(14, 3, status); 1781 } 1782 1783 MeasureUnit MeasureUnit::getSolarLuminosity() { 1784 return MeasureUnit(14, 3); 1785 } 1786 1787 MeasureUnit *MeasureUnit::createTesla(UErrorCode &status) { 1788 return MeasureUnit::create(15, 0, status); 1789 } 1790 1791 MeasureUnit MeasureUnit::getTesla() { 1792 return MeasureUnit(15, 0); 1793 } 1794 1795 MeasureUnit *MeasureUnit::createWeber(UErrorCode &status) { 1796 return MeasureUnit::create(15, 1, status); 1797 } 1798 1799 MeasureUnit MeasureUnit::getWeber() { 1800 return MeasureUnit(15, 1); 1801 } 1802 1803 MeasureUnit *MeasureUnit::createCarat(UErrorCode &status) { 1804 return MeasureUnit::create(16, 0, status); 1805 } 1806 1807 MeasureUnit MeasureUnit::getCarat() { 1808 return MeasureUnit(16, 0); 1809 } 1810 1811 MeasureUnit *MeasureUnit::createDalton(UErrorCode &status) { 1812 return MeasureUnit::create(16, 1, status); 1813 } 1814 1815 MeasureUnit MeasureUnit::getDalton() { 1816 return MeasureUnit(16, 1); 1817 } 1818 1819 MeasureUnit *MeasureUnit::createEarthMass(UErrorCode &status) { 1820 return MeasureUnit::create(16, 2, status); 1821 } 1822 1823 MeasureUnit MeasureUnit::getEarthMass() { 1824 return MeasureUnit(16, 2); 1825 } 1826 1827 MeasureUnit *MeasureUnit::createFun(UErrorCode &status) { 1828 return MeasureUnit::create(16, 3, status); 1829 } 1830 1831 MeasureUnit MeasureUnit::getFun() { 1832 return MeasureUnit(16, 3); 1833 } 1834 1835 MeasureUnit *MeasureUnit::createGrain(UErrorCode &status) { 1836 return MeasureUnit::create(16, 4, status); 1837 } 1838 1839 MeasureUnit MeasureUnit::getGrain() { 1840 return MeasureUnit(16, 4); 1841 } 1842 1843 MeasureUnit *MeasureUnit::createGram(UErrorCode &status) { 1844 return MeasureUnit::create(16, 5, status); 1845 } 1846 1847 MeasureUnit MeasureUnit::getGram() { 1848 return MeasureUnit(16, 5); 1849 } 1850 1851 MeasureUnit *MeasureUnit::createKilogram(UErrorCode &status) { 1852 return MeasureUnit::create(16, 6, status); 1853 } 1854 1855 MeasureUnit MeasureUnit::getKilogram() { 1856 return MeasureUnit(16, 6); 1857 } 1858 1859 MeasureUnit *MeasureUnit::createMicrogram(UErrorCode &status) { 1860 return MeasureUnit::create(16, 7, status); 1861 } 1862 1863 MeasureUnit MeasureUnit::getMicrogram() { 1864 return MeasureUnit(16, 7); 1865 } 1866 1867 MeasureUnit *MeasureUnit::createMilligram(UErrorCode &status) { 1868 return MeasureUnit::create(16, 8, status); 1869 } 1870 1871 MeasureUnit MeasureUnit::getMilligram() { 1872 return MeasureUnit(16, 8); 1873 } 1874 1875 MeasureUnit *MeasureUnit::createOunce(UErrorCode &status) { 1876 return MeasureUnit::create(16, 9, status); 1877 } 1878 1879 MeasureUnit MeasureUnit::getOunce() { 1880 return MeasureUnit(16, 9); 1881 } 1882 1883 MeasureUnit *MeasureUnit::createOunceTroy(UErrorCode &status) { 1884 return MeasureUnit::create(16, 10, status); 1885 } 1886 1887 MeasureUnit MeasureUnit::getOunceTroy() { 1888 return MeasureUnit(16, 10); 1889 } 1890 1891 MeasureUnit *MeasureUnit::createPound(UErrorCode &status) { 1892 return MeasureUnit::create(16, 11, status); 1893 } 1894 1895 MeasureUnit MeasureUnit::getPound() { 1896 return MeasureUnit(16, 11); 1897 } 1898 1899 MeasureUnit *MeasureUnit::createSlug(UErrorCode &status) { 1900 return MeasureUnit::create(16, 12, status); 1901 } 1902 1903 MeasureUnit MeasureUnit::getSlug() { 1904 return MeasureUnit(16, 12); 1905 } 1906 1907 MeasureUnit *MeasureUnit::createSolarMass(UErrorCode &status) { 1908 return MeasureUnit::create(16, 13, status); 1909 } 1910 1911 MeasureUnit MeasureUnit::getSolarMass() { 1912 return MeasureUnit(16, 13); 1913 } 1914 1915 MeasureUnit *MeasureUnit::createStone(UErrorCode &status) { 1916 return MeasureUnit::create(16, 14, status); 1917 } 1918 1919 MeasureUnit MeasureUnit::getStone() { 1920 return MeasureUnit(16, 14); 1921 } 1922 1923 MeasureUnit *MeasureUnit::createTon(UErrorCode &status) { 1924 return MeasureUnit::create(16, 15, status); 1925 } 1926 1927 MeasureUnit MeasureUnit::getTon() { 1928 return MeasureUnit(16, 15); 1929 } 1930 1931 MeasureUnit *MeasureUnit::createTonne(UErrorCode &status) { 1932 return MeasureUnit::create(16, 16, status); 1933 } 1934 1935 MeasureUnit MeasureUnit::getTonne() { 1936 return MeasureUnit(16, 16); 1937 } 1938 1939 MeasureUnit *MeasureUnit::createMetricTon(UErrorCode &status) { 1940 return MeasureUnit::create(16, 16, status); 1941 } 1942 1943 MeasureUnit MeasureUnit::getMetricTon() { 1944 return MeasureUnit(16, 16); 1945 } 1946 1947 MeasureUnit *MeasureUnit::createGigawatt(UErrorCode &status) { 1948 return MeasureUnit::create(18, 0, status); 1949 } 1950 1951 MeasureUnit MeasureUnit::getGigawatt() { 1952 return MeasureUnit(18, 0); 1953 } 1954 1955 MeasureUnit *MeasureUnit::createHorsepower(UErrorCode &status) { 1956 return MeasureUnit::create(18, 1, status); 1957 } 1958 1959 MeasureUnit MeasureUnit::getHorsepower() { 1960 return MeasureUnit(18, 1); 1961 } 1962 1963 MeasureUnit *MeasureUnit::createKilowatt(UErrorCode &status) { 1964 return MeasureUnit::create(18, 2, status); 1965 } 1966 1967 MeasureUnit MeasureUnit::getKilowatt() { 1968 return MeasureUnit(18, 2); 1969 } 1970 1971 MeasureUnit *MeasureUnit::createMegawatt(UErrorCode &status) { 1972 return MeasureUnit::create(18, 3, status); 1973 } 1974 1975 MeasureUnit MeasureUnit::getMegawatt() { 1976 return MeasureUnit(18, 3); 1977 } 1978 1979 MeasureUnit *MeasureUnit::createMilliwatt(UErrorCode &status) { 1980 return MeasureUnit::create(18, 4, status); 1981 } 1982 1983 MeasureUnit MeasureUnit::getMilliwatt() { 1984 return MeasureUnit(18, 4); 1985 } 1986 1987 MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) { 1988 return MeasureUnit::create(18, 5, status); 1989 } 1990 1991 MeasureUnit MeasureUnit::getWatt() { 1992 return MeasureUnit(18, 5); 1993 } 1994 1995 MeasureUnit *MeasureUnit::createAtmosphere(UErrorCode &status) { 1996 return MeasureUnit::create(19, 0, status); 1997 } 1998 1999 MeasureUnit MeasureUnit::getAtmosphere() { 2000 return MeasureUnit(19, 0); 2001 } 2002 2003 MeasureUnit *MeasureUnit::createBar(UErrorCode &status) { 2004 return MeasureUnit::create(19, 1, status); 2005 } 2006 2007 MeasureUnit MeasureUnit::getBar() { 2008 return MeasureUnit(19, 1); 2009 } 2010 2011 MeasureUnit *MeasureUnit::createGasolineEnergyDensity(UErrorCode &status) { 2012 return MeasureUnit::create(19, 2, status); 2013 } 2014 2015 MeasureUnit MeasureUnit::getGasolineEnergyDensity() { 2016 return MeasureUnit(19, 2); 2017 } 2018 2019 MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) { 2020 return MeasureUnit::create(19, 3, status); 2021 } 2022 2023 MeasureUnit MeasureUnit::getHectopascal() { 2024 return MeasureUnit(19, 3); 2025 } 2026 2027 MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) { 2028 return MeasureUnit::create(19, 4, status); 2029 } 2030 2031 MeasureUnit MeasureUnit::getInchHg() { 2032 return MeasureUnit(19, 4); 2033 } 2034 2035 MeasureUnit *MeasureUnit::createKilopascal(UErrorCode &status) { 2036 return MeasureUnit::create(19, 5, status); 2037 } 2038 2039 MeasureUnit MeasureUnit::getKilopascal() { 2040 return MeasureUnit(19, 5); 2041 } 2042 2043 MeasureUnit *MeasureUnit::createMegapascal(UErrorCode &status) { 2044 return MeasureUnit::create(19, 6, status); 2045 } 2046 2047 MeasureUnit MeasureUnit::getMegapascal() { 2048 return MeasureUnit(19, 6); 2049 } 2050 2051 MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) { 2052 return MeasureUnit::create(19, 7, status); 2053 } 2054 2055 MeasureUnit MeasureUnit::getMillibar() { 2056 return MeasureUnit(19, 7); 2057 } 2058 2059 MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) { 2060 return MeasureUnit::create(19, 8, status); 2061 } 2062 2063 MeasureUnit MeasureUnit::getMillimeterOfMercury() { 2064 return MeasureUnit(19, 8); 2065 } 2066 2067 MeasureUnit *MeasureUnit::createOfhg(UErrorCode &status) { 2068 return MeasureUnit::create(19, 9, status); 2069 } 2070 2071 MeasureUnit MeasureUnit::getOfhg() { 2072 return MeasureUnit(19, 9); 2073 } 2074 2075 MeasureUnit *MeasureUnit::createPascal(UErrorCode &status) { 2076 return MeasureUnit::create(19, 10, status); 2077 } 2078 2079 MeasureUnit MeasureUnit::getPascal() { 2080 return MeasureUnit(19, 10); 2081 } 2082 2083 MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) { 2084 return MeasureUnit::create(19, 11, status); 2085 } 2086 2087 MeasureUnit MeasureUnit::getPoundPerSquareInch() { 2088 return MeasureUnit(19, 11); 2089 } 2090 2091 MeasureUnit *MeasureUnit::createBeaufort(UErrorCode &status) { 2092 return MeasureUnit::create(20, 0, status); 2093 } 2094 2095 MeasureUnit MeasureUnit::getBeaufort() { 2096 return MeasureUnit(20, 0); 2097 } 2098 2099 MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) { 2100 return MeasureUnit::create(20, 1, status); 2101 } 2102 2103 MeasureUnit MeasureUnit::getKilometerPerHour() { 2104 return MeasureUnit(20, 1); 2105 } 2106 2107 MeasureUnit *MeasureUnit::createKnot(UErrorCode &status) { 2108 return MeasureUnit::create(20, 2, status); 2109 } 2110 2111 MeasureUnit MeasureUnit::getKnot() { 2112 return MeasureUnit(20, 2); 2113 } 2114 2115 MeasureUnit *MeasureUnit::createLightSpeed(UErrorCode &status) { 2116 return MeasureUnit::create(20, 3, status); 2117 } 2118 2119 MeasureUnit MeasureUnit::getLightSpeed() { 2120 return MeasureUnit(20, 3); 2121 } 2122 2123 MeasureUnit *MeasureUnit::createMeterPerSecond(UErrorCode &status) { 2124 return MeasureUnit::create(20, 4, status); 2125 } 2126 2127 MeasureUnit MeasureUnit::getMeterPerSecond() { 2128 return MeasureUnit(20, 4); 2129 } 2130 2131 MeasureUnit *MeasureUnit::createMilePerHour(UErrorCode &status) { 2132 return MeasureUnit::create(20, 5, status); 2133 } 2134 2135 MeasureUnit MeasureUnit::getMilePerHour() { 2136 return MeasureUnit(20, 5); 2137 } 2138 2139 MeasureUnit *MeasureUnit::createCelsius(UErrorCode &status) { 2140 return MeasureUnit::create(21, 0, status); 2141 } 2142 2143 MeasureUnit MeasureUnit::getCelsius() { 2144 return MeasureUnit(21, 0); 2145 } 2146 2147 MeasureUnit *MeasureUnit::createFahrenheit(UErrorCode &status) { 2148 return MeasureUnit::create(21, 1, status); 2149 } 2150 2151 MeasureUnit MeasureUnit::getFahrenheit() { 2152 return MeasureUnit(21, 1); 2153 } 2154 2155 MeasureUnit *MeasureUnit::createGenericTemperature(UErrorCode &status) { 2156 return MeasureUnit::create(21, 2, status); 2157 } 2158 2159 MeasureUnit MeasureUnit::getGenericTemperature() { 2160 return MeasureUnit(21, 2); 2161 } 2162 2163 MeasureUnit *MeasureUnit::createKelvin(UErrorCode &status) { 2164 return MeasureUnit::create(21, 3, status); 2165 } 2166 2167 MeasureUnit MeasureUnit::getKelvin() { 2168 return MeasureUnit(21, 3); 2169 } 2170 2171 MeasureUnit *MeasureUnit::createRankine(UErrorCode &status) { 2172 return MeasureUnit::create(21, 4, status); 2173 } 2174 2175 MeasureUnit MeasureUnit::getRankine() { 2176 return MeasureUnit(21, 4); 2177 } 2178 2179 MeasureUnit *MeasureUnit::createNewtonMeter(UErrorCode &status) { 2180 return MeasureUnit::create(22, 0, status); 2181 } 2182 2183 MeasureUnit MeasureUnit::getNewtonMeter() { 2184 return MeasureUnit(22, 0); 2185 } 2186 2187 MeasureUnit *MeasureUnit::createPoundFoot(UErrorCode &status) { 2188 return MeasureUnit::create(22, 1, status); 2189 } 2190 2191 MeasureUnit MeasureUnit::getPoundFoot() { 2192 return MeasureUnit(22, 1); 2193 } 2194 2195 MeasureUnit *MeasureUnit::createAcreFoot(UErrorCode &status) { 2196 return MeasureUnit::create(23, 0, status); 2197 } 2198 2199 MeasureUnit MeasureUnit::getAcreFoot() { 2200 return MeasureUnit(23, 0); 2201 } 2202 2203 MeasureUnit *MeasureUnit::createBarrel(UErrorCode &status) { 2204 return MeasureUnit::create(23, 1, status); 2205 } 2206 2207 MeasureUnit MeasureUnit::getBarrel() { 2208 return MeasureUnit(23, 1); 2209 } 2210 2211 MeasureUnit *MeasureUnit::createBushel(UErrorCode &status) { 2212 return MeasureUnit::create(23, 2, status); 2213 } 2214 2215 MeasureUnit MeasureUnit::getBushel() { 2216 return MeasureUnit(23, 2); 2217 } 2218 2219 MeasureUnit *MeasureUnit::createCentiliter(UErrorCode &status) { 2220 return MeasureUnit::create(23, 3, status); 2221 } 2222 2223 MeasureUnit MeasureUnit::getCentiliter() { 2224 return MeasureUnit(23, 3); 2225 } 2226 2227 MeasureUnit *MeasureUnit::createCubicCentimeter(UErrorCode &status) { 2228 return MeasureUnit::create(23, 4, status); 2229 } 2230 2231 MeasureUnit MeasureUnit::getCubicCentimeter() { 2232 return MeasureUnit(23, 4); 2233 } 2234 2235 MeasureUnit *MeasureUnit::createCubicFoot(UErrorCode &status) { 2236 return MeasureUnit::create(23, 5, status); 2237 } 2238 2239 MeasureUnit MeasureUnit::getCubicFoot() { 2240 return MeasureUnit(23, 5); 2241 } 2242 2243 MeasureUnit *MeasureUnit::createCubicInch(UErrorCode &status) { 2244 return MeasureUnit::create(23, 6, status); 2245 } 2246 2247 MeasureUnit MeasureUnit::getCubicInch() { 2248 return MeasureUnit(23, 6); 2249 } 2250 2251 MeasureUnit *MeasureUnit::createCubicKilometer(UErrorCode &status) { 2252 return MeasureUnit::create(23, 7, status); 2253 } 2254 2255 MeasureUnit MeasureUnit::getCubicKilometer() { 2256 return MeasureUnit(23, 7); 2257 } 2258 2259 MeasureUnit *MeasureUnit::createCubicMeter(UErrorCode &status) { 2260 return MeasureUnit::create(23, 8, status); 2261 } 2262 2263 MeasureUnit MeasureUnit::getCubicMeter() { 2264 return MeasureUnit(23, 8); 2265 } 2266 2267 MeasureUnit *MeasureUnit::createCubicMile(UErrorCode &status) { 2268 return MeasureUnit::create(23, 9, status); 2269 } 2270 2271 MeasureUnit MeasureUnit::getCubicMile() { 2272 return MeasureUnit(23, 9); 2273 } 2274 2275 MeasureUnit *MeasureUnit::createCubicYard(UErrorCode &status) { 2276 return MeasureUnit::create(23, 10, status); 2277 } 2278 2279 MeasureUnit MeasureUnit::getCubicYard() { 2280 return MeasureUnit(23, 10); 2281 } 2282 2283 MeasureUnit *MeasureUnit::createCup(UErrorCode &status) { 2284 return MeasureUnit::create(23, 11, status); 2285 } 2286 2287 MeasureUnit MeasureUnit::getCup() { 2288 return MeasureUnit(23, 11); 2289 } 2290 2291 MeasureUnit *MeasureUnit::createCupImperial(UErrorCode &status) { 2292 return MeasureUnit::create(23, 12, status); 2293 } 2294 2295 MeasureUnit MeasureUnit::getCupImperial() { 2296 return MeasureUnit(23, 12); 2297 } 2298 2299 MeasureUnit *MeasureUnit::createCupJp(UErrorCode &status) { 2300 return MeasureUnit::create(23, 13, status); 2301 } 2302 2303 MeasureUnit MeasureUnit::getCupJp() { 2304 return MeasureUnit(23, 13); 2305 } 2306 2307 MeasureUnit *MeasureUnit::createCupMetric(UErrorCode &status) { 2308 return MeasureUnit::create(23, 14, status); 2309 } 2310 2311 MeasureUnit MeasureUnit::getCupMetric() { 2312 return MeasureUnit(23, 14); 2313 } 2314 2315 MeasureUnit *MeasureUnit::createDeciliter(UErrorCode &status) { 2316 return MeasureUnit::create(23, 15, status); 2317 } 2318 2319 MeasureUnit MeasureUnit::getDeciliter() { 2320 return MeasureUnit(23, 15); 2321 } 2322 2323 MeasureUnit *MeasureUnit::createDessertSpoon(UErrorCode &status) { 2324 return MeasureUnit::create(23, 16, status); 2325 } 2326 2327 MeasureUnit MeasureUnit::getDessertSpoon() { 2328 return MeasureUnit(23, 16); 2329 } 2330 2331 MeasureUnit *MeasureUnit::createDessertSpoonImperial(UErrorCode &status) { 2332 return MeasureUnit::create(23, 17, status); 2333 } 2334 2335 MeasureUnit MeasureUnit::getDessertSpoonImperial() { 2336 return MeasureUnit(23, 17); 2337 } 2338 2339 MeasureUnit *MeasureUnit::createDram(UErrorCode &status) { 2340 return MeasureUnit::create(23, 18, status); 2341 } 2342 2343 MeasureUnit MeasureUnit::getDram() { 2344 return MeasureUnit(23, 18); 2345 } 2346 2347 MeasureUnit *MeasureUnit::createDrop(UErrorCode &status) { 2348 return MeasureUnit::create(23, 19, status); 2349 } 2350 2351 MeasureUnit MeasureUnit::getDrop() { 2352 return MeasureUnit(23, 19); 2353 } 2354 2355 MeasureUnit *MeasureUnit::createFluidOunce(UErrorCode &status) { 2356 return MeasureUnit::create(23, 20, status); 2357 } 2358 2359 MeasureUnit MeasureUnit::getFluidOunce() { 2360 return MeasureUnit(23, 20); 2361 } 2362 2363 MeasureUnit *MeasureUnit::createFluidOunceImperial(UErrorCode &status) { 2364 return MeasureUnit::create(23, 21, status); 2365 } 2366 2367 MeasureUnit MeasureUnit::getFluidOunceImperial() { 2368 return MeasureUnit(23, 21); 2369 } 2370 2371 MeasureUnit *MeasureUnit::createFluidOunceMetric(UErrorCode &status) { 2372 return MeasureUnit::create(23, 22, status); 2373 } 2374 2375 MeasureUnit MeasureUnit::getFluidOunceMetric() { 2376 return MeasureUnit(23, 22); 2377 } 2378 2379 MeasureUnit *MeasureUnit::createGallon(UErrorCode &status) { 2380 return MeasureUnit::create(23, 23, status); 2381 } 2382 2383 MeasureUnit MeasureUnit::getGallon() { 2384 return MeasureUnit(23, 23); 2385 } 2386 2387 MeasureUnit *MeasureUnit::createGallonImperial(UErrorCode &status) { 2388 return MeasureUnit::create(23, 24, status); 2389 } 2390 2391 MeasureUnit MeasureUnit::getGallonImperial() { 2392 return MeasureUnit(23, 24); 2393 } 2394 2395 MeasureUnit *MeasureUnit::createHectoliter(UErrorCode &status) { 2396 return MeasureUnit::create(23, 25, status); 2397 } 2398 2399 MeasureUnit MeasureUnit::getHectoliter() { 2400 return MeasureUnit(23, 25); 2401 } 2402 2403 MeasureUnit *MeasureUnit::createJigger(UErrorCode &status) { 2404 return MeasureUnit::create(23, 26, status); 2405 } 2406 2407 MeasureUnit MeasureUnit::getJigger() { 2408 return MeasureUnit(23, 26); 2409 } 2410 2411 MeasureUnit *MeasureUnit::createKoku(UErrorCode &status) { 2412 return MeasureUnit::create(23, 27, status); 2413 } 2414 2415 MeasureUnit MeasureUnit::getKoku() { 2416 return MeasureUnit(23, 27); 2417 } 2418 2419 MeasureUnit *MeasureUnit::createKosaji(UErrorCode &status) { 2420 return MeasureUnit::create(23, 28, status); 2421 } 2422 2423 MeasureUnit MeasureUnit::getKosaji() { 2424 return MeasureUnit(23, 28); 2425 } 2426 2427 MeasureUnit *MeasureUnit::createLiter(UErrorCode &status) { 2428 return MeasureUnit::create(23, 29, status); 2429 } 2430 2431 MeasureUnit MeasureUnit::getLiter() { 2432 return MeasureUnit(23, 29); 2433 } 2434 2435 MeasureUnit *MeasureUnit::createMegaliter(UErrorCode &status) { 2436 return MeasureUnit::create(23, 30, status); 2437 } 2438 2439 MeasureUnit MeasureUnit::getMegaliter() { 2440 return MeasureUnit(23, 30); 2441 } 2442 2443 MeasureUnit *MeasureUnit::createMilliliter(UErrorCode &status) { 2444 return MeasureUnit::create(23, 31, status); 2445 } 2446 2447 MeasureUnit MeasureUnit::getMilliliter() { 2448 return MeasureUnit(23, 31); 2449 } 2450 2451 MeasureUnit *MeasureUnit::createOsaji(UErrorCode &status) { 2452 return MeasureUnit::create(23, 32, status); 2453 } 2454 2455 MeasureUnit MeasureUnit::getOsaji() { 2456 return MeasureUnit(23, 32); 2457 } 2458 2459 MeasureUnit *MeasureUnit::createPinch(UErrorCode &status) { 2460 return MeasureUnit::create(23, 33, status); 2461 } 2462 2463 MeasureUnit MeasureUnit::getPinch() { 2464 return MeasureUnit(23, 33); 2465 } 2466 2467 MeasureUnit *MeasureUnit::createPint(UErrorCode &status) { 2468 return MeasureUnit::create(23, 34, status); 2469 } 2470 2471 MeasureUnit MeasureUnit::getPint() { 2472 return MeasureUnit(23, 34); 2473 } 2474 2475 MeasureUnit *MeasureUnit::createPintImperial(UErrorCode &status) { 2476 return MeasureUnit::create(23, 35, status); 2477 } 2478 2479 MeasureUnit MeasureUnit::getPintImperial() { 2480 return MeasureUnit(23, 35); 2481 } 2482 2483 MeasureUnit *MeasureUnit::createPintMetric(UErrorCode &status) { 2484 return MeasureUnit::create(23, 36, status); 2485 } 2486 2487 MeasureUnit MeasureUnit::getPintMetric() { 2488 return MeasureUnit(23, 36); 2489 } 2490 2491 MeasureUnit *MeasureUnit::createQuart(UErrorCode &status) { 2492 return MeasureUnit::create(23, 37, status); 2493 } 2494 2495 MeasureUnit MeasureUnit::getQuart() { 2496 return MeasureUnit(23, 37); 2497 } 2498 2499 MeasureUnit *MeasureUnit::createQuartImperial(UErrorCode &status) { 2500 return MeasureUnit::create(23, 38, status); 2501 } 2502 2503 MeasureUnit MeasureUnit::getQuartImperial() { 2504 return MeasureUnit(23, 38); 2505 } 2506 2507 MeasureUnit *MeasureUnit::createSai(UErrorCode &status) { 2508 return MeasureUnit::create(23, 39, status); 2509 } 2510 2511 MeasureUnit MeasureUnit::getSai() { 2512 return MeasureUnit(23, 39); 2513 } 2514 2515 MeasureUnit *MeasureUnit::createShaku(UErrorCode &status) { 2516 return MeasureUnit::create(23, 40, status); 2517 } 2518 2519 MeasureUnit MeasureUnit::getShaku() { 2520 return MeasureUnit(23, 40); 2521 } 2522 2523 MeasureUnit *MeasureUnit::createTablespoon(UErrorCode &status) { 2524 return MeasureUnit::create(23, 41, status); 2525 } 2526 2527 MeasureUnit MeasureUnit::getTablespoon() { 2528 return MeasureUnit(23, 41); 2529 } 2530 2531 MeasureUnit *MeasureUnit::createTeaspoon(UErrorCode &status) { 2532 return MeasureUnit::create(23, 42, status); 2533 } 2534 2535 MeasureUnit MeasureUnit::getTeaspoon() { 2536 return MeasureUnit(23, 42); 2537 } 2538 2539 MeasureUnit *MeasureUnit::createToJp(UErrorCode &status) { 2540 return MeasureUnit::create(23, 43, status); 2541 } 2542 2543 MeasureUnit MeasureUnit::getToJp() { 2544 return MeasureUnit(23, 43); 2545 } 2546 2547 // End generated code for measunit.cpp 2548 2549 static int32_t binarySearch( 2550 const char * const * array, int32_t start, int32_t end, StringPiece key) { 2551 while (start < end) { 2552 int32_t mid = (start + end) / 2; 2553 int32_t cmp = StringPiece(array[mid]).compare(key); 2554 if (cmp < 0) { 2555 start = mid + 1; 2556 continue; 2557 } 2558 if (cmp == 0) { 2559 return mid; 2560 } 2561 end = mid; 2562 } 2563 return -1; 2564 } 2565 2566 MeasureUnit::MeasureUnit() : MeasureUnit(kBaseTypeIdx, kBaseSubTypeIdx) { 2567 } 2568 2569 MeasureUnit::MeasureUnit(int32_t typeId, int32_t subTypeId) 2570 : fImpl(nullptr), fSubTypeId(subTypeId), fTypeId(typeId) { 2571 } 2572 2573 MeasureUnit::MeasureUnit(const MeasureUnit &other) 2574 : fImpl(nullptr) { 2575 *this = other; 2576 } 2577 2578 MeasureUnit::MeasureUnit(MeasureUnit &&other) noexcept 2579 : fImpl(other.fImpl), 2580 fSubTypeId(other.fSubTypeId), 2581 fTypeId(other.fTypeId) { 2582 other.fImpl = nullptr; 2583 } 2584 2585 MeasureUnit::MeasureUnit(MeasureUnitImpl&& impl) 2586 : fImpl(nullptr), fSubTypeId(-1), fTypeId(-1) { 2587 if (!findBySubType(impl.identifier.data(), this)) { 2588 fImpl = new MeasureUnitImpl(std::move(impl)); 2589 } 2590 } 2591 2592 MeasureUnit &MeasureUnit::operator=(const MeasureUnit &other) { 2593 if (this == &other) { 2594 return *this; 2595 } 2596 delete fImpl; 2597 if (other.fImpl) { 2598 ErrorCode localStatus; 2599 fImpl = new MeasureUnitImpl(other.fImpl->copy(localStatus)); 2600 if (!fImpl || localStatus.isFailure()) { 2601 // Unrecoverable allocation error; set to the default unit 2602 *this = MeasureUnit(); 2603 return *this; 2604 } 2605 } else { 2606 fImpl = nullptr; 2607 } 2608 fTypeId = other.fTypeId; 2609 fSubTypeId = other.fSubTypeId; 2610 return *this; 2611 } 2612 2613 MeasureUnit &MeasureUnit::operator=(MeasureUnit &&other) noexcept { 2614 if (this == &other) { 2615 return *this; 2616 } 2617 delete fImpl; 2618 fImpl = other.fImpl; 2619 other.fImpl = nullptr; 2620 fTypeId = other.fTypeId; 2621 fSubTypeId = other.fSubTypeId; 2622 return *this; 2623 } 2624 2625 MeasureUnit *MeasureUnit::clone() const { 2626 return new MeasureUnit(*this); 2627 } 2628 2629 MeasureUnit::~MeasureUnit() { 2630 if (fImpl != nullptr) { 2631 delete fImpl; 2632 fImpl = nullptr; 2633 } 2634 } 2635 2636 const char *MeasureUnit::getType() const { 2637 // We have a type & subtype only if fTypeId is present. 2638 if (fTypeId == -1) { 2639 return ""; 2640 } 2641 return gTypes[fTypeId]; 2642 } 2643 2644 const char *MeasureUnit::getSubtype() const { 2645 // We have a type & subtype only if fTypeId is present. 2646 if (fTypeId == -1) { 2647 return ""; 2648 } 2649 return getIdentifier(); 2650 } 2651 2652 const char *MeasureUnit::getIdentifier() const { 2653 return fImpl ? fImpl->identifier.data() : gSubTypes[getOffset()]; 2654 } 2655 2656 bool MeasureUnit::operator==(const UObject& other) const { 2657 if (this == &other) { // Same object, equal 2658 return true; 2659 } 2660 if (typeid(*this) != typeid(other)) { // Different types, not equal 2661 return false; 2662 } 2663 const MeasureUnit &rhs = static_cast<const MeasureUnit&>(other); 2664 return uprv_strcmp(getIdentifier(), rhs.getIdentifier()) == 0; 2665 } 2666 2667 int32_t MeasureUnit::getAvailable( 2668 MeasureUnit *dest, 2669 int32_t destCapacity, 2670 UErrorCode &errorCode) { 2671 if (U_FAILURE(errorCode)) { 2672 return 0; 2673 } 2674 if (destCapacity < UPRV_LENGTHOF(gSubTypes)) { 2675 errorCode = U_BUFFER_OVERFLOW_ERROR; 2676 return UPRV_LENGTHOF(gSubTypes); 2677 } 2678 int32_t idx = 0; 2679 for (int32_t typeIdx = 0; typeIdx < UPRV_LENGTHOF(gTypes); ++typeIdx) { 2680 int32_t len = gOffsets[typeIdx + 1] - gOffsets[typeIdx]; 2681 for (int32_t subTypeIdx = 0; subTypeIdx < len; ++subTypeIdx) { 2682 dest[idx].setTo(typeIdx, subTypeIdx); 2683 ++idx; 2684 } 2685 } 2686 U_ASSERT(idx == UPRV_LENGTHOF(gSubTypes)); 2687 return UPRV_LENGTHOF(gSubTypes); 2688 } 2689 2690 int32_t MeasureUnit::getAvailable( 2691 const char *type, 2692 MeasureUnit *dest, 2693 int32_t destCapacity, 2694 UErrorCode &errorCode) { 2695 if (U_FAILURE(errorCode)) { 2696 return 0; 2697 } 2698 int32_t typeIdx = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes), type); 2699 if (typeIdx == -1) { 2700 return 0; 2701 } 2702 int32_t len = gOffsets[typeIdx + 1] - gOffsets[typeIdx]; 2703 if (destCapacity < len) { 2704 errorCode = U_BUFFER_OVERFLOW_ERROR; 2705 return len; 2706 } 2707 for (int subTypeIdx = 0; subTypeIdx < len; ++subTypeIdx) { 2708 dest[subTypeIdx].setTo(typeIdx, subTypeIdx); 2709 } 2710 return len; 2711 } 2712 2713 StringEnumeration* MeasureUnit::getAvailableTypes(UErrorCode &errorCode) { 2714 UEnumeration *uenum = uenum_openCharStringsEnumeration( 2715 gTypes, UPRV_LENGTHOF(gTypes), &errorCode); 2716 if (U_FAILURE(errorCode)) { 2717 uenum_close(uenum); 2718 return nullptr; 2719 } 2720 StringEnumeration *result = new UStringEnumeration(uenum); 2721 if (result == nullptr) { 2722 errorCode = U_MEMORY_ALLOCATION_ERROR; 2723 uenum_close(uenum); 2724 return nullptr; 2725 } 2726 return result; 2727 } 2728 2729 bool MeasureUnit::findBySubType(StringPiece subType, MeasureUnit* output) { 2730 // Sanity checking kCurrencyOffset and final entry in gOffsets 2731 U_ASSERT(uprv_strcmp(gTypes[kCurrencyOffset], "currency") == 0); 2732 U_ASSERT(gOffsets[UPRV_LENGTHOF(gOffsets) - 1] == UPRV_LENGTHOF(gSubTypes)); 2733 2734 for (int32_t t = 0; t < UPRV_LENGTHOF(gOffsets) - 1; t++) { 2735 // Skip currency units 2736 if (t == kCurrencyOffset) { 2737 continue; 2738 } 2739 int32_t st = binarySearch(gSubTypes, gOffsets[t], gOffsets[t + 1], subType); 2740 if (st >= 0) { 2741 output->setTo(t, st - gOffsets[t]); 2742 return true; 2743 } 2744 } 2745 return false; 2746 } 2747 2748 MeasureUnit *MeasureUnit::create(int typeId, int subTypeId, UErrorCode &status) { 2749 if (U_FAILURE(status)) { 2750 return nullptr; 2751 } 2752 MeasureUnit *result = new MeasureUnit(typeId, subTypeId); 2753 if (result == nullptr) { 2754 status = U_MEMORY_ALLOCATION_ERROR; 2755 } 2756 return result; 2757 } 2758 2759 void MeasureUnit::initTime(const char *timeId) { 2760 int32_t result = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes), "duration"); 2761 U_ASSERT(result != -1); 2762 fTypeId = result; 2763 result = binarySearch(gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], timeId); 2764 U_ASSERT(result != -1); 2765 fSubTypeId = result - gOffsets[fTypeId]; 2766 } 2767 2768 void MeasureUnit::initCurrency(StringPiece isoCurrency) { 2769 int32_t result = binarySearch(gTypes, 0, UPRV_LENGTHOF(gTypes), "currency"); 2770 U_ASSERT(result != -1); 2771 fTypeId = result; 2772 result = binarySearch( 2773 gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], isoCurrency); 2774 if (result == -1) { 2775 UErrorCode status = U_ZERO_ERROR; 2776 fImpl = new MeasureUnitImpl(MeasureUnitImpl::forCurrencyCode(isoCurrency, status)); 2777 if (fImpl != nullptr) { 2778 if (U_SUCCESS(status)) { 2779 fSubTypeId = -1; 2780 return; 2781 } else { 2782 delete fImpl; 2783 fImpl = nullptr; 2784 } 2785 } 2786 // malloc error: fall back to the undefined currency 2787 result = binarySearch( 2788 gSubTypes, gOffsets[fTypeId], gOffsets[fTypeId + 1], kDefaultCurrency8); 2789 U_ASSERT(result != -1); 2790 } 2791 fSubTypeId = result - gOffsets[fTypeId]; 2792 } 2793 2794 void MeasureUnit::setTo(int32_t typeId, int32_t subTypeId) { 2795 fTypeId = typeId; 2796 fSubTypeId = subTypeId; 2797 if (fImpl != nullptr) { 2798 delete fImpl; 2799 fImpl = nullptr; 2800 } 2801 } 2802 2803 int32_t MeasureUnit::getOffset() const { 2804 if (fTypeId < 0 || fSubTypeId < 0) { 2805 return -1; 2806 } 2807 return gOffsets[fTypeId] + fSubTypeId; 2808 } 2809 2810 MeasureUnitImpl MeasureUnitImpl::copy(UErrorCode &status) const { 2811 MeasureUnitImpl result; 2812 result.complexity = complexity; 2813 result.identifier = identifier; 2814 if (result.identifier.isEmpty() != identifier.isEmpty()) { 2815 status = U_MEMORY_ALLOCATION_ERROR; 2816 return result; 2817 } 2818 result.constantDenominator = constantDenominator; 2819 for (int32_t i = 0; i < singleUnits.length(); i++) { 2820 SingleUnitImpl *item = result.singleUnits.emplaceBack(*singleUnits[i]); 2821 if (!item) { 2822 status = U_MEMORY_ALLOCATION_ERROR; 2823 return result; 2824 } 2825 } 2826 return result; 2827 } 2828 2829 U_NAMESPACE_END 2830 2831 #endif /* !UNCONFIG_NO_FORMATTING */