// // This software is now distributed according to // the Lesser Gnu Public License. Please see // http://www.gnu.org/copyleft/lesser.txt for // the details. // -- Happy Computing! // package com.stevesoft.pat; /** * Encapsulates the Unicode definitions of Upper, Lower, and Title case as * defined by unicode.org. *

* The performance of the methods found in String and Character is better, but * these methods work both in java 1.0 and 1.1. If it is desirable, either to * gain a slight performance increase or to accomodate application specific * modifications to the definitions of upper, lower, and title case then it * should be a straightforward task to substitute your own methods for these. */ final public class CaseMgr { final static boolean java_1_0 = false; /** Convert a character to upper case . */ public static char toUpperCase(char c) { if (java_1_0) { int ret = (int) c; switch (c) { case 97: ret = 65; break; case 98: ret = 66; break; case 99: ret = 67; break; case 100: ret = 68; break; case 101: ret = 69; break; case 102: ret = 70; break; case 103: ret = 71; break; case 104: ret = 72; break; case 105: ret = 73; break; case 106: ret = 74; break; case 107: ret = 75; break; case 108: ret = 76; break; case 109: ret = 77; break; case 110: ret = 78; break; case 111: ret = 79; break; case 112: ret = 80; break; case 113: ret = 81; break; case 114: ret = 82; break; case 115: ret = 83; break; case 116: ret = 84; break; case 117: ret = 85; break; case 118: ret = 86; break; case 119: ret = 87; break; case 120: ret = 88; break; case 121: ret = 89; break; case 122: ret = 90; break; case 224: ret = 192; break; case 225: ret = 193; break; case 226: ret = 194; break; case 227: ret = 195; break; case 228: ret = 196; break; case 229: ret = 197; break; case 230: ret = 198; break; case 231: ret = 199; break; case 232: ret = 200; break; case 233: ret = 201; break; case 234: ret = 202; break; case 235: ret = 203; break; case 236: ret = 204; break; case 237: ret = 205; break; case 238: ret = 206; break; case 239: ret = 207; break; case 240: ret = 208; break; case 241: ret = 209; break; case 242: ret = 210; break; case 243: ret = 211; break; case 244: ret = 212; break; case 245: ret = 213; break; case 246: ret = 214; break; case 248: ret = 216; break; case 249: ret = 217; break; case 250: ret = 218; break; case 251: ret = 219; break; case 252: ret = 220; break; case 253: ret = 221; break; case 254: ret = 222; break; case 255: ret = 376; break; case 257: ret = 256; break; case 259: ret = 258; break; case 261: ret = 260; break; case 263: ret = 262; break; case 265: ret = 264; break; case 267: ret = 266; break; case 269: ret = 268; break; case 271: ret = 270; break; case 273: ret = 272; break; case 275: ret = 274; break; case 277: ret = 276; break; case 279: ret = 278; break; case 281: ret = 280; break; case 283: ret = 282; break; case 285: ret = 284; break; case 287: ret = 286; break; case 289: ret = 288; break; case 291: ret = 290; break; case 293: ret = 292; break; case 295: ret = 294; break; case 297: ret = 296; break; case 299: ret = 298; break; case 301: ret = 300; break; case 303: ret = 302; break; case 305: ret = 73; break; case 307: ret = 306; break; case 309: ret = 308; break; case 311: ret = 310; break; case 314: ret = 313; break; case 316: ret = 315; break; case 318: ret = 317; break; case 320: ret = 319; break; case 322: ret = 321; break; case 324: ret = 323; break; case 326: ret = 325; break; case 328: ret = 327; break; case 331: ret = 330; break; case 333: ret = 332; break; case 335: ret = 334; break; case 337: ret = 336; break; case 339: ret = 338; break; case 341: ret = 340; break; case 343: ret = 342; break; case 345: ret = 344; break; case 347: ret = 346; break; case 349: ret = 348; break; case 351: ret = 350; break; case 353: ret = 352; break; case 355: ret = 354; break; case 357: ret = 356; break; case 359: ret = 358; break; case 361: ret = 360; break; case 363: ret = 362; break; case 365: ret = 364; break; case 367: ret = 366; break; case 369: ret = 368; break; case 371: ret = 370; break; case 373: ret = 372; break; case 375: ret = 374; break; case 378: ret = 377; break; case 380: ret = 379; break; case 382: ret = 381; break; case 383: ret = 83; break; case 387: ret = 386; break; case 389: ret = 388; break; case 392: ret = 391; break; case 396: ret = 395; break; case 402: ret = 401; break; case 409: ret = 408; break; case 417: ret = 416; break; case 419: ret = 418; break; case 421: ret = 420; break; case 424: ret = 423; break; case 429: ret = 428; break; case 432: ret = 431; break; case 436: ret = 435; break; case 438: ret = 437; break; case 441: ret = 440; break; case 445: ret = 444; break; case 453: ret = 452; break; case 454: ret = 452; break; case 456: ret = 455; break; case 457: ret = 455; break; case 459: ret = 458; break; case 460: ret = 458; break; case 462: ret = 461; break; case 464: ret = 463; break; case 466: ret = 465; break; case 468: ret = 467; break; case 470: ret = 469; break; case 472: ret = 471; break; case 474: ret = 473; break; case 476: ret = 475; break; case 479: ret = 478; break; case 481: ret = 480; break; case 483: ret = 482; break; case 485: ret = 484; break; case 487: ret = 486; break; case 489: ret = 488; break; case 491: ret = 490; break; case 493: ret = 492; break; case 495: ret = 494; break; case 498: ret = 497; break; case 499: ret = 497; break; case 501: ret = 500; break; case 507: ret = 506; break; case 509: ret = 508; break; case 511: ret = 510; break; case 513: ret = 512; break; case 515: ret = 514; break; case 517: ret = 516; break; case 519: ret = 518; break; case 521: ret = 520; break; case 523: ret = 522; break; case 525: ret = 524; break; case 527: ret = 526; break; case 529: ret = 528; break; case 531: ret = 530; break; case 533: ret = 532; break; case 535: ret = 534; break; case 595: ret = 385; break; case 596: ret = 390; break; case 598: ret = 393; break; case 599: ret = 394; break; case 600: ret = 398; break; case 601: ret = 399; break; case 603: ret = 400; break; case 608: ret = 403; break; case 611: ret = 404; break; case 616: ret = 407; break; case 617: ret = 406; break; case 623: ret = 412; break; case 626: ret = 413; break; case 643: ret = 425; break; case 648: ret = 430; break; case 650: ret = 433; break; case 651: ret = 434; break; case 658: ret = 439; break; case 940: ret = 902; break; case 941: ret = 904; break; case 942: ret = 905; break; case 943: ret = 906; break; case 945: ret = 913; break; case 946: ret = 914; break; case 947: ret = 915; break; case 948: ret = 916; break; case 949: ret = 917; break; case 950: ret = 918; break; case 951: ret = 919; break; case 952: ret = 920; break; case 953: ret = 921; break; case 954: ret = 922; break; case 955: ret = 923; break; case 956: ret = 924; break; case 957: ret = 925; break; case 958: ret = 926; break; case 959: ret = 927; break; case 960: ret = 928; break; case 961: ret = 929; break; case 963: ret = 931; break; case 964: ret = 932; break; case 965: ret = 933; break; case 966: ret = 934; break; case 967: ret = 935; break; case 968: ret = 936; break; case 969: ret = 937; break; case 970: ret = 938; break; case 971: ret = 939; break; case 972: ret = 908; break; case 973: ret = 910; break; case 974: ret = 911; break; case 976: ret = 914; break; case 977: ret = 920; break; case 981: ret = 934; break; case 982: ret = 928; break; case 995: ret = 994; break; case 997: ret = 996; break; case 999: ret = 998; break; case 1001: ret = 1000; break; case 1003: ret = 1002; break; case 1005: ret = 1004; break; case 1007: ret = 1006; break; case 1008: ret = 922; break; case 1009: ret = 929; break; case 1072: ret = 1040; break; case 1073: ret = 1041; break; case 1074: ret = 1042; break; case 1075: ret = 1043; break; case 1076: ret = 1044; break; case 1077: ret = 1045; break; case 1078: ret = 1046; break; case 1079: ret = 1047; break; case 1080: ret = 1048; break; case 1081: ret = 1049; break; case 1082: ret = 1050; break; case 1083: ret = 1051; break; case 1084: ret = 1052; break; case 1085: ret = 1053; break; case 1086: ret = 1054; break; case 1087: ret = 1055; break; case 1088: ret = 1056; break; case 1089: ret = 1057; break; case 1090: ret = 1058; break; case 1091: ret = 1059; break; case 1092: ret = 1060; break; case 1093: ret = 1061; break; case 1094: ret = 1062; break; case 1095: ret = 1063; break; case 1096: ret = 1064; break; case 1097: ret = 1065; break; case 1098: ret = 1066; break; case 1099: ret = 1067; break; case 1100: ret = 1068; break; case 1101: ret = 1069; break; case 1102: ret = 1070; break; case 1103: ret = 1071; break; case 1105: ret = 1025; break; case 1106: ret = 1026; break; case 1107: ret = 1027; break; case 1108: ret = 1028; break; case 1109: ret = 1029; break; case 1110: ret = 1030; break; case 1111: ret = 1031; break; case 1112: ret = 1032; break; case 1113: ret = 1033; break; case 1114: ret = 1034; break; case 1115: ret = 1035; break; case 1116: ret = 1036; break; case 1118: ret = 1038; break; case 1119: ret = 1039; break; case 1121: ret = 1120; break; case 1123: ret = 1122; break; case 1125: ret = 1124; break; case 1127: ret = 1126; break; case 1129: ret = 1128; break; case 1131: ret = 1130; break; case 1133: ret = 1132; break; case 1135: ret = 1134; break; case 1137: ret = 1136; break; case 1139: ret = 1138; break; case 1141: ret = 1140; break; case 1143: ret = 1142; break; case 1145: ret = 1144; break; case 1147: ret = 1146; break; case 1149: ret = 1148; break; case 1151: ret = 1150; break; case 1153: ret = 1152; break; case 1169: ret = 1168; break; case 1171: ret = 1170; break; case 1173: ret = 1172; break; case 1175: ret = 1174; break; case 1177: ret = 1176; break; case 1179: ret = 1178; break; case 1181: ret = 1180; break; case 1183: ret = 1182; break; case 1185: ret = 1184; break; case 1187: ret = 1186; break; case 1189: ret = 1188; break; case 1191: ret = 1190; break; case 1193: ret = 1192; break; case 1195: ret = 1194; break; case 1197: ret = 1196; break; case 1199: ret = 1198; break; case 1201: ret = 1200; break; case 1203: ret = 1202; break; case 1205: ret = 1204; break; case 1207: ret = 1206; break; case 1209: ret = 1208; break; case 1211: ret = 1210; break; case 1213: ret = 1212; break; case 1215: ret = 1214; break; case 1218: ret = 1217; break; case 1220: ret = 1219; break; case 1224: ret = 1223; break; case 1228: ret = 1227; break; case 1233: ret = 1232; break; case 1235: ret = 1234; break; case 1237: ret = 1236; break; case 1239: ret = 1238; break; case 1241: ret = 1240; break; case 1243: ret = 1242; break; case 1245: ret = 1244; break; case 1247: ret = 1246; break; case 1249: ret = 1248; break; case 1251: ret = 1250; break; case 1253: ret = 1252; break; case 1255: ret = 1254; break; case 1257: ret = 1256; break; case 1259: ret = 1258; break; case 1263: ret = 1262; break; case 1265: ret = 1264; break; case 1267: ret = 1266; break; case 1269: ret = 1268; break; case 1273: ret = 1272; break; case 1377: ret = 1329; break; case 1378: ret = 1330; break; case 1379: ret = 1331; break; case 1380: ret = 1332; break; case 1381: ret = 1333; break; case 1382: ret = 1334; break; case 1383: ret = 1335; break; case 1384: ret = 1336; break; case 1385: ret = 1337; break; case 1386: ret = 1338; break; case 1387: ret = 1339; break; case 1388: ret = 1340; break; case 1389: ret = 1341; break; case 1390: ret = 1342; break; case 1391: ret = 1343; break; case 1392: ret = 1344; break; case 1393: ret = 1345; break; case 1394: ret = 1346; break; case 1395: ret = 1347; break; case 1396: ret = 1348; break; case 1397: ret = 1349; break; case 1398: ret = 1350; break; case 1399: ret = 1351; break; case 1400: ret = 1352; break; case 1401: ret = 1353; break; case 1402: ret = 1354; break; case 1403: ret = 1355; break; case 1404: ret = 1356; break; case 1405: ret = 1357; break; case 1406: ret = 1358; break; case 1407: ret = 1359; break; case 1408: ret = 1360; break; case 1409: ret = 1361; break; case 1410: ret = 1362; break; case 1411: ret = 1363; break; case 1412: ret = 1364; break; case 1413: ret = 1365; break; case 1414: ret = 1366; break; case 7681: ret = 7680; break; case 7683: ret = 7682; break; case 7685: ret = 7684; break; case 7687: ret = 7686; break; case 7689: ret = 7688; break; case 7691: ret = 7690; break; case 7693: ret = 7692; break; case 7695: ret = 7694; break; case 7697: ret = 7696; break; case 7699: ret = 7698; break; case 7701: ret = 7700; break; case 7703: ret = 7702; break; case 7705: ret = 7704; break; case 7707: ret = 7706; break; case 7709: ret = 7708; break; case 7711: ret = 7710; break; case 7713: ret = 7712; break; case 7715: ret = 7714; break; case 7717: ret = 7716; break; case 7719: ret = 7718; break; case 7721: ret = 7720; break; case 7723: ret = 7722; break; case 7725: ret = 7724; break; case 7727: ret = 7726; break; case 7729: ret = 7728; break; case 7731: ret = 7730; break; case 7733: ret = 7732; break; case 7735: ret = 7734; break; case 7737: ret = 7736; break; case 7739: ret = 7738; break; case 7741: ret = 7740; break; case 7743: ret = 7742; break; case 7745: ret = 7744; break; case 7747: ret = 7746; break; case 7749: ret = 7748; break; case 7751: ret = 7750; break; case 7753: ret = 7752; break; case 7755: ret = 7754; break; case 7757: ret = 7756; break; case 7759: ret = 7758; break; case 7761: ret = 7760; break; case 7763: ret = 7762; break; case 7765: ret = 7764; break; case 7767: ret = 7766; break; case 7769: ret = 7768; break; case 7771: ret = 7770; break; case 7773: ret = 7772; break; case 7775: ret = 7774; break; case 7777: ret = 7776; break; case 7779: ret = 7778; break; case 7781: ret = 7780; break; case 7783: ret = 7782; break; case 7785: ret = 7784; break; case 7787: ret = 7786; break; case 7789: ret = 7788; break; case 7791: ret = 7790; break; case 7793: ret = 7792; break; case 7795: ret = 7794; break; case 7797: ret = 7796; break; case 7799: ret = 7798; break; case 7801: ret = 7800; break; case 7803: ret = 7802; break; case 7805: ret = 7804; break; case 7807: ret = 7806; break; case 7809: ret = 7808; break; case 7811: ret = 7810; break; case 7813: ret = 7812; break; case 7815: ret = 7814; break; case 7817: ret = 7816; break; case 7819: ret = 7818; break; case 7821: ret = 7820; break; case 7823: ret = 7822; break; case 7825: ret = 7824; break; case 7827: ret = 7826; break; case 7829: ret = 7828; break; case 7841: ret = 7840; break; case 7843: ret = 7842; break; case 7845: ret = 7844; break; case 7847: ret = 7846; break; case 7849: ret = 7848; break; case 7851: ret = 7850; break; case 7853: ret = 7852; break; case 7855: ret = 7854; break; case 7857: ret = 7856; break; case 7859: ret = 7858; break; case 7861: ret = 7860; break; case 7863: ret = 7862; break; case 7865: ret = 7864; break; case 7867: ret = 7866; break; case 7869: ret = 7868; break; case 7871: ret = 7870; break; case 7873: ret = 7872; break; case 7875: ret = 7874; break; case 7877: ret = 7876; break; case 7879: ret = 7878; break; case 7881: ret = 7880; break; case 7883: ret = 7882; break; case 7885: ret = 7884; break; case 7887: ret = 7886; break; case 7889: ret = 7888; break; case 7891: ret = 7890; break; case 7893: ret = 7892; break; case 7895: ret = 7894; break; case 7897: ret = 7896; break; case 7899: ret = 7898; break; case 7901: ret = 7900; break; case 7903: ret = 7902; break; case 7905: ret = 7904; break; case 7907: ret = 7906; break; case 7909: ret = 7908; break; case 7911: ret = 7910; break; case 7913: ret = 7912; break; case 7915: ret = 7914; break; case 7917: ret = 7916; break; case 7919: ret = 7918; break; case 7921: ret = 7920; break; case 7923: ret = 7922; break; case 7925: ret = 7924; break; case 7927: ret = 7926; break; case 7929: ret = 7928; break; case 7936: ret = 7944; break; case 7937: ret = 7945; break; case 7938: ret = 7946; break; case 7939: ret = 7947; break; case 7940: ret = 7948; break; case 7941: ret = 7949; break; case 7942: ret = 7950; break; case 7943: ret = 7951; break; case 7952: ret = 7960; break; case 7953: ret = 7961; break; case 7954: ret = 7962; break; case 7955: ret = 7963; break; case 7956: ret = 7964; break; case 7957: ret = 7965; break; case 7968: ret = 7976; break; case 7969: ret = 7977; break; case 7970: ret = 7978; break; case 7971: ret = 7979; break; case 7972: ret = 7980; break; case 7973: ret = 7981; break; case 7974: ret = 7982; break; case 7975: ret = 7983; break; case 7984: ret = 7992; break; case 7985: ret = 7993; break; case 7986: ret = 7994; break; case 7987: ret = 7995; break; case 7988: ret = 7996; break; case 7989: ret = 7997; break; case 7990: ret = 7998; break; case 7991: ret = 7999; break; case 8000: ret = 8008; break; case 8001: ret = 8009; break; case 8002: ret = 8010; break; case 8003: ret = 8011; break; case 8004: ret = 8012; break; case 8005: ret = 8013; break; case 8017: ret = 8025; break; case 8019: ret = 8027; break; case 8021: ret = 8029; break; case 8023: ret = 8031; break; case 8032: ret = 8040; break; case 8033: ret = 8041; break; case 8034: ret = 8042; break; case 8035: ret = 8043; break; case 8036: ret = 8044; break; case 8037: ret = 8045; break; case 8038: ret = 8046; break; case 8039: ret = 8047; break; case 8048: ret = 8122; break; case 8049: ret = 8123; break; case 8050: ret = 8136; break; case 8051: ret = 8137; break; case 8052: ret = 8138; break; case 8053: ret = 8139; break; case 8054: ret = 8154; break; case 8055: ret = 8155; break; case 8056: ret = 8184; break; case 8057: ret = 8185; break; case 8058: ret = 8170; break; case 8059: ret = 8171; break; case 8060: ret = 8186; break; case 8061: ret = 8187; break; case 8064: ret = 8072; break; case 8065: ret = 8073; break; case 8066: ret = 8074; break; case 8067: ret = 8075; break; case 8068: ret = 8076; break; case 8069: ret = 8077; break; case 8070: ret = 8078; break; case 8071: ret = 8079; break; case 8080: ret = 8088; break; case 8081: ret = 8089; break; case 8082: ret = 8090; break; case 8083: ret = 8091; break; case 8084: ret = 8092; break; case 8085: ret = 8093; break; case 8086: ret = 8094; break; case 8087: ret = 8095; break; case 8096: ret = 8104; break; case 8097: ret = 8105; break; case 8098: ret = 8106; break; case 8099: ret = 8107; break; case 8100: ret = 8108; break; case 8101: ret = 8109; break; case 8102: ret = 8110; break; case 8103: ret = 8111; break; case 8112: ret = 8120; break; case 8113: ret = 8121; break; case 8115: ret = 8124; break; case 8131: ret = 8140; break; case 8144: ret = 8152; break; case 8145: ret = 8153; break; case 8160: ret = 8168; break; case 8161: ret = 8169; break; case 8165: ret = 8172; break; case 8179: ret = 8188; break; case 8560: ret = 8544; break; case 8561: ret = 8545; break; case 8562: ret = 8546; break; case 8563: ret = 8547; break; case 8564: ret = 8548; break; case 8565: ret = 8549; break; case 8566: ret = 8550; break; case 8567: ret = 8551; break; case 8568: ret = 8552; break; case 8569: ret = 8553; break; case 8570: ret = 8554; break; case 8571: ret = 8555; break; case 8572: ret = 8556; break; case 8573: ret = 8557; break; case 8574: ret = 8558; break; case 8575: ret = 8559; break; case 9424: ret = 9398; break; case 9425: ret = 9399; break; case 9426: ret = 9400; break; case 9427: ret = 9401; break; case 9428: ret = 9402; break; case 9429: ret = 9403; break; case 9430: ret = 9404; break; case 9431: ret = 9405; break; case 9432: ret = 9406; break; case 9433: ret = 9407; break; case 9434: ret = 9408; break; case 9435: ret = 9409; break; case 9436: ret = 9410; break; case 9437: ret = 9411; break; case 9438: ret = 9412; break; case 9439: ret = 9413; break; case 9440: ret = 9414; break; case 9441: ret = 9415; break; case 9442: ret = 9416; break; case 9443: ret = 9417; break; case 9444: ret = 9418; break; case 9445: ret = 9419; break; case 9446: ret = 9420; break; case 9447: ret = 9421; break; case 9448: ret = 9422; break; case 9449: ret = 9423; break; case 65345: ret = 65313; break; case 65346: ret = 65314; break; case 65347: ret = 65315; break; case 65348: ret = 65316; break; case 65349: ret = 65317; break; case 65350: ret = 65318; break; case 65351: ret = 65319; break; case 65352: ret = 65320; break; case 65353: ret = 65321; break; case 65354: ret = 65322; break; case 65355: ret = 65323; break; case 65356: ret = 65324; break; case 65357: ret = 65325; break; case 65358: ret = 65326; break; case 65359: ret = 65327; break; case 65360: ret = 65328; break; case 65361: ret = 65329; break; case 65362: ret = 65330; break; case 65363: ret = 65331; break; case 65364: ret = 65332; break; case 65365: ret = 65333; break; case 65366: ret = 65334; break; case 65367: ret = 65335; break; case 65368: ret = 65336; break; case 65369: ret = 65337; break; case 65370: ret = 65338; break; } return (char) ret; } return Character.toUpperCase(c); } /** Convert a character to lower case. */ public static char toLowerCase(char c) { if (java_1_0) { int ret = (int) c; switch (c) { case 65: ret = 97; break; case 66: ret = 98; break; case 67: ret = 99; break; case 68: ret = 100; break; case 69: ret = 101; break; case 70: ret = 102; break; case 71: ret = 103; break; case 72: ret = 104; break; case 73: ret = 105; break; case 74: ret = 106; break; case 75: ret = 107; break; case 76: ret = 108; break; case 77: ret = 109; break; case 78: ret = 110; break; case 79: ret = 111; break; case 80: ret = 112; break; case 81: ret = 113; break; case 82: ret = 114; break; case 83: ret = 115; break; case 84: ret = 116; break; case 85: ret = 117; break; case 86: ret = 118; break; case 87: ret = 119; break; case 88: ret = 120; break; case 89: ret = 121; break; case 90: ret = 122; break; case 192: ret = 224; break; case 193: ret = 225; break; case 194: ret = 226; break; case 195: ret = 227; break; case 196: ret = 228; break; case 197: ret = 229; break; case 198: ret = 230; break; case 199: ret = 231; break; case 200: ret = 232; break; case 201: ret = 233; break; case 202: ret = 234; break; case 203: ret = 235; break; case 204: ret = 236; break; case 205: ret = 237; break; case 206: ret = 238; break; case 207: ret = 239; break; case 208: ret = 240; break; case 209: ret = 241; break; case 210: ret = 242; break; case 211: ret = 243; break; case 212: ret = 244; break; case 213: ret = 245; break; case 214: ret = 246; break; case 216: ret = 248; break; case 217: ret = 249; break; case 218: ret = 250; break; case 219: ret = 251; break; case 220: ret = 252; break; case 221: ret = 253; break; case 222: ret = 254; break; case 256: ret = 257; break; case 258: ret = 259; break; case 260: ret = 261; break; case 262: ret = 263; break; case 264: ret = 265; break; case 266: ret = 267; break; case 268: ret = 269; break; case 270: ret = 271; break; case 272: ret = 273; break; case 274: ret = 275; break; case 276: ret = 277; break; case 278: ret = 279; break; case 280: ret = 281; break; case 282: ret = 283; break; case 284: ret = 285; break; case 286: ret = 287; break; case 288: ret = 289; break; case 290: ret = 291; break; case 292: ret = 293; break; case 294: ret = 295; break; case 296: ret = 297; break; case 298: ret = 299; break; case 300: ret = 301; break; case 302: ret = 303; break; case 304: ret = 105; break; case 306: ret = 307; break; case 308: ret = 309; break; case 310: ret = 311; break; case 313: ret = 314; break; case 315: ret = 316; break; case 317: ret = 318; break; case 319: ret = 320; break; case 321: ret = 322; break; case 323: ret = 324; break; case 325: ret = 326; break; case 327: ret = 328; break; case 330: ret = 331; break; case 332: ret = 333; break; case 334: ret = 335; break; case 336: ret = 337; break; case 338: ret = 339; break; case 340: ret = 341; break; case 342: ret = 343; break; case 344: ret = 345; break; case 346: ret = 347; break; case 348: ret = 349; break; case 350: ret = 351; break; case 352: ret = 353; break; case 354: ret = 355; break; case 356: ret = 357; break; case 358: ret = 359; break; case 360: ret = 361; break; case 362: ret = 363; break; case 364: ret = 365; break; case 366: ret = 367; break; case 368: ret = 369; break; case 370: ret = 371; break; case 372: ret = 373; break; case 374: ret = 375; break; case 376: ret = 255; break; case 377: ret = 378; break; case 379: ret = 380; break; case 381: ret = 382; break; case 385: ret = 595; break; case 386: ret = 387; break; case 388: ret = 389; break; case 390: ret = 596; break; case 391: ret = 392; break; case 393: ret = 598; break; case 394: ret = 599; break; case 395: ret = 396; break; case 398: ret = 600; break; case 399: ret = 601; break; case 400: ret = 603; break; case 401: ret = 402; break; case 403: ret = 608; break; case 404: ret = 611; break; case 406: ret = 617; break; case 407: ret = 616; break; case 408: ret = 409; break; case 412: ret = 623; break; case 413: ret = 626; break; case 416: ret = 417; break; case 418: ret = 419; break; case 420: ret = 421; break; case 423: ret = 424; break; case 425: ret = 643; break; case 428: ret = 429; break; case 430: ret = 648; break; case 431: ret = 432; break; case 433: ret = 650; break; case 434: ret = 651; break; case 435: ret = 436; break; case 437: ret = 438; break; case 439: ret = 658; break; case 440: ret = 441; break; case 444: ret = 445; break; case 452: ret = 454; break; case 453: ret = 454; break; case 455: ret = 457; break; case 456: ret = 457; break; case 458: ret = 460; break; case 459: ret = 460; break; case 461: ret = 462; break; case 463: ret = 464; break; case 465: ret = 466; break; case 467: ret = 468; break; case 469: ret = 470; break; case 471: ret = 472; break; case 473: ret = 474; break; case 475: ret = 476; break; case 478: ret = 479; break; case 480: ret = 481; break; case 482: ret = 483; break; case 484: ret = 485; break; case 486: ret = 487; break; case 488: ret = 489; break; case 490: ret = 491; break; case 492: ret = 493; break; case 494: ret = 495; break; case 497: ret = 499; break; case 498: ret = 499; break; case 500: ret = 501; break; case 506: ret = 507; break; case 508: ret = 509; break; case 510: ret = 511; break; case 512: ret = 513; break; case 514: ret = 515; break; case 516: ret = 517; break; case 518: ret = 519; break; case 520: ret = 521; break; case 522: ret = 523; break; case 524: ret = 525; break; case 526: ret = 527; break; case 528: ret = 529; break; case 530: ret = 531; break; case 532: ret = 533; break; case 534: ret = 535; break; case 902: ret = 940; break; case 904: ret = 941; break; case 905: ret = 942; break; case 906: ret = 943; break; case 908: ret = 972; break; case 910: ret = 973; break; case 911: ret = 974; break; case 913: ret = 945; break; case 914: ret = 946; break; case 915: ret = 947; break; case 916: ret = 948; break; case 917: ret = 949; break; case 918: ret = 950; break; case 919: ret = 951; break; case 920: ret = 952; break; case 921: ret = 953; break; case 922: ret = 954; break; case 923: ret = 955; break; case 924: ret = 956; break; case 925: ret = 957; break; case 926: ret = 958; break; case 927: ret = 959; break; case 928: ret = 960; break; case 929: ret = 961; break; case 931: ret = 963; break; case 932: ret = 964; break; case 933: ret = 965; break; case 934: ret = 966; break; case 935: ret = 967; break; case 936: ret = 968; break; case 937: ret = 969; break; case 938: ret = 970; break; case 939: ret = 971; break; case 994: ret = 995; break; case 996: ret = 997; break; case 998: ret = 999; break; case 1000: ret = 1001; break; case 1002: ret = 1003; break; case 1004: ret = 1005; break; case 1006: ret = 1007; break; case 1025: ret = 1105; break; case 1026: ret = 1106; break; case 1027: ret = 1107; break; case 1028: ret = 1108; break; case 1029: ret = 1109; break; case 1030: ret = 1110; break; case 1031: ret = 1111; break; case 1032: ret = 1112; break; case 1033: ret = 1113; break; case 1034: ret = 1114; break; case 1035: ret = 1115; break; case 1036: ret = 1116; break; case 1038: ret = 1118; break; case 1039: ret = 1119; break; case 1040: ret = 1072; break; case 1041: ret = 1073; break; case 1042: ret = 1074; break; case 1043: ret = 1075; break; case 1044: ret = 1076; break; case 1045: ret = 1077; break; case 1046: ret = 1078; break; case 1047: ret = 1079; break; case 1048: ret = 1080; break; case 1049: ret = 1081; break; case 1050: ret = 1082; break; case 1051: ret = 1083; break; case 1052: ret = 1084; break; case 1053: ret = 1085; break; case 1054: ret = 1086; break; case 1055: ret = 1087; break; case 1056: ret = 1088; break; case 1057: ret = 1089; break; case 1058: ret = 1090; break; case 1059: ret = 1091; break; case 1060: ret = 1092; break; case 1061: ret = 1093; break; case 1062: ret = 1094; break; case 1063: ret = 1095; break; case 1064: ret = 1096; break; case 1065: ret = 1097; break; case 1066: ret = 1098; break; case 1067: ret = 1099; break; case 1068: ret = 1100; break; case 1069: ret = 1101; break; case 1070: ret = 1102; break; case 1071: ret = 1103; break; case 1120: ret = 1121; break; case 1122: ret = 1123; break; case 1124: ret = 1125; break; case 1126: ret = 1127; break; case 1128: ret = 1129; break; case 1130: ret = 1131; break; case 1132: ret = 1133; break; case 1134: ret = 1135; break; case 1136: ret = 1137; break; case 1138: ret = 1139; break; case 1140: ret = 1141; break; case 1142: ret = 1143; break; case 1144: ret = 1145; break; case 1146: ret = 1147; break; case 1148: ret = 1149; break; case 1150: ret = 1151; break; case 1152: ret = 1153; break; case 1168: ret = 1169; break; case 1170: ret = 1171; break; case 1172: ret = 1173; break; case 1174: ret = 1175; break; case 1176: ret = 1177; break; case 1178: ret = 1179; break; case 1180: ret = 1181; break; case 1182: ret = 1183; break; case 1184: ret = 1185; break; case 1186: ret = 1187; break; case 1188: ret = 1189; break; case 1190: ret = 1191; break; case 1192: ret = 1193; break; case 1194: ret = 1195; break; case 1196: ret = 1197; break; case 1198: ret = 1199; break; case 1200: ret = 1201; break; case 1202: ret = 1203; break; case 1204: ret = 1205; break; case 1206: ret = 1207; break; case 1208: ret = 1209; break; case 1210: ret = 1211; break; case 1212: ret = 1213; break; case 1214: ret = 1215; break; case 1217: ret = 1218; break; case 1219: ret = 1220; break; case 1223: ret = 1224; break; case 1227: ret = 1228; break; case 1232: ret = 1233; break; case 1234: ret = 1235; break; case 1236: ret = 1237; break; case 1238: ret = 1239; break; case 1240: ret = 1241; break; case 1242: ret = 1243; break; case 1244: ret = 1245; break; case 1246: ret = 1247; break; case 1248: ret = 1249; break; case 1250: ret = 1251; break; case 1252: ret = 1253; break; case 1254: ret = 1255; break; case 1256: ret = 1257; break; case 1258: ret = 1259; break; case 1262: ret = 1263; break; case 1264: ret = 1265; break; case 1266: ret = 1267; break; case 1268: ret = 1269; break; case 1272: ret = 1273; break; case 1329: ret = 1377; break; case 1330: ret = 1378; break; case 1331: ret = 1379; break; case 1332: ret = 1380; break; case 1333: ret = 1381; break; case 1334: ret = 1382; break; case 1335: ret = 1383; break; case 1336: ret = 1384; break; case 1337: ret = 1385; break; case 1338: ret = 1386; break; case 1339: ret = 1387; break; case 1340: ret = 1388; break; case 1341: ret = 1389; break; case 1342: ret = 1390; break; case 1343: ret = 1391; break; case 1344: ret = 1392; break; case 1345: ret = 1393; break; case 1346: ret = 1394; break; case 1347: ret = 1395; break; case 1348: ret = 1396; break; case 1349: ret = 1397; break; case 1350: ret = 1398; break; case 1351: ret = 1399; break; case 1352: ret = 1400; break; case 1353: ret = 1401; break; case 1354: ret = 1402; break; case 1355: ret = 1403; break; case 1356: ret = 1404; break; case 1357: ret = 1405; break; case 1358: ret = 1406; break; case 1359: ret = 1407; break; case 1360: ret = 1408; break; case 1361: ret = 1409; break; case 1362: ret = 1410; break; case 1363: ret = 1411; break; case 1364: ret = 1412; break; case 1365: ret = 1413; break; case 1366: ret = 1414; break; case 4256: ret = 4304; break; case 4257: ret = 4305; break; case 4258: ret = 4306; break; case 4259: ret = 4307; break; case 4260: ret = 4308; break; case 4261: ret = 4309; break; case 4262: ret = 4310; break; case 4263: ret = 4311; break; case 4264: ret = 4312; break; case 4265: ret = 4313; break; case 4266: ret = 4314; break; case 4267: ret = 4315; break; case 4268: ret = 4316; break; case 4269: ret = 4317; break; case 4270: ret = 4318; break; case 4271: ret = 4319; break; case 4272: ret = 4320; break; case 4273: ret = 4321; break; case 4274: ret = 4322; break; case 4275: ret = 4323; break; case 4276: ret = 4324; break; case 4277: ret = 4325; break; case 4278: ret = 4326; break; case 4279: ret = 4327; break; case 4280: ret = 4328; break; case 4281: ret = 4329; break; case 4282: ret = 4330; break; case 4283: ret = 4331; break; case 4284: ret = 4332; break; case 4285: ret = 4333; break; case 4286: ret = 4334; break; case 4287: ret = 4335; break; case 4288: ret = 4336; break; case 4289: ret = 4337; break; case 4290: ret = 4338; break; case 4291: ret = 4339; break; case 4292: ret = 4340; break; case 4293: ret = 4341; break; case 7680: ret = 7681; break; case 7682: ret = 7683; break; case 7684: ret = 7685; break; case 7686: ret = 7687; break; case 7688: ret = 7689; break; case 7690: ret = 7691; break; case 7692: ret = 7693; break; case 7694: ret = 7695; break; case 7696: ret = 7697; break; case 7698: ret = 7699; break; case 7700: ret = 7701; break; case 7702: ret = 7703; break; case 7704: ret = 7705; break; case 7706: ret = 7707; break; case 7708: ret = 7709; break; case 7710: ret = 7711; break; case 7712: ret = 7713; break; case 7714: ret = 7715; break; case 7716: ret = 7717; break; case 7718: ret = 7719; break; case 7720: ret = 7721; break; case 7722: ret = 7723; break; case 7724: ret = 7725; break; case 7726: ret = 7727; break; case 7728: ret = 7729; break; case 7730: ret = 7731; break; case 7732: ret = 7733; break; case 7734: ret = 7735; break; case 7736: ret = 7737; break; case 7738: ret = 7739; break; case 7740: ret = 7741; break; case 7742: ret = 7743; break; case 7744: ret = 7745; break; case 7746: ret = 7747; break; case 7748: ret = 7749; break; case 7750: ret = 7751; break; case 7752: ret = 7753; break; case 7754: ret = 7755; break; case 7756: ret = 7757; break; case 7758: ret = 7759; break; case 7760: ret = 7761; break; case 7762: ret = 7763; break; case 7764: ret = 7765; break; case 7766: ret = 7767; break; case 7768: ret = 7769; break; case 7770: ret = 7771; break; case 7772: ret = 7773; break; case 7774: ret = 7775; break; case 7776: ret = 7777; break; case 7778: ret = 7779; break; case 7780: ret = 7781; break; case 7782: ret = 7783; break; case 7784: ret = 7785; break; case 7786: ret = 7787; break; case 7788: ret = 7789; break; case 7790: ret = 7791; break; case 7792: ret = 7793; break; case 7794: ret = 7795; break; case 7796: ret = 7797; break; case 7798: ret = 7799; break; case 7800: ret = 7801; break; case 7802: ret = 7803; break; case 7804: ret = 7805; break; case 7806: ret = 7807; break; case 7808: ret = 7809; break; case 7810: ret = 7811; break; case 7812: ret = 7813; break; case 7814: ret = 7815; break; case 7816: ret = 7817; break; case 7818: ret = 7819; break; case 7820: ret = 7821; break; case 7822: ret = 7823; break; case 7824: ret = 7825; break; case 7826: ret = 7827; break; case 7828: ret = 7829; break; case 7840: ret = 7841; break; case 7842: ret = 7843; break; case 7844: ret = 7845; break; case 7846: ret = 7847; break; case 7848: ret = 7849; break; case 7850: ret = 7851; break; case 7852: ret = 7853; break; case 7854: ret = 7855; break; case 7856: ret = 7857; break; case 7858: ret = 7859; break; case 7860: ret = 7861; break; case 7862: ret = 7863; break; case 7864: ret = 7865; break; case 7866: ret = 7867; break; case 7868: ret = 7869; break; case 7870: ret = 7871; break; case 7872: ret = 7873; break; case 7874: ret = 7875; break; case 7876: ret = 7877; break; case 7878: ret = 7879; break; case 7880: ret = 7881; break; case 7882: ret = 7883; break; case 7884: ret = 7885; break; case 7886: ret = 7887; break; case 7888: ret = 7889; break; case 7890: ret = 7891; break; case 7892: ret = 7893; break; case 7894: ret = 7895; break; case 7896: ret = 7897; break; case 7898: ret = 7899; break; case 7900: ret = 7901; break; case 7902: ret = 7903; break; case 7904: ret = 7905; break; case 7906: ret = 7907; break; case 7908: ret = 7909; break; case 7910: ret = 7911; break; case 7912: ret = 7913; break; case 7914: ret = 7915; break; case 7916: ret = 7917; break; case 7918: ret = 7919; break; case 7920: ret = 7921; break; case 7922: ret = 7923; break; case 7924: ret = 7925; break; case 7926: ret = 7927; break; case 7928: ret = 7929; break; case 7944: ret = 7936; break; case 7945: ret = 7937; break; case 7946: ret = 7938; break; case 7947: ret = 7939; break; case 7948: ret = 7940; break; case 7949: ret = 7941; break; case 7950: ret = 7942; break; case 7951: ret = 7943; break; case 7960: ret = 7952; break; case 7961: ret = 7953; break; case 7962: ret = 7954; break; case 7963: ret = 7955; break; case 7964: ret = 7956; break; case 7965: ret = 7957; break; case 7976: ret = 7968; break; case 7977: ret = 7969; break; case 7978: ret = 7970; break; case 7979: ret = 7971; break; case 7980: ret = 7972; break; case 7981: ret = 7973; break; case 7982: ret = 7974; break; case 7983: ret = 7975; break; case 7992: ret = 7984; break; case 7993: ret = 7985; break; case 7994: ret = 7986; break; case 7995: ret = 7987; break; case 7996: ret = 7988; break; case 7997: ret = 7989; break; case 7998: ret = 7990; break; case 7999: ret = 7991; break; case 8008: ret = 8000; break; case 8009: ret = 8001; break; case 8010: ret = 8002; break; case 8011: ret = 8003; break; case 8012: ret = 8004; break; case 8013: ret = 8005; break; case 8025: ret = 8017; break; case 8027: ret = 8019; break; case 8029: ret = 8021; break; case 8031: ret = 8023; break; case 8040: ret = 8032; break; case 8041: ret = 8033; break; case 8042: ret = 8034; break; case 8043: ret = 8035; break; case 8044: ret = 8036; break; case 8045: ret = 8037; break; case 8046: ret = 8038; break; case 8047: ret = 8039; break; case 8072: ret = 8064; break; case 8073: ret = 8065; break; case 8074: ret = 8066; break; case 8075: ret = 8067; break; case 8076: ret = 8068; break; case 8077: ret = 8069; break; case 8078: ret = 8070; break; case 8079: ret = 8071; break; case 8088: ret = 8080; break; case 8089: ret = 8081; break; case 8090: ret = 8082; break; case 8091: ret = 8083; break; case 8092: ret = 8084; break; case 8093: ret = 8085; break; case 8094: ret = 8086; break; case 8095: ret = 8087; break; case 8104: ret = 8096; break; case 8105: ret = 8097; break; case 8106: ret = 8098; break; case 8107: ret = 8099; break; case 8108: ret = 8100; break; case 8109: ret = 8101; break; case 8110: ret = 8102; break; case 8111: ret = 8103; break; case 8120: ret = 8112; break; case 8121: ret = 8113; break; case 8122: ret = 8048; break; case 8123: ret = 8049; break; case 8124: ret = 8115; break; case 8136: ret = 8050; break; case 8137: ret = 8051; break; case 8138: ret = 8052; break; case 8139: ret = 8053; break; case 8140: ret = 8131; break; case 8152: ret = 8144; break; case 8153: ret = 8145; break; case 8154: ret = 8054; break; case 8155: ret = 8055; break; case 8168: ret = 8160; break; case 8169: ret = 8161; break; case 8170: ret = 8058; break; case 8171: ret = 8059; break; case 8172: ret = 8165; break; case 8184: ret = 8056; break; case 8185: ret = 8057; break; case 8186: ret = 8060; break; case 8187: ret = 8061; break; case 8188: ret = 8179; break; case 8544: ret = 8560; break; case 8545: ret = 8561; break; case 8546: ret = 8562; break; case 8547: ret = 8563; break; case 8548: ret = 8564; break; case 8549: ret = 8565; break; case 8550: ret = 8566; break; case 8551: ret = 8567; break; case 8552: ret = 8568; break; case 8553: ret = 8569; break; case 8554: ret = 8570; break; case 8555: ret = 8571; break; case 8556: ret = 8572; break; case 8557: ret = 8573; break; case 8558: ret = 8574; break; case 8559: ret = 8575; break; case 9398: ret = 9424; break; case 9399: ret = 9425; break; case 9400: ret = 9426; break; case 9401: ret = 9427; break; case 9402: ret = 9428; break; case 9403: ret = 9429; break; case 9404: ret = 9430; break; case 9405: ret = 9431; break; case 9406: ret = 9432; break; case 9407: ret = 9433; break; case 9408: ret = 9434; break; case 9409: ret = 9435; break; case 9410: ret = 9436; break; case 9411: ret = 9437; break; case 9412: ret = 9438; break; case 9413: ret = 9439; break; case 9414: ret = 9440; break; case 9415: ret = 9441; break; case 9416: ret = 9442; break; case 9417: ret = 9443; break; case 9418: ret = 9444; break; case 9419: ret = 9445; break; case 9420: ret = 9446; break; case 9421: ret = 9447; break; case 9422: ret = 9448; break; case 9423: ret = 9449; break; case 65313: ret = 65345; break; case 65314: ret = 65346; break; case 65315: ret = 65347; break; case 65316: ret = 65348; break; case 65317: ret = 65349; break; case 65318: ret = 65350; break; case 65319: ret = 65351; break; case 65320: ret = 65352; break; case 65321: ret = 65353; break; case 65322: ret = 65354; break; case 65323: ret = 65355; break; case 65324: ret = 65356; break; case 65325: ret = 65357; break; case 65326: ret = 65358; break; case 65327: ret = 65359; break; case 65328: ret = 65360; break; case 65329: ret = 65361; break; case 65330: ret = 65362; break; case 65331: ret = 65363; break; case 65332: ret = 65364; break; case 65333: ret = 65365; break; case 65334: ret = 65366; break; case 65335: ret = 65367; break; case 65336: ret = 65368; break; case 65337: ret = 65369; break; case 65338: ret = 65370; break; } return (char) ret; } return Character.toLowerCase(c); } /** Convert a String to title case. */ public static String toTitleCase(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { sb.append(CaseMgr.toTitleCase(s.charAt(i))); } return sb.toString(); } /** Convert a String to upper case. */ public static String toUpperCase(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { sb.append(CaseMgr.toUpperCase(s.charAt(i))); } return sb.toString(); } /** Convert a String to lower case. */ public static String toLowerCase(String s) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { sb.append(CaseMgr.toLowerCase(s.charAt(i))); } return sb.toString(); } /** Convert a character to title case. */ public static char toTitleCase(char c) { if (java_1_0) { int ret = (int) toUpperCase(c); switch (c) { case 452: ret = 453; break; case 453: ret = 453; break; case 454: ret = 453; break; case 455: ret = 456; break; case 456: ret = 456; break; case 457: ret = 456; break; case 458: ret = 459; break; case 459: ret = 459; break; case 460: ret = 459; break; case 497: ret = 498; break; case 498: ret = 498; break; case 499: ret = 498; break; } return (char) ret; } return Character.toTitleCase(c); } /** * Duplicates the regionMatches routine of String -- but makes use of the * definitions of upper, lower, and title case in this class when ignoreCase * is set. */ public static boolean regionMatches(StringLike s1, boolean ign, int i1, StringLike s2, int i2, int i3) { int itot = i2 + i3; if (itot > s2.length() || i1 + i3 > s1.length()) { return false; } if (!ign) { for (int i = i2; i < itot; i++) { if (s2.charAt(i) != s1.charAt(i1++)) { return false; } } } else { for (int i = i2; i < itot; i++) { if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++))) { return false; } } } return true; } /** * Duplicates the regionMatches routine of String -- but makes use of the * definitions of upper, lower, and title case in this class when ignoreCase * is set. */ public static boolean regionMatches(String s1, boolean ign, int i1, StringLike s2, int i2, int i3) { int itot = i2 + i3; if (itot > s2.length() || i1 + i3 > s1.length()) { return false; } if (!ign) { for (int i = i2; i < itot; i++) { if (s2.charAt(i) != s1.charAt(i1++)) { return false; } } } else { for (int i = i2; i < itot; i++) { if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++))) { return false; } } } return true; } /** * Duplicates the regionMatches routine of String -- but makes use of the * definitions of upper, lower, and title case in this class when ignoreCase * is set. */ public static boolean regionMatches(StringLike s1, boolean ign, int i1, String s2, int i2, int i3) { int itot = i2 + i3; if (itot > s2.length() || i1 + i3 > s1.length()) { return false; } if (!ign) { for (int i = i2; i < itot; i++) { if (s2.charAt(i) != s1.charAt(i1++)) { return false; } } } else { for (int i = i2; i < itot; i++) { if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++))) { return false; } } } return true; } /** * Duplicates the regionMatches routine of String -- but makes use of the * definitions of upper, lower, and title case in this class when ignoreCase * is set. */ public static boolean regionMatches(String s1, boolean ign, int i1, String s2, int i2, int i3) { int itot = i2 + i3; if (itot > s2.length() || i1 + i3 > s1.length()) { return false; } if (!ign) { for (int i = i2; i < itot; i++) { if (s2.charAt(i) != s1.charAt(i1++)) { return false; } } } else { for (int i = i2; i < itot; i++) { if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++))) { return false; } } } return true; } }