Merge
This commit is contained in:
commit
ebbe02d227
@ -136,101 +136,179 @@ class CharacterData00 extends CharacterData {
|
||||
if ((val & $$maskLowerCase) != 0) {
|
||||
if ((val & $$maskCaseOffset) == $$maskCaseOffset) {
|
||||
switch(ch) {
|
||||
// map the offset overflow chars
|
||||
case 0x0130 : mapChar = 0x0069; break;
|
||||
case 0x2126 : mapChar = 0x03C9; break;
|
||||
case 0x212A : mapChar = 0x006B; break;
|
||||
case 0x212B : mapChar = 0x00E5; break;
|
||||
// map the titlecase chars with both a 1:M uppercase map
|
||||
// and a lowercase map
|
||||
case 0x1F88 : mapChar = 0x1F80; break;
|
||||
case 0x1F89 : mapChar = 0x1F81; break;
|
||||
case 0x1F8A : mapChar = 0x1F82; break;
|
||||
case 0x1F8B : mapChar = 0x1F83; break;
|
||||
case 0x1F8C : mapChar = 0x1F84; break;
|
||||
case 0x1F8D : mapChar = 0x1F85; break;
|
||||
case 0x1F8E : mapChar = 0x1F86; break;
|
||||
case 0x1F8F : mapChar = 0x1F87; break;
|
||||
case 0x1F98 : mapChar = 0x1F90; break;
|
||||
case 0x1F99 : mapChar = 0x1F91; break;
|
||||
case 0x1F9A : mapChar = 0x1F92; break;
|
||||
case 0x1F9B : mapChar = 0x1F93; break;
|
||||
case 0x1F9C : mapChar = 0x1F94; break;
|
||||
case 0x1F9D : mapChar = 0x1F95; break;
|
||||
case 0x1F9E : mapChar = 0x1F96; break;
|
||||
case 0x1F9F : mapChar = 0x1F97; break;
|
||||
case 0x1FA8 : mapChar = 0x1FA0; break;
|
||||
case 0x1FA9 : mapChar = 0x1FA1; break;
|
||||
case 0x1FAA : mapChar = 0x1FA2; break;
|
||||
case 0x1FAB : mapChar = 0x1FA3; break;
|
||||
case 0x1FAC : mapChar = 0x1FA4; break;
|
||||
case 0x1FAD : mapChar = 0x1FA5; break;
|
||||
case 0x1FAE : mapChar = 0x1FA6; break;
|
||||
case 0x1FAF : mapChar = 0x1FA7; break;
|
||||
case 0x1FBC : mapChar = 0x1FB3; break;
|
||||
case 0x1FCC : mapChar = 0x1FC3; break;
|
||||
case 0x1FFC : mapChar = 0x1FF3; break;
|
||||
|
||||
case 0x023A : mapChar = 0x2C65; break;
|
||||
case 0x023E : mapChar = 0x2C66; break;
|
||||
case 0x10A0 : mapChar = 0x2D00; break;
|
||||
case 0x10A1 : mapChar = 0x2D01; break;
|
||||
case 0x10A2 : mapChar = 0x2D02; break;
|
||||
case 0x10A3 : mapChar = 0x2D03; break;
|
||||
case 0x10A4 : mapChar = 0x2D04; break;
|
||||
case 0x10A5 : mapChar = 0x2D05; break;
|
||||
case 0x10A6 : mapChar = 0x2D06; break;
|
||||
case 0x10A7 : mapChar = 0x2D07; break;
|
||||
case 0x10A8 : mapChar = 0x2D08; break;
|
||||
case 0x10A9 : mapChar = 0x2D09; break;
|
||||
case 0x10AA : mapChar = 0x2D0A; break;
|
||||
case 0x10AB : mapChar = 0x2D0B; break;
|
||||
case 0x10AC : mapChar = 0x2D0C; break;
|
||||
case 0x10AD : mapChar = 0x2D0D; break;
|
||||
case 0x10AE : mapChar = 0x2D0E; break;
|
||||
case 0x10AF : mapChar = 0x2D0F; break;
|
||||
case 0x10B0 : mapChar = 0x2D10; break;
|
||||
case 0x10B1 : mapChar = 0x2D11; break;
|
||||
case 0x10B2 : mapChar = 0x2D12; break;
|
||||
case 0x10B3 : mapChar = 0x2D13; break;
|
||||
case 0x10B4 : mapChar = 0x2D14; break;
|
||||
case 0x10B5 : mapChar = 0x2D15; break;
|
||||
case 0x10B6 : mapChar = 0x2D16; break;
|
||||
case 0x10B7 : mapChar = 0x2D17; break;
|
||||
case 0x10B8 : mapChar = 0x2D18; break;
|
||||
case 0x10B9 : mapChar = 0x2D19; break;
|
||||
case 0x10BA : mapChar = 0x2D1A; break;
|
||||
case 0x10BB : mapChar = 0x2D1B; break;
|
||||
case 0x10BC : mapChar = 0x2D1C; break;
|
||||
case 0x10BD : mapChar = 0x2D1D; break;
|
||||
case 0x10BE : mapChar = 0x2D1E; break;
|
||||
case 0x10BF : mapChar = 0x2D1F; break;
|
||||
case 0x10C0 : mapChar = 0x2D20; break;
|
||||
case 0x10C1 : mapChar = 0x2D21; break;
|
||||
case 0x10C2 : mapChar = 0x2D22; break;
|
||||
case 0x10C3 : mapChar = 0x2D23; break;
|
||||
case 0x10C4 : mapChar = 0x2D24; break;
|
||||
case 0x10C5 : mapChar = 0x2D25; break;
|
||||
case 0x10C7 : mapChar = 0x2D27; break;
|
||||
case 0x10CD : mapChar = 0x2D2D; break;
|
||||
case 0x1E9E : mapChar = 0x00DF; break;
|
||||
case 0x2C62 : mapChar = 0x026B; break;
|
||||
case 0x2C63 : mapChar = 0x1D7D; break;
|
||||
case 0x2C64 : mapChar = 0x027D; break;
|
||||
case 0x2C6D : mapChar = 0x0251; break;
|
||||
case 0x2C6E : mapChar = 0x0271; break;
|
||||
case 0x2C6F : mapChar = 0x0250; break;
|
||||
case 0x2C70 : mapChar = 0x0252; break;
|
||||
case 0x2C7E : mapChar = 0x023F; break;
|
||||
case 0x2C7F : mapChar = 0x0240; break;
|
||||
case 0xA77D : mapChar = 0x1D79; break;
|
||||
case 0xA78D : mapChar = 0x0265; break;
|
||||
case 0xA7AA : mapChar = 0x0266; break;
|
||||
case 0xA7AB : mapChar = 0x025C; break;
|
||||
case 0xA7AC : mapChar = 0x0261; break;
|
||||
case 0xA7AD : mapChar = 0x026C; break;
|
||||
case 0xA7B0 : mapChar = 0x029E; break;
|
||||
case 0xA7B1 : mapChar = 0x0287; break;
|
||||
case 0x0130: mapChar = 0x0069; break;
|
||||
case 0x023A: mapChar = 0x2C65; break;
|
||||
case 0x023E: mapChar = 0x2C66; break;
|
||||
case 0x10A0: mapChar = 0x2D00; break;
|
||||
case 0x10A1: mapChar = 0x2D01; break;
|
||||
case 0x10A2: mapChar = 0x2D02; break;
|
||||
case 0x10A3: mapChar = 0x2D03; break;
|
||||
case 0x10A4: mapChar = 0x2D04; break;
|
||||
case 0x10A5: mapChar = 0x2D05; break;
|
||||
case 0x10A6: mapChar = 0x2D06; break;
|
||||
case 0x10A7: mapChar = 0x2D07; break;
|
||||
case 0x10A8: mapChar = 0x2D08; break;
|
||||
case 0x10A9: mapChar = 0x2D09; break;
|
||||
case 0x10AA: mapChar = 0x2D0A; break;
|
||||
case 0x10AB: mapChar = 0x2D0B; break;
|
||||
case 0x10AC: mapChar = 0x2D0C; break;
|
||||
case 0x10AD: mapChar = 0x2D0D; break;
|
||||
case 0x10AE: mapChar = 0x2D0E; break;
|
||||
case 0x10AF: mapChar = 0x2D0F; break;
|
||||
case 0x10B0: mapChar = 0x2D10; break;
|
||||
case 0x10B1: mapChar = 0x2D11; break;
|
||||
case 0x10B2: mapChar = 0x2D12; break;
|
||||
case 0x10B3: mapChar = 0x2D13; break;
|
||||
case 0x10B4: mapChar = 0x2D14; break;
|
||||
case 0x10B5: mapChar = 0x2D15; break;
|
||||
case 0x10B6: mapChar = 0x2D16; break;
|
||||
case 0x10B7: mapChar = 0x2D17; break;
|
||||
case 0x10B8: mapChar = 0x2D18; break;
|
||||
case 0x10B9: mapChar = 0x2D19; break;
|
||||
case 0x10BA: mapChar = 0x2D1A; break;
|
||||
case 0x10BB: mapChar = 0x2D1B; break;
|
||||
case 0x10BC: mapChar = 0x2D1C; break;
|
||||
case 0x10BD: mapChar = 0x2D1D; break;
|
||||
case 0x10BE: mapChar = 0x2D1E; break;
|
||||
case 0x10BF: mapChar = 0x2D1F; break;
|
||||
case 0x10C0: mapChar = 0x2D20; break;
|
||||
case 0x10C1: mapChar = 0x2D21; break;
|
||||
case 0x10C2: mapChar = 0x2D22; break;
|
||||
case 0x10C3: mapChar = 0x2D23; break;
|
||||
case 0x10C4: mapChar = 0x2D24; break;
|
||||
case 0x10C5: mapChar = 0x2D25; break;
|
||||
case 0x10C7: mapChar = 0x2D27; break;
|
||||
case 0x10CD: mapChar = 0x2D2D; break;
|
||||
case 0x13A0: mapChar = 0xAB70; break;
|
||||
case 0x13A1: mapChar = 0xAB71; break;
|
||||
case 0x13A2: mapChar = 0xAB72; break;
|
||||
case 0x13A3: mapChar = 0xAB73; break;
|
||||
case 0x13A4: mapChar = 0xAB74; break;
|
||||
case 0x13A5: mapChar = 0xAB75; break;
|
||||
case 0x13A6: mapChar = 0xAB76; break;
|
||||
case 0x13A7: mapChar = 0xAB77; break;
|
||||
case 0x13A8: mapChar = 0xAB78; break;
|
||||
case 0x13A9: mapChar = 0xAB79; break;
|
||||
case 0x13AA: mapChar = 0xAB7A; break;
|
||||
case 0x13AB: mapChar = 0xAB7B; break;
|
||||
case 0x13AC: mapChar = 0xAB7C; break;
|
||||
case 0x13AD: mapChar = 0xAB7D; break;
|
||||
case 0x13AE: mapChar = 0xAB7E; break;
|
||||
case 0x13AF: mapChar = 0xAB7F; break;
|
||||
case 0x13B0: mapChar = 0xAB80; break;
|
||||
case 0x13B1: mapChar = 0xAB81; break;
|
||||
case 0x13B2: mapChar = 0xAB82; break;
|
||||
case 0x13B3: mapChar = 0xAB83; break;
|
||||
case 0x13B4: mapChar = 0xAB84; break;
|
||||
case 0x13B5: mapChar = 0xAB85; break;
|
||||
case 0x13B6: mapChar = 0xAB86; break;
|
||||
case 0x13B7: mapChar = 0xAB87; break;
|
||||
case 0x13B8: mapChar = 0xAB88; break;
|
||||
case 0x13B9: mapChar = 0xAB89; break;
|
||||
case 0x13BA: mapChar = 0xAB8A; break;
|
||||
case 0x13BB: mapChar = 0xAB8B; break;
|
||||
case 0x13BC: mapChar = 0xAB8C; break;
|
||||
case 0x13BD: mapChar = 0xAB8D; break;
|
||||
case 0x13BE: mapChar = 0xAB8E; break;
|
||||
case 0x13BF: mapChar = 0xAB8F; break;
|
||||
case 0x13C0: mapChar = 0xAB90; break;
|
||||
case 0x13C1: mapChar = 0xAB91; break;
|
||||
case 0x13C2: mapChar = 0xAB92; break;
|
||||
case 0x13C3: mapChar = 0xAB93; break;
|
||||
case 0x13C4: mapChar = 0xAB94; break;
|
||||
case 0x13C5: mapChar = 0xAB95; break;
|
||||
case 0x13C6: mapChar = 0xAB96; break;
|
||||
case 0x13C7: mapChar = 0xAB97; break;
|
||||
case 0x13C8: mapChar = 0xAB98; break;
|
||||
case 0x13C9: mapChar = 0xAB99; break;
|
||||
case 0x13CA: mapChar = 0xAB9A; break;
|
||||
case 0x13CB: mapChar = 0xAB9B; break;
|
||||
case 0x13CC: mapChar = 0xAB9C; break;
|
||||
case 0x13CD: mapChar = 0xAB9D; break;
|
||||
case 0x13CE: mapChar = 0xAB9E; break;
|
||||
case 0x13CF: mapChar = 0xAB9F; break;
|
||||
case 0x13D0: mapChar = 0xABA0; break;
|
||||
case 0x13D1: mapChar = 0xABA1; break;
|
||||
case 0x13D2: mapChar = 0xABA2; break;
|
||||
case 0x13D3: mapChar = 0xABA3; break;
|
||||
case 0x13D4: mapChar = 0xABA4; break;
|
||||
case 0x13D5: mapChar = 0xABA5; break;
|
||||
case 0x13D6: mapChar = 0xABA6; break;
|
||||
case 0x13D7: mapChar = 0xABA7; break;
|
||||
case 0x13D8: mapChar = 0xABA8; break;
|
||||
case 0x13D9: mapChar = 0xABA9; break;
|
||||
case 0x13DA: mapChar = 0xABAA; break;
|
||||
case 0x13DB: mapChar = 0xABAB; break;
|
||||
case 0x13DC: mapChar = 0xABAC; break;
|
||||
case 0x13DD: mapChar = 0xABAD; break;
|
||||
case 0x13DE: mapChar = 0xABAE; break;
|
||||
case 0x13DF: mapChar = 0xABAF; break;
|
||||
case 0x13E0: mapChar = 0xABB0; break;
|
||||
case 0x13E1: mapChar = 0xABB1; break;
|
||||
case 0x13E2: mapChar = 0xABB2; break;
|
||||
case 0x13E3: mapChar = 0xABB3; break;
|
||||
case 0x13E4: mapChar = 0xABB4; break;
|
||||
case 0x13E5: mapChar = 0xABB5; break;
|
||||
case 0x13E6: mapChar = 0xABB6; break;
|
||||
case 0x13E7: mapChar = 0xABB7; break;
|
||||
case 0x13E8: mapChar = 0xABB8; break;
|
||||
case 0x13E9: mapChar = 0xABB9; break;
|
||||
case 0x13EA: mapChar = 0xABBA; break;
|
||||
case 0x13EB: mapChar = 0xABBB; break;
|
||||
case 0x13EC: mapChar = 0xABBC; break;
|
||||
case 0x13ED: mapChar = 0xABBD; break;
|
||||
case 0x13EE: mapChar = 0xABBE; break;
|
||||
case 0x13EF: mapChar = 0xABBF; break;
|
||||
case 0x1E9E: mapChar = 0x00DF; break;
|
||||
case 0x1F88: mapChar = 0x1F80; break;
|
||||
case 0x1F89: mapChar = 0x1F81; break;
|
||||
case 0x1F8A: mapChar = 0x1F82; break;
|
||||
case 0x1F8B: mapChar = 0x1F83; break;
|
||||
case 0x1F8C: mapChar = 0x1F84; break;
|
||||
case 0x1F8D: mapChar = 0x1F85; break;
|
||||
case 0x1F8E: mapChar = 0x1F86; break;
|
||||
case 0x1F8F: mapChar = 0x1F87; break;
|
||||
case 0x1F98: mapChar = 0x1F90; break;
|
||||
case 0x1F99: mapChar = 0x1F91; break;
|
||||
case 0x1F9A: mapChar = 0x1F92; break;
|
||||
case 0x1F9B: mapChar = 0x1F93; break;
|
||||
case 0x1F9C: mapChar = 0x1F94; break;
|
||||
case 0x1F9D: mapChar = 0x1F95; break;
|
||||
case 0x1F9E: mapChar = 0x1F96; break;
|
||||
case 0x1F9F: mapChar = 0x1F97; break;
|
||||
case 0x1FA8: mapChar = 0x1FA0; break;
|
||||
case 0x1FA9: mapChar = 0x1FA1; break;
|
||||
case 0x1FAA: mapChar = 0x1FA2; break;
|
||||
case 0x1FAB: mapChar = 0x1FA3; break;
|
||||
case 0x1FAC: mapChar = 0x1FA4; break;
|
||||
case 0x1FAD: mapChar = 0x1FA5; break;
|
||||
case 0x1FAE: mapChar = 0x1FA6; break;
|
||||
case 0x1FAF: mapChar = 0x1FA7; break;
|
||||
case 0x1FBC: mapChar = 0x1FB3; break;
|
||||
case 0x1FCC: mapChar = 0x1FC3; break;
|
||||
case 0x1FFC: mapChar = 0x1FF3; break;
|
||||
case 0x2126: mapChar = 0x03C9; break;
|
||||
case 0x212A: mapChar = 0x006B; break;
|
||||
case 0x212B: mapChar = 0x00E5; break;
|
||||
case 0x2C62: mapChar = 0x026B; break;
|
||||
case 0x2C63: mapChar = 0x1D7D; break;
|
||||
case 0x2C64: mapChar = 0x027D; break;
|
||||
case 0x2C6D: mapChar = 0x0251; break;
|
||||
case 0x2C6E: mapChar = 0x0271; break;
|
||||
case 0x2C6F: mapChar = 0x0250; break;
|
||||
case 0x2C70: mapChar = 0x0252; break;
|
||||
case 0x2C7E: mapChar = 0x023F; break;
|
||||
case 0x2C7F: mapChar = 0x0240; break;
|
||||
case 0xA77D: mapChar = 0x1D79; break;
|
||||
case 0xA78D: mapChar = 0x0265; break;
|
||||
case 0xA7AA: mapChar = 0x0266; break;
|
||||
case 0xA7AB: mapChar = 0x025C; break;
|
||||
case 0xA7AC: mapChar = 0x0261; break;
|
||||
case 0xA7AD: mapChar = 0x026C; break;
|
||||
case 0xA7B0: mapChar = 0x029E; break;
|
||||
case 0xA7B1: mapChar = 0x0287; break;
|
||||
case 0xA7B2: mapChar = 0x029D; break;
|
||||
case 0xA7B3: mapChar = 0xAB53; break;
|
||||
// default mapChar is already set, so no
|
||||
// need to redo it here.
|
||||
// default : mapChar = ch;
|
||||
@ -251,98 +329,176 @@ class CharacterData00 extends CharacterData {
|
||||
if ((val & $$maskUpperCase) != 0) {
|
||||
if ((val & $$maskCaseOffset) == $$maskCaseOffset) {
|
||||
switch(ch) {
|
||||
// map chars with overflow offsets
|
||||
case 0x00B5 : mapChar = 0x039C; break;
|
||||
case 0x017F : mapChar = 0x0053; break;
|
||||
case 0x1FBE : mapChar = 0x0399; break;
|
||||
// map char that have both a 1:1 and 1:M map
|
||||
case 0x1F80 : mapChar = 0x1F88; break;
|
||||
case 0x1F81 : mapChar = 0x1F89; break;
|
||||
case 0x1F82 : mapChar = 0x1F8A; break;
|
||||
case 0x1F83 : mapChar = 0x1F8B; break;
|
||||
case 0x1F84 : mapChar = 0x1F8C; break;
|
||||
case 0x1F85 : mapChar = 0x1F8D; break;
|
||||
case 0x1F86 : mapChar = 0x1F8E; break;
|
||||
case 0x1F87 : mapChar = 0x1F8F; break;
|
||||
case 0x1F90 : mapChar = 0x1F98; break;
|
||||
case 0x1F91 : mapChar = 0x1F99; break;
|
||||
case 0x1F92 : mapChar = 0x1F9A; break;
|
||||
case 0x1F93 : mapChar = 0x1F9B; break;
|
||||
case 0x1F94 : mapChar = 0x1F9C; break;
|
||||
case 0x1F95 : mapChar = 0x1F9D; break;
|
||||
case 0x1F96 : mapChar = 0x1F9E; break;
|
||||
case 0x1F97 : mapChar = 0x1F9F; break;
|
||||
case 0x1FA0 : mapChar = 0x1FA8; break;
|
||||
case 0x1FA1 : mapChar = 0x1FA9; break;
|
||||
case 0x1FA2 : mapChar = 0x1FAA; break;
|
||||
case 0x1FA3 : mapChar = 0x1FAB; break;
|
||||
case 0x1FA4 : mapChar = 0x1FAC; break;
|
||||
case 0x1FA5 : mapChar = 0x1FAD; break;
|
||||
case 0x1FA6 : mapChar = 0x1FAE; break;
|
||||
case 0x1FA7 : mapChar = 0x1FAF; break;
|
||||
case 0x1FB3 : mapChar = 0x1FBC; break;
|
||||
case 0x1FC3 : mapChar = 0x1FCC; break;
|
||||
case 0x1FF3 : mapChar = 0x1FFC; break;
|
||||
|
||||
case 0x023F : mapChar = 0x2C7E; break;
|
||||
case 0x0240 : mapChar = 0x2C7F; break;
|
||||
case 0x0250 : mapChar = 0x2C6F; break;
|
||||
case 0x0251 : mapChar = 0x2C6D; break;
|
||||
case 0x0252 : mapChar = 0x2C70; break;
|
||||
case 0x025C : mapChar = 0xA7AB; break;
|
||||
case 0x0261 : mapChar = 0xA7AC; break;
|
||||
case 0x0265 : mapChar = 0xA78D; break;
|
||||
case 0x0266 : mapChar = 0xA7AA; break;
|
||||
case 0x026B : mapChar = 0x2C62; break;
|
||||
case 0x026C : mapChar = 0xA7AD; break;
|
||||
case 0x0271 : mapChar = 0x2C6E; break;
|
||||
case 0x0287 : mapChar = 0xA7B1; break;
|
||||
case 0x029E : mapChar = 0xA7B0; break;
|
||||
case 0x027D : mapChar = 0x2C64; break;
|
||||
case 0x1D79 : mapChar = 0xA77D; break;
|
||||
case 0x1D7D : mapChar = 0x2C63; break;
|
||||
case 0x2C65 : mapChar = 0x023A; break;
|
||||
case 0x2C66 : mapChar = 0x023E; break;
|
||||
case 0x2D00 : mapChar = 0x10A0; break;
|
||||
case 0x2D01 : mapChar = 0x10A1; break;
|
||||
case 0x2D02 : mapChar = 0x10A2; break;
|
||||
case 0x2D03 : mapChar = 0x10A3; break;
|
||||
case 0x2D04 : mapChar = 0x10A4; break;
|
||||
case 0x2D05 : mapChar = 0x10A5; break;
|
||||
case 0x2D06 : mapChar = 0x10A6; break;
|
||||
case 0x2D07 : mapChar = 0x10A7; break;
|
||||
case 0x2D08 : mapChar = 0x10A8; break;
|
||||
case 0x2D09 : mapChar = 0x10A9; break;
|
||||
case 0x2D0A : mapChar = 0x10AA; break;
|
||||
case 0x2D0B : mapChar = 0x10AB; break;
|
||||
case 0x2D0C : mapChar = 0x10AC; break;
|
||||
case 0x2D0D : mapChar = 0x10AD; break;
|
||||
case 0x2D0E : mapChar = 0x10AE; break;
|
||||
case 0x2D0F : mapChar = 0x10AF; break;
|
||||
case 0x2D10 : mapChar = 0x10B0; break;
|
||||
case 0x2D11 : mapChar = 0x10B1; break;
|
||||
case 0x2D12 : mapChar = 0x10B2; break;
|
||||
case 0x2D13 : mapChar = 0x10B3; break;
|
||||
case 0x2D14 : mapChar = 0x10B4; break;
|
||||
case 0x2D15 : mapChar = 0x10B5; break;
|
||||
case 0x2D16 : mapChar = 0x10B6; break;
|
||||
case 0x2D17 : mapChar = 0x10B7; break;
|
||||
case 0x2D18 : mapChar = 0x10B8; break;
|
||||
case 0x2D19 : mapChar = 0x10B9; break;
|
||||
case 0x2D1A : mapChar = 0x10BA; break;
|
||||
case 0x2D1B : mapChar = 0x10BB; break;
|
||||
case 0x2D1C : mapChar = 0x10BC; break;
|
||||
case 0x2D1D : mapChar = 0x10BD; break;
|
||||
case 0x2D1E : mapChar = 0x10BE; break;
|
||||
case 0x2D1F : mapChar = 0x10BF; break;
|
||||
case 0x2D20 : mapChar = 0x10C0; break;
|
||||
case 0x2D21 : mapChar = 0x10C1; break;
|
||||
case 0x2D22 : mapChar = 0x10C2; break;
|
||||
case 0x2D23 : mapChar = 0x10C3; break;
|
||||
case 0x2D24 : mapChar = 0x10C4; break;
|
||||
case 0x2D25 : mapChar = 0x10C5; break;
|
||||
case 0x2D27 : mapChar = 0x10C7; break;
|
||||
case 0x2D2D : mapChar = 0x10CD; break;
|
||||
case 0x017F: mapChar = 0x0053; break;
|
||||
case 0x023F: mapChar = 0x2C7E; break;
|
||||
case 0x0240: mapChar = 0x2C7F; break;
|
||||
case 0x0250: mapChar = 0x2C6F; break;
|
||||
case 0x0251: mapChar = 0x2C6D; break;
|
||||
case 0x0252: mapChar = 0x2C70; break;
|
||||
case 0x025C: mapChar = 0xA7AB; break;
|
||||
case 0x0261: mapChar = 0xA7AC; break;
|
||||
case 0x0265: mapChar = 0xA78D; break;
|
||||
case 0x0266: mapChar = 0xA7AA; break;
|
||||
case 0x026B: mapChar = 0x2C62; break;
|
||||
case 0x026C: mapChar = 0xA7AD; break;
|
||||
case 0x0271: mapChar = 0x2C6E; break;
|
||||
case 0x027D: mapChar = 0x2C64; break;
|
||||
case 0x0287: mapChar = 0xA7B1; break;
|
||||
case 0x029D: mapChar = 0xA7B2; break;
|
||||
case 0x029E: mapChar = 0xA7B0; break;
|
||||
case 0x1D79: mapChar = 0xA77D; break;
|
||||
case 0x1D7D: mapChar = 0x2C63; break;
|
||||
case 0x1F80: mapChar = 0x1F88; break;
|
||||
case 0x1F81: mapChar = 0x1F89; break;
|
||||
case 0x1F82: mapChar = 0x1F8A; break;
|
||||
case 0x1F83: mapChar = 0x1F8B; break;
|
||||
case 0x1F84: mapChar = 0x1F8C; break;
|
||||
case 0x1F85: mapChar = 0x1F8D; break;
|
||||
case 0x1F86: mapChar = 0x1F8E; break;
|
||||
case 0x1F87: mapChar = 0x1F8F; break;
|
||||
case 0x1F90: mapChar = 0x1F98; break;
|
||||
case 0x1F91: mapChar = 0x1F99; break;
|
||||
case 0x1F92: mapChar = 0x1F9A; break;
|
||||
case 0x1F93: mapChar = 0x1F9B; break;
|
||||
case 0x1F94: mapChar = 0x1F9C; break;
|
||||
case 0x1F95: mapChar = 0x1F9D; break;
|
||||
case 0x1F96: mapChar = 0x1F9E; break;
|
||||
case 0x1F97: mapChar = 0x1F9F; break;
|
||||
case 0x1FA0: mapChar = 0x1FA8; break;
|
||||
case 0x1FA1: mapChar = 0x1FA9; break;
|
||||
case 0x1FA2: mapChar = 0x1FAA; break;
|
||||
case 0x1FA3: mapChar = 0x1FAB; break;
|
||||
case 0x1FA4: mapChar = 0x1FAC; break;
|
||||
case 0x1FA5: mapChar = 0x1FAD; break;
|
||||
case 0x1FA6: mapChar = 0x1FAE; break;
|
||||
case 0x1FA7: mapChar = 0x1FAF; break;
|
||||
case 0x1FB3: mapChar = 0x1FBC; break;
|
||||
case 0x1FBE: mapChar = 0x0399; break;
|
||||
case 0x1FC3: mapChar = 0x1FCC; break;
|
||||
case 0x1FF3: mapChar = 0x1FFC; break;
|
||||
case 0x2C65: mapChar = 0x023A; break;
|
||||
case 0x2C66: mapChar = 0x023E; break;
|
||||
case 0x2D00: mapChar = 0x10A0; break;
|
||||
case 0x2D01: mapChar = 0x10A1; break;
|
||||
case 0x2D02: mapChar = 0x10A2; break;
|
||||
case 0x2D03: mapChar = 0x10A3; break;
|
||||
case 0x2D04: mapChar = 0x10A4; break;
|
||||
case 0x2D05: mapChar = 0x10A5; break;
|
||||
case 0x2D06: mapChar = 0x10A6; break;
|
||||
case 0x2D07: mapChar = 0x10A7; break;
|
||||
case 0x2D08: mapChar = 0x10A8; break;
|
||||
case 0x2D09: mapChar = 0x10A9; break;
|
||||
case 0x2D0A: mapChar = 0x10AA; break;
|
||||
case 0x2D0B: mapChar = 0x10AB; break;
|
||||
case 0x2D0C: mapChar = 0x10AC; break;
|
||||
case 0x2D0D: mapChar = 0x10AD; break;
|
||||
case 0x2D0E: mapChar = 0x10AE; break;
|
||||
case 0x2D0F: mapChar = 0x10AF; break;
|
||||
case 0x2D10: mapChar = 0x10B0; break;
|
||||
case 0x2D11: mapChar = 0x10B1; break;
|
||||
case 0x2D12: mapChar = 0x10B2; break;
|
||||
case 0x2D13: mapChar = 0x10B3; break;
|
||||
case 0x2D14: mapChar = 0x10B4; break;
|
||||
case 0x2D15: mapChar = 0x10B5; break;
|
||||
case 0x2D16: mapChar = 0x10B6; break;
|
||||
case 0x2D17: mapChar = 0x10B7; break;
|
||||
case 0x2D18: mapChar = 0x10B8; break;
|
||||
case 0x2D19: mapChar = 0x10B9; break;
|
||||
case 0x2D1A: mapChar = 0x10BA; break;
|
||||
case 0x2D1B: mapChar = 0x10BB; break;
|
||||
case 0x2D1C: mapChar = 0x10BC; break;
|
||||
case 0x2D1D: mapChar = 0x10BD; break;
|
||||
case 0x2D1E: mapChar = 0x10BE; break;
|
||||
case 0x2D1F: mapChar = 0x10BF; break;
|
||||
case 0x2D20: mapChar = 0x10C0; break;
|
||||
case 0x2D21: mapChar = 0x10C1; break;
|
||||
case 0x2D22: mapChar = 0x10C2; break;
|
||||
case 0x2D23: mapChar = 0x10C3; break;
|
||||
case 0x2D24: mapChar = 0x10C4; break;
|
||||
case 0x2D25: mapChar = 0x10C5; break;
|
||||
case 0x2D27: mapChar = 0x10C7; break;
|
||||
case 0x2D2D: mapChar = 0x10CD; break;
|
||||
case 0xAB53: mapChar = 0xA7B3; break;
|
||||
case 0xAB70: mapChar = 0x13A0; break;
|
||||
case 0xAB71: mapChar = 0x13A1; break;
|
||||
case 0xAB72: mapChar = 0x13A2; break;
|
||||
case 0xAB73: mapChar = 0x13A3; break;
|
||||
case 0xAB74: mapChar = 0x13A4; break;
|
||||
case 0xAB75: mapChar = 0x13A5; break;
|
||||
case 0xAB76: mapChar = 0x13A6; break;
|
||||
case 0xAB77: mapChar = 0x13A7; break;
|
||||
case 0xAB78: mapChar = 0x13A8; break;
|
||||
case 0xAB79: mapChar = 0x13A9; break;
|
||||
case 0xAB7A: mapChar = 0x13AA; break;
|
||||
case 0xAB7B: mapChar = 0x13AB; break;
|
||||
case 0xAB7C: mapChar = 0x13AC; break;
|
||||
case 0xAB7D: mapChar = 0x13AD; break;
|
||||
case 0xAB7E: mapChar = 0x13AE; break;
|
||||
case 0xAB7F: mapChar = 0x13AF; break;
|
||||
case 0xAB80: mapChar = 0x13B0; break;
|
||||
case 0xAB81: mapChar = 0x13B1; break;
|
||||
case 0xAB82: mapChar = 0x13B2; break;
|
||||
case 0xAB83: mapChar = 0x13B3; break;
|
||||
case 0xAB84: mapChar = 0x13B4; break;
|
||||
case 0xAB85: mapChar = 0x13B5; break;
|
||||
case 0xAB86: mapChar = 0x13B6; break;
|
||||
case 0xAB87: mapChar = 0x13B7; break;
|
||||
case 0xAB88: mapChar = 0x13B8; break;
|
||||
case 0xAB89: mapChar = 0x13B9; break;
|
||||
case 0xAB8A: mapChar = 0x13BA; break;
|
||||
case 0xAB8B: mapChar = 0x13BB; break;
|
||||
case 0xAB8C: mapChar = 0x13BC; break;
|
||||
case 0xAB8D: mapChar = 0x13BD; break;
|
||||
case 0xAB8E: mapChar = 0x13BE; break;
|
||||
case 0xAB8F: mapChar = 0x13BF; break;
|
||||
case 0xAB90: mapChar = 0x13C0; break;
|
||||
case 0xAB91: mapChar = 0x13C1; break;
|
||||
case 0xAB92: mapChar = 0x13C2; break;
|
||||
case 0xAB93: mapChar = 0x13C3; break;
|
||||
case 0xAB94: mapChar = 0x13C4; break;
|
||||
case 0xAB95: mapChar = 0x13C5; break;
|
||||
case 0xAB96: mapChar = 0x13C6; break;
|
||||
case 0xAB97: mapChar = 0x13C7; break;
|
||||
case 0xAB98: mapChar = 0x13C8; break;
|
||||
case 0xAB99: mapChar = 0x13C9; break;
|
||||
case 0xAB9A: mapChar = 0x13CA; break;
|
||||
case 0xAB9B: mapChar = 0x13CB; break;
|
||||
case 0xAB9C: mapChar = 0x13CC; break;
|
||||
case 0xAB9D: mapChar = 0x13CD; break;
|
||||
case 0xAB9E: mapChar = 0x13CE; break;
|
||||
case 0xAB9F: mapChar = 0x13CF; break;
|
||||
case 0xABA0: mapChar = 0x13D0; break;
|
||||
case 0xABA1: mapChar = 0x13D1; break;
|
||||
case 0xABA2: mapChar = 0x13D2; break;
|
||||
case 0xABA3: mapChar = 0x13D3; break;
|
||||
case 0xABA4: mapChar = 0x13D4; break;
|
||||
case 0xABA5: mapChar = 0x13D5; break;
|
||||
case 0xABA6: mapChar = 0x13D6; break;
|
||||
case 0xABA7: mapChar = 0x13D7; break;
|
||||
case 0xABA8: mapChar = 0x13D8; break;
|
||||
case 0xABA9: mapChar = 0x13D9; break;
|
||||
case 0xABAA: mapChar = 0x13DA; break;
|
||||
case 0xABAB: mapChar = 0x13DB; break;
|
||||
case 0xABAC: mapChar = 0x13DC; break;
|
||||
case 0xABAD: mapChar = 0x13DD; break;
|
||||
case 0xABAE: mapChar = 0x13DE; break;
|
||||
case 0xABAF: mapChar = 0x13DF; break;
|
||||
case 0xABB0: mapChar = 0x13E0; break;
|
||||
case 0xABB1: mapChar = 0x13E1; break;
|
||||
case 0xABB2: mapChar = 0x13E2; break;
|
||||
case 0xABB3: mapChar = 0x13E3; break;
|
||||
case 0xABB4: mapChar = 0x13E4; break;
|
||||
case 0xABB5: mapChar = 0x13E5; break;
|
||||
case 0xABB6: mapChar = 0x13E6; break;
|
||||
case 0xABB7: mapChar = 0x13E7; break;
|
||||
case 0xABB8: mapChar = 0x13E8; break;
|
||||
case 0xABB9: mapChar = 0x13E9; break;
|
||||
case 0xABBA: mapChar = 0x13EA; break;
|
||||
case 0xABBB: mapChar = 0x13EB; break;
|
||||
case 0xABBC: mapChar = 0x13EC; break;
|
||||
case 0xABBD: mapChar = 0x13ED; break;
|
||||
case 0xABBE: mapChar = 0x13EE; break;
|
||||
case 0xABBF: mapChar = 0x13EF; break;
|
||||
// ch must have a 1:M case mapping, but we
|
||||
// can't handle it here. Return ch.
|
||||
// since mapChar is already set, no need
|
||||
@ -420,6 +576,8 @@ class CharacterData00 extends CharacterData {
|
||||
switch (ch) {
|
||||
case 0x0BF1: retval = 100; break; // TAMIL NUMBER ONE HUNDRED
|
||||
case 0x0BF2: retval = 1000; break; // TAMIL NUMBER ONE THOUSAND
|
||||
case 0x0D71: retval = 100; break; // MALAYALAM NUMBER ONE HUNDRED
|
||||
case 0x0D72: retval = 1000; break; // MALAYALAM NUMBER ONE THOUSAND
|
||||
case 0x1375: retval = 40; break; // ETHIOPIC NUMBER FORTY
|
||||
case 0x1376: retval = 50; break; // ETHIOPIC NUMBER FIFTY
|
||||
case 0x1377: retval = 60; break; // ETHIOPIC NUMBER SIXTY
|
||||
@ -440,14 +598,15 @@ class CharacterData00 extends CharacterData {
|
||||
case 0x2180: retval = 1000; break; // ROMAN NUMERAL ONE THOUSAND C D
|
||||
case 0x2181: retval = 5000; break; // ROMAN NUMERAL FIVE THOUSAND
|
||||
case 0x2182: retval = 10000; break; // ROMAN NUMERAL TEN THOUSAND
|
||||
|
||||
case 0x324B: retval = 40; break;
|
||||
case 0x324C: retval = 50; break;
|
||||
case 0x324D: retval = 60; break;
|
||||
case 0x324E: retval = 70; break;
|
||||
case 0x324F: retval = 80; break;
|
||||
case 0x325C: retval = 32; break;
|
||||
|
||||
case 0x2186: retval = 50; break; // ROMAN NUMERAL FIFTY EARLY FORM
|
||||
case 0x2187: retval = 50000; break; // ROMAN NUMERAL FIFTY THOUSAND
|
||||
case 0x2188: retval = 100000; break; // ROMAN NUMERAL ONE HUNDRED THOUSAND
|
||||
case 0x324B: retval = 40; break; // CIRCLED NUMBER FORTY ON BLACK SQUARE
|
||||
case 0x324C: retval = 50; break; // CIRCLED NUMBER FIFTY ON BLACK SQUARE
|
||||
case 0x324D: retval = 60; break; // CIRCLED NUMBER SIXTY ON BLACK SQUARE
|
||||
case 0x324E: retval = 70; break; // CIRCLED NUMBER SEVENTY ON BLACK SQUARE
|
||||
case 0x324F: retval = 80; break; // CIRCLED NUMBER EIGHTY ON BLACK SQUARE
|
||||
case 0x325C: retval = 32; break; // CIRCLED NUMBER THIRTY TWO
|
||||
case 0x325D: retval = 33; break; // CIRCLED NUMBER THIRTY THREE
|
||||
case 0x325E: retval = 34; break; // CIRCLED NUMBER THIRTY FOUR
|
||||
case 0x325F: retval = 35; break; // CIRCLED NUMBER THIRTY FIVE
|
||||
@ -466,13 +625,6 @@ class CharacterData00 extends CharacterData {
|
||||
case 0x32BD: retval = 48; break; // CIRCLED NUMBER FORTY EIGHT
|
||||
case 0x32BE: retval = 49; break; // CIRCLED NUMBER FORTY NINE
|
||||
case 0x32BF: retval = 50; break; // CIRCLED NUMBER FIFTY
|
||||
|
||||
case 0x0D71: retval = 100; break; // MALAYALAM NUMBER ONE HUNDRED
|
||||
case 0x0D72: retval = 1000; break; // MALAYALAM NUMBER ONE THOUSAND
|
||||
case 0x2186: retval = 50; break; // ROMAN NUMERAL FIFTY EARLY FORM
|
||||
case 0x2187: retval = 50000; break; // ROMAN NUMERAL FIFTY THOUSAND
|
||||
case 0x2188: retval = 100000; break; // ROMAN NUMERAL ONE HUNDRED THOUSAND
|
||||
|
||||
default: retval = -2; break;
|
||||
}
|
||||
break;
|
||||
@ -553,70 +705,149 @@ class CharacterData00 extends CharacterData {
|
||||
}
|
||||
else {
|
||||
switch(ch) {
|
||||
// map overflow characters
|
||||
case 0x00B5 : mapChar = 0x039C; break;
|
||||
case 0x017F : mapChar = 0x0053; break;
|
||||
case 0x1FBE : mapChar = 0x0399; break;
|
||||
|
||||
case 0x023F : mapChar = 0x2C7E; break;
|
||||
case 0x0240 : mapChar = 0x2C7F; break;
|
||||
case 0x0250 : mapChar = 0x2C6F; break;
|
||||
case 0x0251 : mapChar = 0x2C6D; break;
|
||||
case 0x0252 : mapChar = 0x2C70; break;
|
||||
case 0x025C : mapChar = 0xA7AB; break;
|
||||
case 0x0261 : mapChar = 0xA7AC; break;
|
||||
case 0x0265 : mapChar = 0xA78D; break;
|
||||
case 0x0266 : mapChar = 0xA7AA; break;
|
||||
case 0x026B : mapChar = 0x2C62; break;
|
||||
case 0x026C : mapChar = 0xA7AD; break;
|
||||
case 0x0271 : mapChar = 0x2C6E; break;
|
||||
case 0x027D : mapChar = 0x2C64; break;
|
||||
case 0x0287 : mapChar = 0xA7B1; break;
|
||||
case 0x029E : mapChar = 0xA7B0; break;
|
||||
case 0x1D79 : mapChar = 0xA77D; break;
|
||||
case 0x1D7D : mapChar = 0x2C63; break;
|
||||
case 0x2C65 : mapChar = 0x023A; break;
|
||||
case 0x2C66 : mapChar = 0x023E; break;
|
||||
case 0x2D00 : mapChar = 0x10A0; break;
|
||||
case 0x2D01 : mapChar = 0x10A1; break;
|
||||
case 0x2D02 : mapChar = 0x10A2; break;
|
||||
case 0x2D03 : mapChar = 0x10A3; break;
|
||||
case 0x2D04 : mapChar = 0x10A4; break;
|
||||
case 0x2D05 : mapChar = 0x10A5; break;
|
||||
case 0x2D06 : mapChar = 0x10A6; break;
|
||||
case 0x2D07 : mapChar = 0x10A7; break;
|
||||
case 0x2D08 : mapChar = 0x10A8; break;
|
||||
case 0x2D09 : mapChar = 0x10A9; break;
|
||||
case 0x2D0A : mapChar = 0x10AA; break;
|
||||
case 0x2D0B : mapChar = 0x10AB; break;
|
||||
case 0x2D0C : mapChar = 0x10AC; break;
|
||||
case 0x2D0D : mapChar = 0x10AD; break;
|
||||
case 0x2D0E : mapChar = 0x10AE; break;
|
||||
case 0x2D0F : mapChar = 0x10AF; break;
|
||||
case 0x2D10 : mapChar = 0x10B0; break;
|
||||
case 0x2D11 : mapChar = 0x10B1; break;
|
||||
case 0x2D12 : mapChar = 0x10B2; break;
|
||||
case 0x2D13 : mapChar = 0x10B3; break;
|
||||
case 0x2D14 : mapChar = 0x10B4; break;
|
||||
case 0x2D15 : mapChar = 0x10B5; break;
|
||||
case 0x2D16 : mapChar = 0x10B6; break;
|
||||
case 0x2D17 : mapChar = 0x10B7; break;
|
||||
case 0x2D18 : mapChar = 0x10B8; break;
|
||||
case 0x2D19 : mapChar = 0x10B9; break;
|
||||
case 0x2D1A : mapChar = 0x10BA; break;
|
||||
case 0x2D1B : mapChar = 0x10BB; break;
|
||||
case 0x2D1C : mapChar = 0x10BC; break;
|
||||
case 0x2D1D : mapChar = 0x10BD; break;
|
||||
case 0x2D1E : mapChar = 0x10BE; break;
|
||||
case 0x2D1F : mapChar = 0x10BF; break;
|
||||
case 0x2D20 : mapChar = 0x10C0; break;
|
||||
case 0x2D21 : mapChar = 0x10C1; break;
|
||||
case 0x2D22 : mapChar = 0x10C2; break;
|
||||
case 0x2D23 : mapChar = 0x10C3; break;
|
||||
case 0x2D24 : mapChar = 0x10C4; break;
|
||||
case 0x2D25 : mapChar = 0x10C5; break;
|
||||
case 0x2D27 : mapChar = 0x10C7; break;
|
||||
case 0x2D2D : mapChar = 0x10CD; break;
|
||||
case 0x017F: mapChar = 0x0053; break;
|
||||
case 0x023F: mapChar = 0x2C7E; break;
|
||||
case 0x0240: mapChar = 0x2C7F; break;
|
||||
case 0x0250: mapChar = 0x2C6F; break;
|
||||
case 0x0251: mapChar = 0x2C6D; break;
|
||||
case 0x0252: mapChar = 0x2C70; break;
|
||||
case 0x025C: mapChar = 0xA7AB; break;
|
||||
case 0x0261: mapChar = 0xA7AC; break;
|
||||
case 0x0265: mapChar = 0xA78D; break;
|
||||
case 0x0266: mapChar = 0xA7AA; break;
|
||||
case 0x026B: mapChar = 0x2C62; break;
|
||||
case 0x026C: mapChar = 0xA7AD; break;
|
||||
case 0x0271: mapChar = 0x2C6E; break;
|
||||
case 0x027D: mapChar = 0x2C64; break;
|
||||
case 0x0287: mapChar = 0xA7B1; break;
|
||||
case 0x029D: mapChar = 0xA7B2; break;
|
||||
case 0x029E: mapChar = 0xA7B0; break;
|
||||
case 0x1D79: mapChar = 0xA77D; break;
|
||||
case 0x1D7D: mapChar = 0x2C63; break;
|
||||
case 0x1FBE: mapChar = 0x0399; break;
|
||||
case 0x2C65: mapChar = 0x023A; break;
|
||||
case 0x2C66: mapChar = 0x023E; break;
|
||||
case 0x2D00: mapChar = 0x10A0; break;
|
||||
case 0x2D01: mapChar = 0x10A1; break;
|
||||
case 0x2D02: mapChar = 0x10A2; break;
|
||||
case 0x2D03: mapChar = 0x10A3; break;
|
||||
case 0x2D04: mapChar = 0x10A4; break;
|
||||
case 0x2D05: mapChar = 0x10A5; break;
|
||||
case 0x2D06: mapChar = 0x10A6; break;
|
||||
case 0x2D07: mapChar = 0x10A7; break;
|
||||
case 0x2D08: mapChar = 0x10A8; break;
|
||||
case 0x2D09: mapChar = 0x10A9; break;
|
||||
case 0x2D0A: mapChar = 0x10AA; break;
|
||||
case 0x2D0B: mapChar = 0x10AB; break;
|
||||
case 0x2D0C: mapChar = 0x10AC; break;
|
||||
case 0x2D0D: mapChar = 0x10AD; break;
|
||||
case 0x2D0E: mapChar = 0x10AE; break;
|
||||
case 0x2D0F: mapChar = 0x10AF; break;
|
||||
case 0x2D10: mapChar = 0x10B0; break;
|
||||
case 0x2D11: mapChar = 0x10B1; break;
|
||||
case 0x2D12: mapChar = 0x10B2; break;
|
||||
case 0x2D13: mapChar = 0x10B3; break;
|
||||
case 0x2D14: mapChar = 0x10B4; break;
|
||||
case 0x2D15: mapChar = 0x10B5; break;
|
||||
case 0x2D16: mapChar = 0x10B6; break;
|
||||
case 0x2D17: mapChar = 0x10B7; break;
|
||||
case 0x2D18: mapChar = 0x10B8; break;
|
||||
case 0x2D19: mapChar = 0x10B9; break;
|
||||
case 0x2D1A: mapChar = 0x10BA; break;
|
||||
case 0x2D1B: mapChar = 0x10BB; break;
|
||||
case 0x2D1C: mapChar = 0x10BC; break;
|
||||
case 0x2D1D: mapChar = 0x10BD; break;
|
||||
case 0x2D1E: mapChar = 0x10BE; break;
|
||||
case 0x2D1F: mapChar = 0x10BF; break;
|
||||
case 0x2D20: mapChar = 0x10C0; break;
|
||||
case 0x2D21: mapChar = 0x10C1; break;
|
||||
case 0x2D22: mapChar = 0x10C2; break;
|
||||
case 0x2D23: mapChar = 0x10C3; break;
|
||||
case 0x2D24: mapChar = 0x10C4; break;
|
||||
case 0x2D25: mapChar = 0x10C5; break;
|
||||
case 0x2D27: mapChar = 0x10C7; break;
|
||||
case 0x2D2D: mapChar = 0x10CD; break;
|
||||
case 0xAB53: mapChar = 0xA7B3; break;
|
||||
case 0xAB70: mapChar = 0x13A0; break;
|
||||
case 0xAB71: mapChar = 0x13A1; break;
|
||||
case 0xAB72: mapChar = 0x13A2; break;
|
||||
case 0xAB73: mapChar = 0x13A3; break;
|
||||
case 0xAB74: mapChar = 0x13A4; break;
|
||||
case 0xAB75: mapChar = 0x13A5; break;
|
||||
case 0xAB76: mapChar = 0x13A6; break;
|
||||
case 0xAB77: mapChar = 0x13A7; break;
|
||||
case 0xAB78: mapChar = 0x13A8; break;
|
||||
case 0xAB79: mapChar = 0x13A9; break;
|
||||
case 0xAB7A: mapChar = 0x13AA; break;
|
||||
case 0xAB7B: mapChar = 0x13AB; break;
|
||||
case 0xAB7C: mapChar = 0x13AC; break;
|
||||
case 0xAB7D: mapChar = 0x13AD; break;
|
||||
case 0xAB7E: mapChar = 0x13AE; break;
|
||||
case 0xAB7F: mapChar = 0x13AF; break;
|
||||
case 0xAB80: mapChar = 0x13B0; break;
|
||||
case 0xAB81: mapChar = 0x13B1; break;
|
||||
case 0xAB82: mapChar = 0x13B2; break;
|
||||
case 0xAB83: mapChar = 0x13B3; break;
|
||||
case 0xAB84: mapChar = 0x13B4; break;
|
||||
case 0xAB85: mapChar = 0x13B5; break;
|
||||
case 0xAB86: mapChar = 0x13B6; break;
|
||||
case 0xAB87: mapChar = 0x13B7; break;
|
||||
case 0xAB88: mapChar = 0x13B8; break;
|
||||
case 0xAB89: mapChar = 0x13B9; break;
|
||||
case 0xAB8A: mapChar = 0x13BA; break;
|
||||
case 0xAB8B: mapChar = 0x13BB; break;
|
||||
case 0xAB8C: mapChar = 0x13BC; break;
|
||||
case 0xAB8D: mapChar = 0x13BD; break;
|
||||
case 0xAB8E: mapChar = 0x13BE; break;
|
||||
case 0xAB8F: mapChar = 0x13BF; break;
|
||||
case 0xAB90: mapChar = 0x13C0; break;
|
||||
case 0xAB91: mapChar = 0x13C1; break;
|
||||
case 0xAB92: mapChar = 0x13C2; break;
|
||||
case 0xAB93: mapChar = 0x13C3; break;
|
||||
case 0xAB94: mapChar = 0x13C4; break;
|
||||
case 0xAB95: mapChar = 0x13C5; break;
|
||||
case 0xAB96: mapChar = 0x13C6; break;
|
||||
case 0xAB97: mapChar = 0x13C7; break;
|
||||
case 0xAB98: mapChar = 0x13C8; break;
|
||||
case 0xAB99: mapChar = 0x13C9; break;
|
||||
case 0xAB9A: mapChar = 0x13CA; break;
|
||||
case 0xAB9B: mapChar = 0x13CB; break;
|
||||
case 0xAB9C: mapChar = 0x13CC; break;
|
||||
case 0xAB9D: mapChar = 0x13CD; break;
|
||||
case 0xAB9E: mapChar = 0x13CE; break;
|
||||
case 0xAB9F: mapChar = 0x13CF; break;
|
||||
case 0xABA0: mapChar = 0x13D0; break;
|
||||
case 0xABA1: mapChar = 0x13D1; break;
|
||||
case 0xABA2: mapChar = 0x13D2; break;
|
||||
case 0xABA3: mapChar = 0x13D3; break;
|
||||
case 0xABA4: mapChar = 0x13D4; break;
|
||||
case 0xABA5: mapChar = 0x13D5; break;
|
||||
case 0xABA6: mapChar = 0x13D6; break;
|
||||
case 0xABA7: mapChar = 0x13D7; break;
|
||||
case 0xABA8: mapChar = 0x13D8; break;
|
||||
case 0xABA9: mapChar = 0x13D9; break;
|
||||
case 0xABAA: mapChar = 0x13DA; break;
|
||||
case 0xABAB: mapChar = 0x13DB; break;
|
||||
case 0xABAC: mapChar = 0x13DC; break;
|
||||
case 0xABAD: mapChar = 0x13DD; break;
|
||||
case 0xABAE: mapChar = 0x13DE; break;
|
||||
case 0xABAF: mapChar = 0x13DF; break;
|
||||
case 0xABB0: mapChar = 0x13E0; break;
|
||||
case 0xABB1: mapChar = 0x13E1; break;
|
||||
case 0xABB2: mapChar = 0x13E2; break;
|
||||
case 0xABB3: mapChar = 0x13E3; break;
|
||||
case 0xABB4: mapChar = 0x13E4; break;
|
||||
case 0xABB5: mapChar = 0x13E5; break;
|
||||
case 0xABB6: mapChar = 0x13E6; break;
|
||||
case 0xABB7: mapChar = 0x13E7; break;
|
||||
case 0xABB8: mapChar = 0x13E8; break;
|
||||
case 0xABB9: mapChar = 0x13E9; break;
|
||||
case 0xABBA: mapChar = 0x13EA; break;
|
||||
case 0xABBB: mapChar = 0x13EB; break;
|
||||
case 0xABBC: mapChar = 0x13EC; break;
|
||||
case 0xABBD: mapChar = 0x13ED; break;
|
||||
case 0xABBE: mapChar = 0x13EE; break;
|
||||
case 0xABBF: mapChar = 0x13EF; break;
|
||||
default : mapChar = Character.ERROR; break;
|
||||
}
|
||||
}
|
||||
|
@ -243,36 +243,35 @@ class CharacterData01 extends CharacterData {
|
||||
case 0x10131: retval = 70000; break; // AEGEAN NUMBER SEVENTY THOUSAND
|
||||
case 0x10132: retval = 80000; break; // AEGEAN NUMBER EIGHTY THOUSAND
|
||||
case 0x10133: retval = 90000; break; // AEGEAN NUMBER NINETY THOUSAND
|
||||
case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY
|
||||
case 0x10144: retval = 50; break; // ACROPHONIC ATTIC FIFTY
|
||||
case 0x10145: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED
|
||||
case 0x10146: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND
|
||||
case 0x10147: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND
|
||||
case 0x1014A: retval = 50; break; // ACROPHONIC ATTIC FIFTY TALENTS
|
||||
case 0x1014B: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED TALENTS
|
||||
case 0x1014C: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED TALENTS
|
||||
case 0x1014D: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND TALENTS
|
||||
case 0x1014E: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND TALENTS
|
||||
case 0x10151: retval = 50; break; // ACROPHONIC ATTIC FIFTY STATERS
|
||||
case 0x10152: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED STATERS
|
||||
case 0x10153: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED STATERS
|
||||
case 0x10154: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND STATERS
|
||||
case 0x10155: retval = 10000; break; // ACROPHONIC ATTIC TEN THOUSAND STATERS
|
||||
case 0x10156: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND STATERS
|
||||
case 0x10166: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY
|
||||
case 0x10167: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
|
||||
case 0x10168: retval = 50; break; // ACROPHONIC HERMIONIAN FIFTY
|
||||
case 0x10169: retval = 50; break; // ACROPHONIC THESPIAN FIFTY
|
||||
case 0x1016A: retval = 100; break; // ACROPHONIC THESPIAN ONE HUNDRED
|
||||
case 0x1016B: retval = 300; break; // ACROPHONIC THESPIAN THREE HUNDRED
|
||||
case 0x1016C: retval = 500; break; // ACROPHONIC EPIDAUREAN FIVE HUNDRED
|
||||
case 0x1016D: retval = 500; break; // ACROPHONIC TROEZENIAN FIVE HUNDRED
|
||||
case 0x1016E: retval = 500; break; // ACROPHONIC THESPIAN FIVE HUNDRED
|
||||
case 0x1016F: retval = 500; break; // ACROPHONIC CARYSTIAN FIVE HUNDRED
|
||||
case 0x10170: retval = 500; break; // ACROPHONIC NAXIAN FIVE HUNDRED
|
||||
case 0x10171: retval = 1000; break; // ACROPHONIC THESPIAN ONE THOUSAND
|
||||
case 0x10172: retval = 5000; break; // ACROPHONIC THESPIAN FIVE THOUSAND
|
||||
case 0x10174: retval = 50; break; // ACROPHONIC STRATIAN FIFTY MNAS
|
||||
case 0x10144: retval = 50; break; // GREEK ACROPHONIC ATTIC FIFTY
|
||||
case 0x10145: retval = 500; break; // GREEK ACROPHONIC ATTIC FIVE HUNDRED
|
||||
case 0x10146: retval = 5000; break; // GREEK ACROPHONIC ATTIC FIVE THOUSAND
|
||||
case 0x10147: retval = 50000; break; // GREEK ACROPHONIC ATTIC FIFTY THOUSAND
|
||||
case 0x1014A: retval = 50; break; // GREEK ACROPHONIC ATTIC FIFTY TALENTS
|
||||
case 0x1014B: retval = 100; break; // GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
|
||||
case 0x1014C: retval = 500; break; // GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
|
||||
case 0x1014D: retval = 1000; break; // GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
|
||||
case 0x1014E: retval = 5000; break; // GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
|
||||
case 0x10151: retval = 50; break; // GREEK ACROPHONIC ATTIC FIFTY STATERS
|
||||
case 0x10152: retval = 100; break; // GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
|
||||
case 0x10153: retval = 500; break; // GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
|
||||
case 0x10154: retval = 1000; break; // GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
|
||||
case 0x10155: retval = 10000; break; // GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
|
||||
case 0x10156: retval = 50000; break; // GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
|
||||
case 0x10166: retval = 50; break; // GREEK ACROPHONIC TROEZENIAN FIFTY
|
||||
case 0x10167: retval = 50; break; // GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
|
||||
case 0x10168: retval = 50; break; // GREEK ACROPHONIC HERMIONIAN FIFTY
|
||||
case 0x10169: retval = 50; break; // GREEK ACROPHONIC THESPIAN FIFTY
|
||||
case 0x1016A: retval = 100; break; // GREEK ACROPHONIC THESPIAN ONE HUNDRED
|
||||
case 0x1016B: retval = 300; break; // GREEK ACROPHONIC THESPIAN THREE HUNDRED
|
||||
case 0x1016C: retval = 500; break; // GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
|
||||
case 0x1016D: retval = 500; break; // GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
|
||||
case 0x1016E: retval = 500; break; // GREEK ACROPHONIC THESPIAN FIVE HUNDRED
|
||||
case 0x1016F: retval = 500; break; // GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
|
||||
case 0x10170: retval = 500; break; // GREEK ACROPHONIC NAXIAN FIVE HUNDRED
|
||||
case 0x10171: retval = 1000; break; // GREEK ACROPHONIC THESPIAN ONE THOUSAND
|
||||
case 0x10172: retval = 5000; break; // GREEK ACROPHONIC THESPIAN FIVE THOUSAND
|
||||
case 0x10174: retval = 50; break; // GREEK ACROPHONIC STRATIAN FIFTY MNAS
|
||||
case 0x102ED: retval = 40; break; // COPTIC EPACT NUMBER FORTY
|
||||
case 0x102EE: retval = 50; break; // COPTIC EPACT NUMBER FIFTY
|
||||
case 0x102EF: retval = 60; break; // COPTIC EPACT NUMBER SIXTY
|
||||
@ -288,6 +287,7 @@ class CharacterData01 extends CharacterData {
|
||||
case 0x102F9: retval = 700; break; // COPTIC EPACT NUMBER SEVEN HUNDRED
|
||||
case 0x102FA: retval = 800; break; // COPTIC EPACT NUMBER EIGHT HUNDRED
|
||||
case 0x102FB: retval = 900; break; // COPTIC EPACT NUMBER NINE HUNDRED
|
||||
case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY
|
||||
case 0x10341: retval = 90; break; // GOTHIC LETTER NINETY
|
||||
case 0x1034A: retval = 900; break; // GOTHIC LETTER NINE HUNDRED
|
||||
case 0x103D5: retval = 100; break; // OLD PERSIAN NUMBER HUNDRED
|
||||
@ -295,7 +295,48 @@ class CharacterData01 extends CharacterData {
|
||||
case 0x1085E: retval = 1000; break; // IMPERIAL ARAMAIC NUMBER ONE THOUSAND
|
||||
case 0x1085F: retval = 10000; break; // IMPERIAL ARAMAIC NUMBER TEN THOUSAND
|
||||
case 0x108AF: retval = 100; break; // NABATAEAN NUMBER ONE HUNDRED
|
||||
case 0x108FF: retval = 100; break; // HATRAN NUMBER ONE HUNDRED
|
||||
case 0x10919: retval = 100; break; // PHOENICIAN NUMBER ONE HUNDRED
|
||||
case 0x109CC: retval = 40; break; // MEROITIC CURSIVE NUMBER FORTY
|
||||
case 0x109CD: retval = 50; break; // MEROITIC CURSIVE NUMBER FIFTY
|
||||
case 0x109CE: retval = 60; break; // MEROITIC CURSIVE NUMBER SIXTY
|
||||
case 0x109CF: retval = 70; break; // MEROITIC CURSIVE NUMBER SEVENTY
|
||||
case 0x109D2: retval = 100; break; // MEROITIC CURSIVE NUMBER ONE HUNDRED
|
||||
case 0x109D3: retval = 200; break; // MEROITIC CURSIVE NUMBER TWO HUNDRED
|
||||
case 0x109D4: retval = 300; break; // MEROITIC CURSIVE NUMBER THREE HUNDRED
|
||||
case 0x109D5: retval = 400; break; // MEROITIC CURSIVE NUMBER FOUR HUNDRED
|
||||
case 0x109D6: retval = 500; break; // MEROITIC CURSIVE NUMBER FIVE HUNDRED
|
||||
case 0x109D7: retval = 600; break; // MEROITIC CURSIVE NUMBER SIX HUNDRED
|
||||
case 0x109D8: retval = 700; break; // MEROITIC CURSIVE NUMBER SEVEN HUNDRED
|
||||
case 0x109D9: retval = 800; break; // MEROITIC CURSIVE NUMBER EIGHT HUNDRED
|
||||
case 0x109DA: retval = 900; break; // MEROITIC CURSIVE NUMBER NINE HUNDRED
|
||||
case 0x109DB: retval = 1000; break; // MEROITIC CURSIVE NUMBER ONE THOUSAND
|
||||
case 0x109DC: retval = 2000; break; // MEROITIC CURSIVE NUMBER TWO THOUSAND
|
||||
case 0x109DD: retval = 3000; break; // MEROITIC CURSIVE NUMBER THREE THOUSAND
|
||||
case 0x109DE: retval = 4000; break; // MEROITIC CURSIVE NUMBER FOUR THOUSAND
|
||||
case 0x109DF: retval = 5000; break; // MEROITIC CURSIVE NUMBER FIVE THOUSAND
|
||||
case 0x109E0: retval = 6000; break; // MEROITIC CURSIVE NUMBER SIX THOUSAND
|
||||
case 0x109E1: retval = 7000; break; // MEROITIC CURSIVE NUMBER SEVEN THOUSAND
|
||||
case 0x109E2: retval = 8000; break; // MEROITIC CURSIVE NUMBER EIGHT THOUSAND
|
||||
case 0x109E3: retval = 9000; break; // MEROITIC CURSIVE NUMBER NINE THOUSAND
|
||||
case 0x109E4: retval = 10000; break; // MEROITIC CURSIVE NUMBER TEN THOUSAND
|
||||
case 0x109E5: retval = 20000; break; // MEROITIC CURSIVE NUMBER TWENTY THOUSAND
|
||||
case 0x109E6: retval = 30000; break; // MEROITIC CURSIVE NUMBER THIRTY THOUSAND
|
||||
case 0x109E7: retval = 40000; break; // MEROITIC CURSIVE NUMBER FORTY THOUSAND
|
||||
case 0x109E8: retval = 50000; break; // MEROITIC CURSIVE NUMBER FIFTY THOUSAND
|
||||
case 0x109E9: retval = 60000; break; // MEROITIC CURSIVE NUMBER SIXTY THOUSAND
|
||||
case 0x109EA: retval = 70000; break; // MEROITIC CURSIVE NUMBER SEVENTY THOUSAND
|
||||
case 0x109EB: retval = 80000; break; // MEROITIC CURSIVE NUMBER EIGHTY THOUSAND
|
||||
case 0x109EC: retval = 90000; break; // MEROITIC CURSIVE NUMBER NINETY THOUSAND
|
||||
case 0x109ED: retval = 100000; break; // MEROITIC CURSIVE NUMBER ONE HUNDRED THOUSAND
|
||||
case 0x109EE: retval = 200000; break; // MEROITIC CURSIVE NUMBER TWO HUNDRED THOUSAND
|
||||
case 0x109EF: retval = 300000; break; // MEROITIC CURSIVE NUMBER THREE HUNDRED THOUSAND
|
||||
case 0x109F0: retval = 400000; break; // MEROITIC CURSIVE NUMBER FOUR HUNDRED THOUSAND
|
||||
case 0x109F1: retval = 500000; break; // MEROITIC CURSIVE NUMBER FIVE HUNDRED THOUSAND
|
||||
case 0x109F2: retval = 600000; break; // MEROITIC CURSIVE NUMBER SIX HUNDRED THOUSAND
|
||||
case 0x109F3: retval = 700000; break; // MEROITIC CURSIVE NUMBER SEVEN HUNDRED THOUSAND
|
||||
case 0x109F4: retval = 800000; break; // MEROITIC CURSIVE NUMBER EIGHT HUNDRED THOUSAND
|
||||
case 0x109F5: retval = 900000; break; // MEROITIC CURSIVE NUMBER NINE HUNDRED THOUSAND
|
||||
case 0x10A46: retval = 100; break; // KHAROSHTHI NUMBER ONE HUNDRED
|
||||
case 0x10A47: retval = 1000; break; // KHAROSHTHI NUMBER ONE THOUSAND
|
||||
case 0x10A7E: retval = 50; break; // OLD SOUTH ARABIAN NUMBER FIFTY
|
||||
@ -305,6 +346,9 @@ class CharacterData01 extends CharacterData {
|
||||
case 0x10B7E: retval = 100; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
|
||||
case 0x10B7F: retval = 1000; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
|
||||
case 0x10BAF: retval = 100; break; // PSALTER PAHLAVI NUMBER ONE HUNDRED
|
||||
case 0x10CFD: retval = 50; break; // OLD HUNGARIAN NUMBER FIFTY
|
||||
case 0x10CFE: retval = 100; break; // OLD HUNGARIAN NUMBER ONE HUNDRED
|
||||
case 0x10CFF: retval = 1000; break; // OLD HUNGARIAN NUMBER ONE THOUSAND
|
||||
case 0x10E6C: retval = 40; break; // RUMI NUMBER FORTY
|
||||
case 0x10E6D: retval = 50; break; // RUMI NUMBER FIFTY
|
||||
case 0x10E6E: retval = 60; break; // RUMI NUMBER SIXTY
|
||||
|
@ -1,8 +1,8 @@
|
||||
# PropList-7.0.0.txt
|
||||
# Date: 2014-02-19, 15:51:26 GMT [MD]
|
||||
# PropList-8.0.0.txt
|
||||
# Date: 2015-05-16, 17:50:38 GMT [MD]
|
||||
#
|
||||
# Unicode Character Database
|
||||
# Copyright (c) 1991-2014 Unicode, Inc.
|
||||
# Copyright (c) 1991-2015 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
|
||||
@ -189,18 +189,22 @@ FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
|
||||
11141..11143 ; Terminal_Punctuation # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
|
||||
111C5..111C6 ; Terminal_Punctuation # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
|
||||
111CD ; Terminal_Punctuation # Po SHARADA SUTRA MARK
|
||||
111DE..111DF ; Terminal_Punctuation # Po [2] SHARADA SECTION MARK-1..SHARADA SECTION MARK-2
|
||||
11238..1123C ; Terminal_Punctuation # Po [5] KHOJKI DANDA..KHOJKI DOUBLE SECTION MARK
|
||||
112A9 ; Terminal_Punctuation # Po MULTANI SECTION MARK
|
||||
115C2..115C5 ; Terminal_Punctuation # Po [4] SIDDHAM DANDA..SIDDHAM SEPARATOR BAR
|
||||
115C9 ; Terminal_Punctuation # Po SIDDHAM END OF TEXT MARK
|
||||
115C9..115D7 ; Terminal_Punctuation # Po [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
|
||||
11641..11642 ; Terminal_Punctuation # Po [2] MODI DANDA..MODI DOUBLE DANDA
|
||||
1173C..1173E ; Terminal_Punctuation # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
|
||||
12470..12474 ; Terminal_Punctuation # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
|
||||
16A6E..16A6F ; Terminal_Punctuation # Po [2] MRO DANDA..MRO DOUBLE DANDA
|
||||
16AF5 ; Terminal_Punctuation # Po BASSA VAH FULL STOP
|
||||
16B37..16B39 ; Terminal_Punctuation # Po [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
|
||||
16B44 ; Terminal_Punctuation # Po PAHAWH HMONG SIGN XAUS
|
||||
1BC9F ; Terminal_Punctuation # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
|
||||
1DA87..1DA8A ; Terminal_Punctuation # Po [4] SIGNWRITING COMMA..SIGNWRITING COLON
|
||||
|
||||
# Total code points: 214
|
||||
# Total code points: 238
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -425,7 +429,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
|
||||
081B..0823 ; Other_Alphabetic # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
|
||||
0825..0827 ; Other_Alphabetic # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
|
||||
0829..082C ; Other_Alphabetic # Mn [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN
|
||||
08E4..08E9 ; Other_Alphabetic # Mn [6] ARABIC CURLY FATHA..ARABIC CURLY KASRATAN
|
||||
08E3..08E9 ; Other_Alphabetic # Mn [7] ARABIC TURNED DAMMA BELOW..ARABIC CURLY KASRATAN
|
||||
08F0..0902 ; Other_Alphabetic # Mn [19] ARABIC OPEN FATHATAN..DEVANAGARI SIGN ANUSVARA
|
||||
0903 ; Other_Alphabetic # Mc DEVANAGARI SIGN VISARGA
|
||||
093A ; Other_Alphabetic # Mn DEVANAGARI VOWEL SIGN OE
|
||||
@ -560,8 +564,6 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
|
||||
1930..1931 ; Other_Alphabetic # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
|
||||
1932 ; Other_Alphabetic # Mn LIMBU SMALL LETTER ANUSVARA
|
||||
1933..1938 ; Other_Alphabetic # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
|
||||
19B0..19C0 ; Other_Alphabetic # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
|
||||
19C8..19C9 ; Other_Alphabetic # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
|
||||
1A17..1A18 ; Other_Alphabetic # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
|
||||
1A19..1A1A ; Other_Alphabetic # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
|
||||
1A1B ; Other_Alphabetic # Mn BUGINESE VOWEL SIGN AE
|
||||
@ -605,7 +607,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
|
||||
24B6..24E9 ; Other_Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
|
||||
2DE0..2DFF ; Other_Alphabetic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
|
||||
A674..A67B ; Other_Alphabetic # Mn [8] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
|
||||
A69F ; Other_Alphabetic # Mn COMBINING CYRILLIC LETTER IOTIFIED E
|
||||
A69E..A69F ; Other_Alphabetic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
|
||||
A823..A824 ; Other_Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
|
||||
A825..A826 ; Other_Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
|
||||
A827 ; Other_Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO
|
||||
@ -672,7 +674,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
112DF ; Other_Alphabetic # Mn KHUDAWADI SIGN ANUSVARA
|
||||
112E0..112E2 ; Other_Alphabetic # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
|
||||
112E3..112E8 ; Other_Alphabetic # Mn [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
|
||||
11301 ; Other_Alphabetic # Mn GRANTHA SIGN CANDRABINDU
|
||||
11300..11301 ; Other_Alphabetic # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
|
||||
11302..11303 ; Other_Alphabetic # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
|
||||
1133E..1133F ; Other_Alphabetic # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
|
||||
11340 ; Other_Alphabetic # Mn GRANTHA VOWEL SIGN II
|
||||
@ -693,6 +695,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
115B8..115BB ; Other_Alphabetic # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
|
||||
115BC..115BD ; Other_Alphabetic # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
|
||||
115BE ; Other_Alphabetic # Mc SIDDHAM SIGN VISARGA
|
||||
115DC..115DD ; Other_Alphabetic # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
|
||||
11630..11632 ; Other_Alphabetic # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
|
||||
11633..1163A ; Other_Alphabetic # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
|
||||
1163B..1163C ; Other_Alphabetic # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
|
||||
@ -704,6 +707,11 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
116AD ; Other_Alphabetic # Mn TAKRI VOWEL SIGN AA
|
||||
116AE..116AF ; Other_Alphabetic # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
|
||||
116B0..116B5 ; Other_Alphabetic # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
|
||||
1171D..1171F ; Other_Alphabetic # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
|
||||
11720..11721 ; Other_Alphabetic # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
|
||||
11722..11725 ; Other_Alphabetic # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
|
||||
11726 ; Other_Alphabetic # Mc AHOM VOWEL SIGN E
|
||||
11727..1172A ; Other_Alphabetic # Mn [4] AHOM VOWEL SIGN AW..AHOM VOWEL SIGN AM
|
||||
16B30..16B36 ; Other_Alphabetic # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
|
||||
16F51..16F7E ; Other_Alphabetic # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
|
||||
1BC9E ; Other_Alphabetic # Mn DUPLOYAN DOUBLE MARK
|
||||
@ -720,15 +728,16 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
3021..3029 ; Ideographic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
|
||||
3038..303A ; Ideographic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
|
||||
3400..4DB5 ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
|
||||
4E00..9FCC ; Ideographic # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
|
||||
4E00..9FD5 ; Ideographic # Lo [20950] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FD5
|
||||
F900..FA6D ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
|
||||
FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
|
||||
20000..2A6D6 ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
|
||||
2A700..2B734 ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
|
||||
|
||||
# Total code points: 75633
|
||||
# Total code points: 81404
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -773,7 +782,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
07EB..07F3 ; Diacritic # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
|
||||
07F4..07F5 ; Diacritic # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
|
||||
0818..0819 ; Diacritic # Mn [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH
|
||||
08E4..08FE ; Diacritic # Mn [27] ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
|
||||
08E3..08FE ; Diacritic # Mn [28] ARABIC TURNED DAMMA BELOW..ARABIC DAMMA WITH DOT
|
||||
093C ; Diacritic # Mn DEVANAGARI SIGN NUKTA
|
||||
094D ; Diacritic # Mn DEVANAGARI SIGN VIRAMA
|
||||
0951..0954 ; Diacritic # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
|
||||
@ -877,7 +886,7 @@ AB5C..AB5F ; Diacritic # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER
|
||||
ABEC ; Diacritic # Mc MEETEI MAYEK LUM IYEK
|
||||
ABED ; Diacritic # Mn MEETEI MAYEK APUN IYEK
|
||||
FB1E ; Diacritic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
FE20..FE2D ; Diacritic # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW
|
||||
FE20..FE2F ; Diacritic # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
|
||||
FF3E ; Diacritic # Sk FULLWIDTH CIRCUMFLEX ACCENT
|
||||
FF40 ; Diacritic # Sk FULLWIDTH GRAVE ACCENT
|
||||
FF70 ; Diacritic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
|
||||
@ -889,6 +898,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
|
||||
11133..11134 ; Diacritic # Mn [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
|
||||
11173 ; Diacritic # Mn MAHAJANI SIGN NUKTA
|
||||
111C0 ; Diacritic # Mc SHARADA SIGN VIRAMA
|
||||
111CA..111CC ; Diacritic # Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
|
||||
11235 ; Diacritic # Mc KHOJKI SIGN VIRAMA
|
||||
11236 ; Diacritic # Mn KHOJKI SIGN NUKTA
|
||||
112E9..112EA ; Diacritic # Mn [2] KHUDAWADI SIGN NUKTA..KHUDAWADI SIGN VIRAMA
|
||||
@ -901,6 +911,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
|
||||
1163F ; Diacritic # Mn MODI SIGN VIRAMA
|
||||
116B6 ; Diacritic # Mc TAKRI SIGN VIRAMA
|
||||
116B7 ; Diacritic # Mn TAKRI SIGN NUKTA
|
||||
1172B ; Diacritic # Mn AHOM SIGN KILLER
|
||||
16AF0..16AF4 ; Diacritic # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
|
||||
16F8F..16F92 ; Diacritic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
|
||||
16F93..16F9F ; Diacritic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
|
||||
@ -911,7 +922,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
|
||||
1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
|
||||
1E8D0..1E8D6 ; Diacritic # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
|
||||
|
||||
# Total code points: 766
|
||||
# Total code points: 773
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1053,7 +1064,7 @@ FF9E..FF9F ; Other_Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND
|
||||
# ================================================
|
||||
|
||||
3400..4DB5 ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
|
||||
4E00..9FCC ; Unified_Ideograph # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
|
||||
4E00..9FD5 ; Unified_Ideograph # Lo [20950] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FD5
|
||||
FA0E..FA0F ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
|
||||
FA11 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA11
|
||||
FA13..FA14 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
|
||||
@ -1064,8 +1075,9 @@ FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..C
|
||||
20000..2A6D6 ; Unified_Ideograph # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
|
||||
2A700..2B734 ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
|
||||
# Total code points: 74617
|
||||
# Total code points: 80388
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1094,9 +1106,9 @@ E01F0..E0FFF ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>.
|
||||
2329 ; Deprecated # Ps LEFT-POINTING ANGLE BRACKET
|
||||
232A ; Deprecated # Pe RIGHT-POINTING ANGLE BRACKET
|
||||
E0001 ; Deprecated # Cf LANGUAGE TAG
|
||||
E0020..E007F ; Deprecated # Cf [96] TAG SPACE..CANCEL TAG
|
||||
E007F ; Deprecated # Cf CANCEL TAG
|
||||
|
||||
# Total code points: 111
|
||||
# Total code points: 16
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1138,11 +1150,13 @@ E0020..E007F ; Deprecated # Cf [96] TAG SPACE..CANCEL TAG
|
||||
|
||||
0E40..0E44 ; Logical_Order_Exception # Lo [5] THAI CHARACTER SARA E..THAI CHARACTER SARA AI MAIMALAI
|
||||
0EC0..0EC4 ; Logical_Order_Exception # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
|
||||
19B5..19B7 ; Logical_Order_Exception # Lo [3] NEW TAI LUE VOWEL SIGN E..NEW TAI LUE VOWEL SIGN O
|
||||
19BA ; Logical_Order_Exception # Lo NEW TAI LUE VOWEL SIGN AY
|
||||
AAB5..AAB6 ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
|
||||
AAB9 ; Logical_Order_Exception # Lo TAI VIET VOWEL UEA
|
||||
AABB..AABC ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL AUE..TAI VIET VOWEL AY
|
||||
|
||||
# Total code points: 15
|
||||
# Total code points: 19
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1213,18 +1227,22 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
|
||||
11141..11143 ; STerm # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
|
||||
111C5..111C6 ; STerm # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
|
||||
111CD ; STerm # Po SHARADA SUTRA MARK
|
||||
111DE..111DF ; STerm # Po [2] SHARADA SECTION MARK-1..SHARADA SECTION MARK-2
|
||||
11238..11239 ; STerm # Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
|
||||
1123B..1123C ; STerm # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
|
||||
112A9 ; STerm # Po MULTANI SECTION MARK
|
||||
115C2..115C3 ; STerm # Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
|
||||
115C9 ; STerm # Po SIDDHAM END OF TEXT MARK
|
||||
115C9..115D7 ; STerm # Po [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
|
||||
11641..11642 ; STerm # Po [2] MODI DANDA..MODI DOUBLE DANDA
|
||||
1173C..1173E ; STerm # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
|
||||
16A6E..16A6F ; STerm # Po [2] MRO DANDA..MRO DOUBLE DANDA
|
||||
16AF5 ; STerm # Po BASSA VAH FULL STOP
|
||||
16B37..16B38 ; STerm # Po [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
|
||||
16B44 ; STerm # Po PAHAWH HMONG SIGN XAUS
|
||||
1BC9F ; STerm # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
|
||||
1DA88 ; STerm # Po SIGNWRITING FULL STOP
|
||||
|
||||
# Total code points: 99
|
||||
# Total code points: 120
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1432,7 +1450,9 @@ E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
|
||||
2BBD..2BC8 ; Pattern_Syntax # So [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
|
||||
2BC9 ; Pattern_Syntax # Cn <reserved-2BC9>
|
||||
2BCA..2BD1 ; Pattern_Syntax # So [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
|
||||
2BD2..2BFF ; Pattern_Syntax # Cn [46] <reserved-2BD2>..<reserved-2BFF>
|
||||
2BD2..2BEB ; Pattern_Syntax # Cn [26] <reserved-2BD2>..<reserved-2BEB>
|
||||
2BEC..2BEF ; Pattern_Syntax # So [4] LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
|
||||
2BF0..2BFF ; Pattern_Syntax # Cn [16] <reserved-2BF0>..<reserved-2BFF>
|
||||
2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
|
||||
2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET
|
||||
2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET
|
||||
|
@ -1,10 +1,16 @@
|
||||
# Scripts-7.0.0.txt
|
||||
# Date: 2014-05-15, 00:11:35 GMT [MD]
|
||||
# Scripts-8.0.0.txt
|
||||
# Date: 2015-03-11, 22:29:42 GMT [MD]
|
||||
#
|
||||
# Unicode Character Database
|
||||
# Copyright (c) 1991-2014 Unicode, Inc.
|
||||
# Copyright (c) 1991-2015 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
# For more information, see:
|
||||
# UAX #24, Unicode Script Property: http://www.unicode.org/reports/tr24/
|
||||
# Especially the sections:
|
||||
# http://www.unicode.org/reports/tr24/#Assignment_Script_Values
|
||||
# http://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
|
||||
#
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -89,7 +95,6 @@
|
||||
061C ; Common # Cf ARABIC LETTER MARK
|
||||
061F ; Common # Po ARABIC QUESTION MARK
|
||||
0640 ; Common # Lm ARABIC TATWEEL
|
||||
0660..0669 ; Common # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
|
||||
06DD ; Common # Cf ARABIC END OF AYAH
|
||||
0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
|
||||
0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
|
||||
@ -148,7 +153,7 @@
|
||||
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
|
||||
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
|
||||
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
|
||||
20A0..20BD ; Common # Sc [30] EURO-CURRENCY SIGN..RUBLE SIGN
|
||||
20A0..20BE ; Common # Sc [31] EURO-CURRENCY SIGN..LARI SIGN
|
||||
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
|
||||
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
|
||||
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
|
||||
@ -182,6 +187,7 @@
|
||||
214F ; Common # So SYMBOL FOR SAMARITAN SOURCE
|
||||
2150..215F ; Common # No [16] VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE
|
||||
2189 ; Common # No VULGAR FRACTION ZERO THIRDS
|
||||
218A..218B ; Common # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
|
||||
2190..2194 ; Common # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
|
||||
2195..2199 ; Common # So [5] UP DOWN ARROW..SOUTH WEST ARROW
|
||||
219A..219B ; Common # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
|
||||
@ -304,6 +310,7 @@
|
||||
2B98..2BB9 ; Common # So [34] THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
|
||||
2BBD..2BC8 ; Common # So [12] BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
|
||||
2BCA..2BD1 ; Common # So [8] TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
|
||||
2BEC..2BEF ; Common # So [4] LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
|
||||
2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
|
||||
2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET
|
||||
2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET
|
||||
@ -512,7 +519,7 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
|
||||
1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
|
||||
1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
|
||||
1D1AE..1D1DD ; Common # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
|
||||
1D1AE..1D1E8 ; Common # So [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
|
||||
1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
|
||||
1D360..1D371 ; Common # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
|
||||
1D400..1D454 ; Common # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
|
||||
@ -571,16 +578,11 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
1F210..1F23A ; Common # So [43] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-55B6
|
||||
1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
|
||||
1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
|
||||
1F300..1F32C ; Common # So [45] CYCLONE..WIND BLOWING FACE
|
||||
1F330..1F37D ; Common # So [78] CHESTNUT..FORK AND KNIFE WITH PLATE
|
||||
1F380..1F3CE ; Common # So [79] RIBBON..RACING CAR
|
||||
1F3D4..1F3F7 ; Common # So [36] SNOW CAPPED MOUNTAIN..LABEL
|
||||
1F400..1F4FE ; Common # So [255] RAT..PORTABLE STEREO
|
||||
1F500..1F54A ; Common # So [75] TWISTED RIGHTWARDS ARROWS..DOVE OF PEACE
|
||||
1F550..1F579 ; Common # So [42] CLOCK FACE ONE OCLOCK..JOYSTICK
|
||||
1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA
|
||||
1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
|
||||
1F400..1F579 ; Common # So [378] RAT..JOYSTICK
|
||||
1F57B..1F5A3 ; Common # So [41] LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
|
||||
1F5A5..1F642 ; Common # So [158] DESKTOP COMPUTER..SLIGHTLY SMILING FACE
|
||||
1F645..1F6CF ; Common # So [139] FACE WITH NO GOOD GESTURE..BED
|
||||
1F5A5..1F6D0 ; Common # So [300] DESKTOP COMPUTER..PLACE OF WORSHIP
|
||||
1F6E0..1F6EC ; Common # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
|
||||
1F6F0..1F6F3 ; Common # So [4] SATELLITE..PASSENGER SHIP
|
||||
1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
|
||||
@ -590,10 +592,13 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
|
||||
1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
|
||||
1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
|
||||
1F910..1F918 ; Common # So [9] ZIPPER-MOUTH FACE..SIGN OF THE HORNS
|
||||
1F980..1F984 ; Common # So [5] CRAB..UNICORN FACE
|
||||
1F9C0 ; Common # So CHEESE WEDGE
|
||||
E0001 ; Common # Cf LANGUAGE TAG
|
||||
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
|
||||
|
||||
# Total code points: 7129
|
||||
# Total code points: 7179
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -635,20 +640,21 @@ A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN
|
||||
A770 ; Latin # Lm MODIFIER LETTER US
|
||||
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
|
||||
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
|
||||
A78F ; Latin # Lo LATIN LETTER SINOLOGICAL DOT
|
||||
A790..A7AD ; Latin # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT
|
||||
A7B0..A7B1 ; Latin # L& [2] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER TURNED T
|
||||
A7B0..A7B7 ; Latin # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA
|
||||
A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
|
||||
A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
|
||||
A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M
|
||||
A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
|
||||
AB30..AB5A ; Latin # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
|
||||
AB5C..AB5F ; Latin # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
|
||||
AB64 ; Latin # L& LATIN SMALL LETTER INVERTED ALPHA
|
||||
AB60..AB64 ; Latin # L& [5] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER INVERTED ALPHA
|
||||
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
|
||||
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
|
||||
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
|
||||
|
||||
# Total code points: 1338
|
||||
# Total code points: 1349
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -731,9 +737,10 @@ A67E ; Cyrillic # Po CYRILLIC KAVYKA
|
||||
A67F ; Cyrillic # Lm CYRILLIC PAYEROK
|
||||
A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
|
||||
A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
|
||||
A69F ; Cyrillic # Mn COMBINING CYRILLIC LETTER IOTIFIED E
|
||||
A69E..A69F ; Cyrillic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
|
||||
FE2E..FE2F ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
|
||||
|
||||
# Total code points: 431
|
||||
# Total code points: 434
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -788,6 +795,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
|
||||
0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
|
||||
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
|
||||
0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW
|
||||
0660..0669 ; Arabic # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
|
||||
066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
|
||||
066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
|
||||
0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
|
||||
@ -806,8 +814,8 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
|
||||
06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
|
||||
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
|
||||
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
|
||||
08A0..08B2 ; Arabic # Lo [19] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
|
||||
08E4..08FF ; Arabic # Mn [28] ARABIC CURLY FATHA..ARABIC MARK SIDEWAYS NOON GHUNNA
|
||||
08A0..08B4 ; Arabic # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
|
||||
08E3..08FF ; Arabic # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
|
||||
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
|
||||
FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
|
||||
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
|
||||
@ -854,7 +862,7 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
|
||||
1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
|
||||
1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
|
||||
|
||||
# Total code points: 1244
|
||||
# Total code points: 1257
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -902,8 +910,10 @@ A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING
|
||||
A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
|
||||
A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
|
||||
A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
|
||||
A8FC ; Devanagari # Po DEVANAGARI SIGN SIDDHAM
|
||||
A8FD ; Devanagari # Lo DEVANAGARI JAIN OM
|
||||
|
||||
# Total code points: 152
|
||||
# Total code points: 154
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -987,8 +997,9 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
|
||||
0AE6..0AEF ; Gujarati # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
|
||||
0AF0 ; Gujarati # Po GUJARATI ABBREVIATION SIGN
|
||||
0AF1 ; Gujarati # Sc GUJARATI RUPEE SIGN
|
||||
0AF9 ; Gujarati # Lo GUJARATI LETTER ZHA
|
||||
|
||||
# Total code points: 84
|
||||
# Total code points: 85
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1064,14 +1075,14 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
|
||||
0C46..0C48 ; Telugu # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
|
||||
0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
|
||||
0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
|
||||
0C58..0C59 ; Telugu # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
|
||||
0C58..0C5A ; Telugu # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
|
||||
0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
|
||||
0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
|
||||
0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
|
||||
0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
|
||||
0C7F ; Telugu # So TELUGU SIGN TUUMU
|
||||
|
||||
# Total code points: 95
|
||||
# Total code points: 96
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1115,14 +1126,14 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
|
||||
0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
|
||||
0D4E ; Malayalam # Lo MALAYALAM LETTER DOT REPH
|
||||
0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
|
||||
0D60..0D61 ; Malayalam # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
|
||||
0D5F..0D61 ; Malayalam # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
|
||||
0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
|
||||
0D66..0D6F ; Malayalam # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
|
||||
0D70..0D75 ; Malayalam # No [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
|
||||
0D79 ; Malayalam # So MALAYALAM DATE MARK
|
||||
0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
|
||||
|
||||
# Total code points: 99
|
||||
# Total code points: 100
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1358,9 +1369,11 @@ AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
|
||||
|
||||
# ================================================
|
||||
|
||||
13A0..13F4 ; Cherokee # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
|
||||
13A0..13F5 ; Cherokee # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
|
||||
13F8..13FD ; Cherokee # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
|
||||
AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
|
||||
|
||||
# Total code points: 85
|
||||
# Total code points: 172
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1472,15 +1485,16 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
|
||||
3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
|
||||
303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
|
||||
3400..4DB5 ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
|
||||
4E00..9FCC ; Han # Lo [20941] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCC
|
||||
4E00..9FD5 ; Han # Lo [20950] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FD5
|
||||
F900..FA6D ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
|
||||
FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
|
||||
20000..2A6D6 ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
|
||||
2A700..2B734 ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
|
||||
|
||||
# Total code points: 75963
|
||||
# Total code points: 81734
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -1680,9 +1694,7 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
|
||||
# ================================================
|
||||
|
||||
1980..19AB ; New_Tai_Lue # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
|
||||
19B0..19C0 ; New_Tai_Lue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
|
||||
19C1..19C7 ; New_Tai_Lue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
|
||||
19C8..19C9 ; New_Tai_Lue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
|
||||
19B0..19C9 ; New_Tai_Lue # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
|
||||
19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
|
||||
19DA ; New_Tai_Lue # No NEW TAI LUE THAM DIGIT ONE
|
||||
19DE..19DF ; New_Tai_Lue # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
|
||||
@ -1770,11 +1782,12 @@ A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI
|
||||
|
||||
# ================================================
|
||||
|
||||
12000..12398 ; Cuneiform # Lo [921] CUNEIFORM SIGN A..CUNEIFORM SIGN UM TIMES ME
|
||||
12000..12399 ; Cuneiform # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
|
||||
12400..1246E ; Cuneiform # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
|
||||
12470..12474 ; Cuneiform # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
|
||||
12480..12543 ; Cuneiform # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
|
||||
|
||||
# Total code points: 1037
|
||||
# Total code points: 1234
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -2151,9 +2164,12 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
# ================================================
|
||||
|
||||
109A0..109B7 ; Meroitic_Cursive # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
|
||||
109BC..109BD ; Meroitic_Cursive # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
|
||||
109BE..109BF ; Meroitic_Cursive # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
|
||||
109C0..109CF ; Meroitic_Cursive # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
|
||||
109D2..109FF ; Meroitic_Cursive # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
|
||||
|
||||
# Total code points: 26
|
||||
# Total code points: 90
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -2180,12 +2196,16 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
111B6..111BE ; Sharada # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
|
||||
111BF..111C0 ; Sharada # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
|
||||
111C1..111C4 ; Sharada # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
|
||||
111C5..111C8 ; Sharada # Po [4] SHARADA DANDA..SHARADA SEPARATOR
|
||||
111C5..111C9 ; Sharada # Po [5] SHARADA DANDA..SHARADA SANDHI MARK
|
||||
111CA..111CC ; Sharada # Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
|
||||
111CD ; Sharada # Po SHARADA SUTRA MARK
|
||||
111D0..111D9 ; Sharada # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
|
||||
111DA ; Sharada # Lo SHARADA EKAM
|
||||
111DB ; Sharada # Po SHARADA SIGN SIDDHAM
|
||||
111DC ; Sharada # Lo SHARADA HEADSTROKE
|
||||
111DD..111DF ; Sharada # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
|
||||
|
||||
# Total code points: 85
|
||||
# Total code points: 94
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -2243,7 +2263,7 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
|
||||
# ================================================
|
||||
|
||||
11301 ; Grantha # Mn GRANTHA SIGN CANDRABINDU
|
||||
11300..11301 ; Grantha # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
|
||||
11302..11303 ; Grantha # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
|
||||
11305..1130C ; Grantha # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
|
||||
1130F..11310 ; Grantha # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
|
||||
@ -2258,13 +2278,14 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
11341..11344 ; Grantha # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
|
||||
11347..11348 ; Grantha # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
|
||||
1134B..1134D ; Grantha # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
|
||||
11350 ; Grantha # Lo GRANTHA OM
|
||||
11357 ; Grantha # Mc GRANTHA AU LENGTH MARK
|
||||
1135D..11361 ; Grantha # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
|
||||
11362..11363 ; Grantha # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
|
||||
11366..1136C ; Grantha # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
|
||||
11370..11374 ; Grantha # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
|
||||
|
||||
# Total code points: 83
|
||||
# Total code points: 85
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -2407,9 +2428,11 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
115BC..115BD ; Siddham # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
|
||||
115BE ; Siddham # Mc SIDDHAM SIGN VISARGA
|
||||
115BF..115C0 ; Siddham # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
|
||||
115C1..115C9 ; Siddham # Po [9] SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
|
||||
115C1..115D7 ; Siddham # Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
|
||||
115D8..115DB ; Siddham # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
|
||||
115DC..115DD ; Siddham # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
|
||||
|
||||
# Total code points: 72
|
||||
# Total code points: 92
|
||||
|
||||
# ================================================
|
||||
|
||||
@ -2448,4 +2471,69 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
|
||||
# Total code points: 84
|
||||
|
||||
# ================================================
|
||||
|
||||
11700..11719 ; Ahom # Lo [26] AHOM LETTER KA..AHOM LETTER JHA
|
||||
1171D..1171F ; Ahom # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
|
||||
11720..11721 ; Ahom # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
|
||||
11722..11725 ; Ahom # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
|
||||
11726 ; Ahom # Mc AHOM VOWEL SIGN E
|
||||
11727..1172B ; Ahom # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
|
||||
11730..11739 ; Ahom # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
|
||||
1173A..1173B ; Ahom # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
|
||||
1173C..1173E ; Ahom # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
|
||||
1173F ; Ahom # So AHOM SYMBOL VI
|
||||
|
||||
# Total code points: 57
|
||||
|
||||
# ================================================
|
||||
|
||||
14400..14646 ; Anatolian_Hieroglyphs # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
|
||||
|
||||
# Total code points: 583
|
||||
|
||||
# ================================================
|
||||
|
||||
108E0..108F2 ; Hatran # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
|
||||
108F4..108F5 ; Hatran # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
|
||||
108FB..108FF ; Hatran # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
|
||||
|
||||
# Total code points: 26
|
||||
|
||||
# ================================================
|
||||
|
||||
11280..11286 ; Multani # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
|
||||
11288 ; Multani # Lo MULTANI LETTER GHA
|
||||
1128A..1128D ; Multani # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
|
||||
1128F..1129D ; Multani # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
|
||||
1129F..112A8 ; Multani # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
|
||||
112A9 ; Multani # Po MULTANI SECTION MARK
|
||||
|
||||
# Total code points: 38
|
||||
|
||||
# ================================================
|
||||
|
||||
10C80..10CB2 ; Old_Hungarian # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
|
||||
10CC0..10CF2 ; Old_Hungarian # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
|
||||
10CFA..10CFF ; Old_Hungarian # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
|
||||
|
||||
# Total code points: 108
|
||||
|
||||
# ================================================
|
||||
|
||||
1D800..1D9FF ; SignWriting # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
|
||||
1DA00..1DA36 ; SignWriting # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
|
||||
1DA37..1DA3A ; SignWriting # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
|
||||
1DA3B..1DA6C ; SignWriting # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
|
||||
1DA6D..1DA74 ; SignWriting # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
|
||||
1DA75 ; SignWriting # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
|
||||
1DA76..1DA83 ; SignWriting # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
|
||||
1DA84 ; SignWriting # Mn SIGNWRITING LOCATION HEAD NECK
|
||||
1DA85..1DA86 ; SignWriting # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
|
||||
1DA87..1DA8B ; SignWriting # Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
|
||||
1DA9B..1DA9F ; SignWriting # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
|
||||
1DAA1..1DAAF ; SignWriting # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
|
||||
|
||||
# Total code points: 672
|
||||
|
||||
# EOF
|
||||
|
@ -1,5 +1,5 @@
|
||||
# SpecialCasing-7.0.0.txt
|
||||
# Date: 2014-03-18, 07:18:02 GMT [MD]
|
||||
# SpecialCasing-8.0.0.txt
|
||||
# Date: 2014-12-16, 23:08:04 GMT [MD]
|
||||
#
|
||||
# Unicode Character Database
|
||||
# Copyright (c) 1991-2014 Unicode, Inc.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
||||
7.0.0
|
||||
8.0.0
|
||||
|
@ -70,7 +70,7 @@ $(GENDATA_JAVA_SECURITY): $(BUILD_TOOLS) $(GENDATA_JAVA_SECURITY_SRC) $(RESTRICT
|
||||
$(ECHO) "Generating java.security"
|
||||
$(MKDIR) -p $(@D)
|
||||
$(TOOL_MAKEJAVASECURITY) $(GENDATA_JAVA_SECURITY_SRC) $@ $(OPENJDK_TARGET_OS) \
|
||||
$(RESTRICTED_PKGS_SRC) || exit 1
|
||||
$(OPENJDK_TARGET_CPU_ARCH) $(RESTRICTED_PKGS_SRC) || exit 1
|
||||
|
||||
TARGETS += $(GENDATA_JAVA_SECURITY)
|
||||
|
||||
|
@ -41,71 +41,4 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated_nimbus: $(NIMBUS_SKIN_FI
|
||||
|
||||
GENSRC_SWING_NIMBUS := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated_nimbus
|
||||
|
||||
#
|
||||
# Generate beaninfo java files
|
||||
#
|
||||
|
||||
BEANINFO_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/gensrc_no_docs/java.desktop
|
||||
DOCLET_DATA_DIR := $(JDK_TOPDIR)/make/data/swingbeaninfo
|
||||
|
||||
# javax.swing package
|
||||
BEANS = AbstractButton Box JComponent JApplet JButton \
|
||||
JCheckBox JCheckBoxMenuItem JComboBox JColorChooser \
|
||||
JDesktopPane JDialog JEditorPane JFileChooser JFrame \
|
||||
JFormattedTextField JInternalFrame JLabel JLayeredPane \
|
||||
JList JMenu JMenuBar JMenuItem JOptionPane JPanel \
|
||||
JPasswordField JPopupMenu JProgressBar JRadioButton \
|
||||
JRadioButtonMenuItem JScrollBar JScrollPane JSeparator \
|
||||
JSlider JSplitPane JSpinner JTabbedPane JTable \
|
||||
JTextArea JTextField JTextPane JToggleButton JToolBar \
|
||||
JTree JWindow
|
||||
|
||||
# javax.swing.text package
|
||||
BEANS_TEXT = JTextComponent
|
||||
|
||||
BEANS_SRC = $(BEANS:%=$(JDK_TOPDIR)/src/java.desktop/share/classes/javax/swing/%.java) \
|
||||
$(BEANS_TEXT:%=$(JDK_TOPDIR)/src/java.desktop/share/classes/javax/swing/text/%.java)
|
||||
|
||||
# Dummy variable so far, in the old build system it was false by default
|
||||
SWINGBEAN_DEBUG_FLAG = false
|
||||
# GenDocletBeanInfo is compiled in Tools.gmk and picks up from $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes
|
||||
# LocaleDataMetaInfo needs to be generated before running this to avoid confusing errors
|
||||
# in the build log.
|
||||
$(BEANINFO_OUTPUTDIR)/_the.generated_beaninfo: $(BEANS_SRC) \
|
||||
$(BEANINFO_OUTPUTDIR)/javax/swing/SwingBeanInfoBase.java \
|
||||
$(BEANINFO_OUTPUTDIR)/sun/swing/BeanInfoUtils.java $(BUILD_TOOLS_JDK)
|
||||
$(ECHO) Generating beaninfo
|
||||
$(MKDIR) -p $(BEANINFO_OUTPUTDIR)/javax/swing
|
||||
$(JAVA) -Djava.awt.headless=true $(NEW_JAVADOC) \
|
||||
-sourcepath $(call PathList,\
|
||||
$(wildcard $(JDK_TOPDIR)/src/*/*/classes) \
|
||||
$(SUPPORT_OUTPUTDIR)/gensrc/java.base) \
|
||||
-doclet build.tools.swingbeaninfo.GenDocletBeanInfo \
|
||||
-x $(SWINGBEAN_DEBUG_FLAG) -d $(BEANINFO_OUTPUTDIR)/javax/swing \
|
||||
-t $(DOCLET_DATA_DIR)/SwingBeanInfo.template \
|
||||
-docletpath $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
|
||||
-XDignore.symbol.file=true \
|
||||
-classpath $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes $(BEANS_SRC) $(LOG_INFO)
|
||||
# Move the JTextComponent into its proper package directory.
|
||||
$(MKDIR) -p $(BEANINFO_OUTPUTDIR)/javax/swing/text
|
||||
$(MV) $(BEANINFO_OUTPUTDIR)/javax/swing/JTextComponentBeanInfo.java \
|
||||
$(BEANINFO_OUTPUTDIR)/javax/swing/text/JTextComponentBeanInfo.java
|
||||
$(TOUCH) $@
|
||||
|
||||
# This file is the part of dt.jar
|
||||
# For some reason it is under $(JDK_TOPDIR)/make/data/swingbeaninfo
|
||||
# Should it be moved under $(JDK_TOPDIR)/src/java.desktop/share/classes/javax/swing instead?
|
||||
$(BEANINFO_OUTPUTDIR)/javax/swing/SwingBeanInfoBase.java: \
|
||||
$(DOCLET_DATA_DIR)/javax/swing/SwingBeanInfoBase.java
|
||||
$(call install-file)
|
||||
|
||||
# This file is the part of dt.jar
|
||||
# For some reason it is under $(JDK_TOPDIR)/make/data/swingbeaninfo
|
||||
# Should it be moved under $(JDK_TOPDIR)/src/java.desktop/share/classes/sun/swing instead?
|
||||
$(BEANINFO_OUTPUTDIR)/sun/swing/BeanInfoUtils.java: \
|
||||
$(DOCLET_DATA_DIR)/sun/swing/BeanInfoUtils.java
|
||||
$(call install-file)
|
||||
|
||||
GENSRC_SWING_BEANINFO = $(BEANINFO_OUTPUTDIR)/_the.generated_beaninfo
|
||||
|
||||
GENSRC_JAVA_DESKTOP += $(GENSRC_SWING_BEANINFO) $(GENSRC_SWING_NIMBUS)
|
||||
GENSRC_JAVA_DESKTOP += $(GENSRC_SWING_NIMBUS)
|
||||
|
31
jdk/make/launcher/Launcher-jdk.jshell.gmk
Normal file
31
jdk/make/launcher/Launcher-jdk.jshell.gmk
Normal file
@ -0,0 +1,31 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
include LauncherCommon.gmk
|
||||
|
||||
$(eval $(call SetupLauncher,jshell, \
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "jdk.internal.jshell.tool.JShellTool"$(COMMA) }'))
|
@ -391,6 +391,8 @@ LIBLCMS_CPPFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
|
||||
-I$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
# The fast floor code loses precision.
|
||||
LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
|
||||
|
||||
ifeq ($(USE_EXTERNAL_LCMS), true)
|
||||
# If we're using an external library, we'll just need the wrapper part.
|
||||
|
@ -50,19 +50,21 @@ public class MakeJavaSecurity {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
if (args.length < 3) {
|
||||
if (args.length < 4) {
|
||||
System.err.println("Usage: java MakeJavaSecurity " +
|
||||
"[input java.security file name] " +
|
||||
"[output java.security file name] " +
|
||||
"[openjdk target os] " +
|
||||
"[openjdk target cpu architecture]" +
|
||||
"[more restricted packages file name?]");
|
||||
System.exit(1);
|
||||
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
// more restricted packages
|
||||
List<String> extraLines;
|
||||
if (args.length == 4) {
|
||||
extraLines = Files.readAllLines(Paths.get(args[3]));
|
||||
if (args.length == 5) {
|
||||
extraLines = Files.readAllLines(Paths.get(args[4]));
|
||||
} else {
|
||||
extraLines = Collections.emptyList();
|
||||
}
|
||||
@ -96,7 +98,11 @@ public class MakeJavaSecurity {
|
||||
mode = 0;
|
||||
iter.remove();
|
||||
} else if (line.startsWith("#ifdef ")) {
|
||||
mode = line.endsWith(args[2])?1:2;
|
||||
if (line.indexOf('-') > 0) {
|
||||
mode = line.endsWith(args[2]+"-"+args[3]) ? 1 : 2;
|
||||
} else {
|
||||
mode = line.endsWith(args[2]) ? 1 : 2;
|
||||
}
|
||||
iter.remove();
|
||||
} else if (line.startsWith("#ifndef ")) {
|
||||
mode = line.endsWith(args[2])?2:1;
|
||||
|
@ -29,3 +29,4 @@ jdk.sctp
|
||||
jdk.security.auth
|
||||
jdk.security.jgss
|
||||
jdk.snmp
|
||||
jdk.vm.ci
|
||||
|
@ -189,6 +189,9 @@ public class ObjectStreamClass implements Serializable {
|
||||
/** superclass descriptor appearing in stream */
|
||||
private ObjectStreamClass superDesc;
|
||||
|
||||
/** true if, and only if, the object has been correctly initialized */
|
||||
private boolean initialized;
|
||||
|
||||
/**
|
||||
* Initializes native code.
|
||||
*/
|
||||
@ -266,6 +269,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
if (cl == null) {
|
||||
return null;
|
||||
}
|
||||
requireInitialized();
|
||||
if (System.getSecurityManager() != null) {
|
||||
Class<?> caller = Reflection.getCallerClass();
|
||||
if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) {
|
||||
@ -533,6 +537,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
name, "unmatched serializable field(s) declared");
|
||||
}
|
||||
}
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -550,6 +555,14 @@ public class ObjectStreamClass implements Serializable {
|
||||
ObjectStreamClass superDesc)
|
||||
throws InvalidClassException
|
||||
{
|
||||
ObjectStreamClass osc = null;
|
||||
if (cl != null) {
|
||||
osc = lookup(cl, true);
|
||||
if (!osc.isProxy) {
|
||||
throw new InvalidClassException(
|
||||
"cannot bind proxy descriptor to a non-proxy class");
|
||||
}
|
||||
}
|
||||
this.cl = cl;
|
||||
this.resolveEx = resolveEx;
|
||||
this.superDesc = superDesc;
|
||||
@ -557,21 +570,17 @@ public class ObjectStreamClass implements Serializable {
|
||||
serializable = true;
|
||||
suid = Long.valueOf(0);
|
||||
fields = NO_FIELDS;
|
||||
|
||||
if (cl != null) {
|
||||
localDesc = lookup(cl, true);
|
||||
if (!localDesc.isProxy) {
|
||||
throw new InvalidClassException(
|
||||
"cannot bind proxy descriptor to a non-proxy class");
|
||||
}
|
||||
if (osc != null) {
|
||||
localDesc = osc;
|
||||
name = localDesc.name;
|
||||
externalizable = localDesc.externalizable;
|
||||
cons = localDesc.cons;
|
||||
writeReplaceMethod = localDesc.writeReplaceMethod;
|
||||
readResolveMethod = localDesc.readResolveMethod;
|
||||
deserializeEx = localDesc.deserializeEx;
|
||||
cons = localDesc.cons;
|
||||
}
|
||||
fieldRefl = getReflector(fields, localDesc);
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -583,11 +592,57 @@ public class ObjectStreamClass implements Serializable {
|
||||
ObjectStreamClass superDesc)
|
||||
throws InvalidClassException
|
||||
{
|
||||
long suid = Long.valueOf(model.getSerialVersionUID());
|
||||
ObjectStreamClass osc = null;
|
||||
if (cl != null) {
|
||||
osc = lookup(cl, true);
|
||||
if (osc.isProxy) {
|
||||
throw new InvalidClassException(
|
||||
"cannot bind non-proxy descriptor to a proxy class");
|
||||
}
|
||||
if (model.isEnum != osc.isEnum) {
|
||||
throw new InvalidClassException(model.isEnum ?
|
||||
"cannot bind enum descriptor to a non-enum class" :
|
||||
"cannot bind non-enum descriptor to an enum class");
|
||||
}
|
||||
|
||||
if (model.serializable == osc.serializable &&
|
||||
!cl.isArray() &&
|
||||
suid != osc.getSerialVersionUID()) {
|
||||
throw new InvalidClassException(osc.name,
|
||||
"local class incompatible: " +
|
||||
"stream classdesc serialVersionUID = " + suid +
|
||||
", local class serialVersionUID = " +
|
||||
osc.getSerialVersionUID());
|
||||
}
|
||||
|
||||
if (!classNamesEqual(model.name, osc.name)) {
|
||||
throw new InvalidClassException(osc.name,
|
||||
"local class name incompatible with stream class " +
|
||||
"name \"" + model.name + "\"");
|
||||
}
|
||||
|
||||
if (!model.isEnum) {
|
||||
if ((model.serializable == osc.serializable) &&
|
||||
(model.externalizable != osc.externalizable)) {
|
||||
throw new InvalidClassException(osc.name,
|
||||
"Serializable incompatible with Externalizable");
|
||||
}
|
||||
|
||||
if ((model.serializable != osc.serializable) ||
|
||||
(model.externalizable != osc.externalizable) ||
|
||||
!(model.serializable || model.externalizable)) {
|
||||
deserializeEx = new ExceptionInfo(
|
||||
osc.name, "class invalid for deserialization");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.cl = cl;
|
||||
this.resolveEx = resolveEx;
|
||||
this.superDesc = superDesc;
|
||||
name = model.name;
|
||||
suid = Long.valueOf(model.getSerialVersionUID());
|
||||
this.suid = suid;
|
||||
isProxy = false;
|
||||
isEnum = model.isEnum;
|
||||
serializable = model.serializable;
|
||||
@ -598,53 +653,8 @@ public class ObjectStreamClass implements Serializable {
|
||||
primDataSize = model.primDataSize;
|
||||
numObjFields = model.numObjFields;
|
||||
|
||||
if (cl != null) {
|
||||
localDesc = lookup(cl, true);
|
||||
if (localDesc.isProxy) {
|
||||
throw new InvalidClassException(
|
||||
"cannot bind non-proxy descriptor to a proxy class");
|
||||
}
|
||||
if (isEnum != localDesc.isEnum) {
|
||||
throw new InvalidClassException(isEnum ?
|
||||
"cannot bind enum descriptor to a non-enum class" :
|
||||
"cannot bind non-enum descriptor to an enum class");
|
||||
}
|
||||
|
||||
if (serializable == localDesc.serializable &&
|
||||
!cl.isArray() &&
|
||||
suid.longValue() != localDesc.getSerialVersionUID())
|
||||
{
|
||||
throw new InvalidClassException(localDesc.name,
|
||||
"local class incompatible: " +
|
||||
"stream classdesc serialVersionUID = " + suid +
|
||||
", local class serialVersionUID = " +
|
||||
localDesc.getSerialVersionUID());
|
||||
}
|
||||
|
||||
if (!classNamesEqual(name, localDesc.name)) {
|
||||
throw new InvalidClassException(localDesc.name,
|
||||
"local class name incompatible with stream class " +
|
||||
"name \"" + name + "\"");
|
||||
}
|
||||
|
||||
if (!isEnum) {
|
||||
if ((serializable == localDesc.serializable) &&
|
||||
(externalizable != localDesc.externalizable))
|
||||
{
|
||||
throw new InvalidClassException(localDesc.name,
|
||||
"Serializable incompatible with Externalizable");
|
||||
}
|
||||
|
||||
if ((serializable != localDesc.serializable) ||
|
||||
(externalizable != localDesc.externalizable) ||
|
||||
!(serializable || externalizable))
|
||||
{
|
||||
deserializeEx = new ExceptionInfo(
|
||||
localDesc.name, "class invalid for deserialization");
|
||||
}
|
||||
}
|
||||
|
||||
cons = localDesc.cons;
|
||||
if (osc != null) {
|
||||
localDesc = osc;
|
||||
writeObjectMethod = localDesc.writeObjectMethod;
|
||||
readObjectMethod = localDesc.readObjectMethod;
|
||||
readObjectNoDataMethod = localDesc.readObjectNoDataMethod;
|
||||
@ -653,10 +663,13 @@ public class ObjectStreamClass implements Serializable {
|
||||
if (deserializeEx == null) {
|
||||
deserializeEx = localDesc.deserializeEx;
|
||||
}
|
||||
cons = localDesc.cons;
|
||||
}
|
||||
|
||||
fieldRefl = getReflector(fields, localDesc);
|
||||
// reassign to matched fields so as to reflect local unshared settings
|
||||
fields = fieldRefl.getFields();
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -758,12 +771,21 @@ public class ObjectStreamClass implements Serializable {
|
||||
return resolveEx;
|
||||
}
|
||||
|
||||
/**
|
||||
* Throws InternalError if not initialized.
|
||||
*/
|
||||
private final void requireInitialized() {
|
||||
if (!initialized)
|
||||
throw new InternalError("Unexpected call when not initialized");
|
||||
}
|
||||
|
||||
/**
|
||||
* Throws an InvalidClassException if object instances referencing this
|
||||
* class descriptor should not be allowed to deserialize. This method does
|
||||
* not apply to deserialization of enum constants.
|
||||
*/
|
||||
void checkDeserialize() throws InvalidClassException {
|
||||
requireInitialized();
|
||||
if (deserializeEx != null) {
|
||||
throw deserializeEx.newInvalidClassException();
|
||||
}
|
||||
@ -775,6 +797,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* not apply to serialization of enum constants.
|
||||
*/
|
||||
void checkSerialize() throws InvalidClassException {
|
||||
requireInitialized();
|
||||
if (serializeEx != null) {
|
||||
throw serializeEx.newInvalidClassException();
|
||||
}
|
||||
@ -788,6 +811,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* does not apply to deserialization of enum constants.
|
||||
*/
|
||||
void checkDefaultSerialize() throws InvalidClassException {
|
||||
requireInitialized();
|
||||
if (defaultSerializeEx != null) {
|
||||
throw defaultSerializeEx.newInvalidClassException();
|
||||
}
|
||||
@ -799,6 +823,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* of the subclass descriptor's bound class.
|
||||
*/
|
||||
ObjectStreamClass getSuperDesc() {
|
||||
requireInitialized();
|
||||
return superDesc;
|
||||
}
|
||||
|
||||
@ -809,6 +834,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* associated with this descriptor.
|
||||
*/
|
||||
ObjectStreamClass getLocalDesc() {
|
||||
requireInitialized();
|
||||
return localDesc;
|
||||
}
|
||||
|
||||
@ -851,6 +877,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* otherwise.
|
||||
*/
|
||||
boolean isProxy() {
|
||||
requireInitialized();
|
||||
return isProxy;
|
||||
}
|
||||
|
||||
@ -859,6 +886,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* otherwise.
|
||||
*/
|
||||
boolean isEnum() {
|
||||
requireInitialized();
|
||||
return isEnum;
|
||||
}
|
||||
|
||||
@ -867,6 +895,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* otherwise.
|
||||
*/
|
||||
boolean isExternalizable() {
|
||||
requireInitialized();
|
||||
return externalizable;
|
||||
}
|
||||
|
||||
@ -875,6 +904,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* otherwise.
|
||||
*/
|
||||
boolean isSerializable() {
|
||||
requireInitialized();
|
||||
return serializable;
|
||||
}
|
||||
|
||||
@ -883,6 +913,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* has written its data in 1.2 (block data) format, false otherwise.
|
||||
*/
|
||||
boolean hasBlockExternalData() {
|
||||
requireInitialized();
|
||||
return hasBlockExternalData;
|
||||
}
|
||||
|
||||
@ -892,6 +923,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* writeObject() method, false otherwise.
|
||||
*/
|
||||
boolean hasWriteObjectData() {
|
||||
requireInitialized();
|
||||
return hasWriteObjectData;
|
||||
}
|
||||
|
||||
@ -903,6 +935,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* accessible no-arg constructor. Otherwise, returns false.
|
||||
*/
|
||||
boolean isInstantiable() {
|
||||
requireInitialized();
|
||||
return (cons != null);
|
||||
}
|
||||
|
||||
@ -912,6 +945,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* returns false.
|
||||
*/
|
||||
boolean hasWriteObjectMethod() {
|
||||
requireInitialized();
|
||||
return (writeObjectMethod != null);
|
||||
}
|
||||
|
||||
@ -921,6 +955,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* returns false.
|
||||
*/
|
||||
boolean hasReadObjectMethod() {
|
||||
requireInitialized();
|
||||
return (readObjectMethod != null);
|
||||
}
|
||||
|
||||
@ -930,6 +965,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* Otherwise, returns false.
|
||||
*/
|
||||
boolean hasReadObjectNoDataMethod() {
|
||||
requireInitialized();
|
||||
return (readObjectNoDataMethod != null);
|
||||
}
|
||||
|
||||
@ -938,6 +974,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* defines a conformant writeReplace method. Otherwise, returns false.
|
||||
*/
|
||||
boolean hasWriteReplaceMethod() {
|
||||
requireInitialized();
|
||||
return (writeReplaceMethod != null);
|
||||
}
|
||||
|
||||
@ -946,6 +983,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
* defines a conformant readResolve method. Otherwise, returns false.
|
||||
*/
|
||||
boolean hasReadResolveMethod() {
|
||||
requireInitialized();
|
||||
return (readResolveMethod != null);
|
||||
}
|
||||
|
||||
@ -962,6 +1000,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
throws InstantiationException, InvocationTargetException,
|
||||
UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (cons != null) {
|
||||
try {
|
||||
return cons.newInstance();
|
||||
@ -983,6 +1022,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
void invokeWriteObject(Object obj, ObjectOutputStream out)
|
||||
throws IOException, UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (writeObjectMethod != null) {
|
||||
try {
|
||||
writeObjectMethod.invoke(obj, new Object[]{ out });
|
||||
@ -1012,6 +1052,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
throws ClassNotFoundException, IOException,
|
||||
UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (readObjectMethod != null) {
|
||||
try {
|
||||
readObjectMethod.invoke(obj, new Object[]{ in });
|
||||
@ -1042,6 +1083,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
void invokeReadObjectNoData(Object obj)
|
||||
throws IOException, UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (readObjectNoDataMethod != null) {
|
||||
try {
|
||||
readObjectNoDataMethod.invoke(obj, (Object[]) null);
|
||||
@ -1070,6 +1112,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
Object invokeWriteReplace(Object obj)
|
||||
throws IOException, UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (writeReplaceMethod != null) {
|
||||
try {
|
||||
return writeReplaceMethod.invoke(obj, (Object[]) null);
|
||||
@ -1099,6 +1142,7 @@ public class ObjectStreamClass implements Serializable {
|
||||
Object invokeReadResolve(Object obj)
|
||||
throws IOException, UnsupportedOperationException
|
||||
{
|
||||
requireInitialized();
|
||||
if (readResolveMethod != null) {
|
||||
try {
|
||||
return readResolveMethod.invoke(obj, (Object[]) null);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -117,11 +117,13 @@ class Inet4Address extends InetAddress {
|
||||
holder().address = address;
|
||||
}
|
||||
}
|
||||
holder().originalHostName = hostName;
|
||||
}
|
||||
Inet4Address(String hostName, int address) {
|
||||
holder().hostName = hostName;
|
||||
holder().family = IPv4;
|
||||
holder().address = address;
|
||||
holder().originalHostName = hostName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -221,7 +221,7 @@ class InetAddress implements java.io.Serializable {
|
||||
*
|
||||
* Note: May define a new public method in the future if necessary.
|
||||
*/
|
||||
private String originalHostName;
|
||||
String originalHostName;
|
||||
|
||||
InetAddressHolder() {}
|
||||
|
||||
|
@ -242,7 +242,7 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
}
|
||||
|
||||
private long ix(int i) {
|
||||
return address + (i << $LG_BYTES_PER_VALUE$);
|
||||
return address + ((long)i << $LG_BYTES_PER_VALUE$);
|
||||
}
|
||||
|
||||
public $type$ get() {
|
||||
@ -261,7 +261,7 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
|
||||
public $Type$Buffer get($type$[] dst, int offset, int length) {
|
||||
#if[rw]
|
||||
if ((length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
|
||||
if (((long)length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) {
|
||||
checkBounds(offset, length, dst.length);
|
||||
int pos = position();
|
||||
int lim = limit();
|
||||
@ -273,13 +273,13 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
#if[!byte]
|
||||
if (order() != ByteOrder.nativeOrder())
|
||||
Bits.copyTo$Memtype$Array(ix(pos), dst,
|
||||
offset << $LG_BYTES_PER_VALUE$,
|
||||
length << $LG_BYTES_PER_VALUE$);
|
||||
(long)offset << $LG_BYTES_PER_VALUE$,
|
||||
(long)length << $LG_BYTES_PER_VALUE$);
|
||||
else
|
||||
#end[!byte]
|
||||
Bits.copyToArray(ix(pos), dst, arrayBaseOffset,
|
||||
offset << $LG_BYTES_PER_VALUE$,
|
||||
length << $LG_BYTES_PER_VALUE$);
|
||||
(long)offset << $LG_BYTES_PER_VALUE$,
|
||||
(long)length << $LG_BYTES_PER_VALUE$);
|
||||
position(pos + length);
|
||||
} else {
|
||||
super.get(dst, offset, length);
|
||||
@ -329,7 +329,7 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
|
||||
if (srem > rem)
|
||||
throw new BufferOverflowException();
|
||||
unsafe.copyMemory(sb.ix(spos), ix(pos), srem << $LG_BYTES_PER_VALUE$);
|
||||
unsafe.copyMemory(sb.ix(spos), ix(pos), (long)srem << $LG_BYTES_PER_VALUE$);
|
||||
sb.position(spos + srem);
|
||||
position(pos + srem);
|
||||
} else if (src.hb != null) {
|
||||
@ -353,7 +353,7 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
|
||||
public $Type$Buffer put($type$[] src, int offset, int length) {
|
||||
#if[rw]
|
||||
if ((length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
|
||||
if (((long)length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) {
|
||||
checkBounds(offset, length, src.length);
|
||||
int pos = position();
|
||||
int lim = limit();
|
||||
@ -364,12 +364,16 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
|
||||
#if[!byte]
|
||||
if (order() != ByteOrder.nativeOrder())
|
||||
Bits.copyFrom$Memtype$Array(src, offset << $LG_BYTES_PER_VALUE$,
|
||||
ix(pos), length << $LG_BYTES_PER_VALUE$);
|
||||
Bits.copyFrom$Memtype$Array(src,
|
||||
(long)offset << $LG_BYTES_PER_VALUE$,
|
||||
ix(pos),
|
||||
(long)length << $LG_BYTES_PER_VALUE$);
|
||||
else
|
||||
#end[!byte]
|
||||
Bits.copyFromArray(src, arrayBaseOffset, offset << $LG_BYTES_PER_VALUE$,
|
||||
ix(pos), length << $LG_BYTES_PER_VALUE$);
|
||||
Bits.copyFromArray(src, arrayBaseOffset,
|
||||
(long)offset << $LG_BYTES_PER_VALUE$,
|
||||
ix(pos),
|
||||
(long)length << $LG_BYTES_PER_VALUE$);
|
||||
position(pos + length);
|
||||
} else {
|
||||
super.put(src, offset, length);
|
||||
@ -387,7 +391,7 @@ class Direct$Type$Buffer$RW$$BO$
|
||||
assert (pos <= lim);
|
||||
int rem = (pos <= lim ? lim - pos : 0);
|
||||
|
||||
unsafe.copyMemory(ix(pos), ix(0), rem << $LG_BYTES_PER_VALUE$);
|
||||
unsafe.copyMemory(ix(pos), ix(0), (long)rem << $LG_BYTES_PER_VALUE$);
|
||||
position(rem);
|
||||
limit(capacity());
|
||||
discardMark();
|
||||
|
@ -138,6 +138,13 @@ public class AlgorithmParameterGenerator {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the algorithm this
|
||||
* parameter generator is associated with.
|
||||
* See the AlgorithmParameterGenerator section in the <a href=
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -126,6 +126,13 @@ public class AlgorithmParameters {
|
||||
* {@code init}, using an appropriate parameter specification or
|
||||
* parameter encoding.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the algorithm requested.
|
||||
* See the AlgorithmParameters section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#AlgorithmParameters">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -153,6 +153,13 @@ public class KeyFactory {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the requested key algorithm.
|
||||
* See the KeyFactory section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyFactory">
|
||||
|
@ -195,6 +195,13 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard string name of the algorithm.
|
||||
* See the KeyPairGenerator section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyPairGenerator">
|
||||
|
@ -841,6 +841,13 @@ public class KeyStore {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param type the type of keystore.
|
||||
* See the KeyStore section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyStore">
|
||||
|
@ -146,6 +146,13 @@ public abstract class MessageDigest extends MessageDigestSpi {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the algorithm requested.
|
||||
* See the MessageDigest section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#MessageDigest">
|
||||
|
@ -355,6 +355,13 @@ public abstract class Policy {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param type the specified Policy type. See the Policy section in the
|
||||
* <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#Policy">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -268,6 +268,13 @@ public class SecureRandom extends java.util.Random {
|
||||
* This self-seeding will not occur if {@code setSeed} was
|
||||
* previously called.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the RNG algorithm.
|
||||
* See the SecureRandom section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#SecureRandom">
|
||||
|
@ -203,6 +203,13 @@ public abstract class Signature extends SignatureSpi {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the algorithm requested.
|
||||
* See the Signature section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#Signature">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -142,6 +142,13 @@ public class CertPathBuilder {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the requested {@code CertPathBuilder}
|
||||
* algorithm. See the CertPathBuilder section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#CertPathBuilder">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -143,6 +143,13 @@ public class CertPathValidator {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the name of the requested {@code CertPathValidator}
|
||||
* algorithm. See the CertPathValidator section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#CertPathValidator">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -201,6 +201,13 @@ public class CertStore {
|
||||
* Note that the specified {@code CertStoreParameters} object is
|
||||
* cloned.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param type the name of the requested {@code CertStore} type.
|
||||
* See the CertStore section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#CertStore">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -163,6 +163,13 @@ public class CertificateFactory {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param type the name of the requested certificate type.
|
||||
* See the CertificateFactory section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#CertificateFactory">
|
||||
|
@ -758,7 +758,7 @@ public final class Instant
|
||||
throw new UnsupportedTemporalTypeException("Unit must divide into a standard day without remainder");
|
||||
}
|
||||
long nod = (seconds % LocalTime.SECONDS_PER_DAY) * LocalTime.NANOS_PER_SECOND + nanos;
|
||||
long result = (nod / dur) * dur;
|
||||
long result = Math.floorDiv(nod, dur) * dur ;
|
||||
return plusNanos(result - nod);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -281,6 +281,43 @@ public final class Objects {
|
||||
return obj != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first argument if it is non-{@code null} and
|
||||
* otherwise returns the non-{@code null} second argument.
|
||||
*
|
||||
* @param obj an object
|
||||
* @param defaultObj a non-{@code null} object to return if the first argument
|
||||
* is {@code null}
|
||||
* @param <T> the type of the reference
|
||||
* @return the first argument if it is non-{@code null} and
|
||||
* otherwise the second argument if it is non-{@code null}
|
||||
* @throws NullPointerException if both {@code obj} is null and
|
||||
* {@code defaultObj} is {@code null}
|
||||
* @since 9
|
||||
*/
|
||||
public static <T> T nonNullElse(T obj, T defaultObj) {
|
||||
return (obj != null) ? obj : requireNonNull(defaultObj, "defaultObj");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first argument if it is non-{@code null} and otherwise
|
||||
* returns the non-{@code null} value of {@code supplier.get()}.
|
||||
*
|
||||
* @param obj an object
|
||||
* @param supplier of a non-{@code null} object to return if the first argument
|
||||
* is {@code null}
|
||||
* @param <T> the type of the first argument and return type
|
||||
* @return the first argument if it is non-{@code null} and otherwise
|
||||
* the value from {@code supplier.get()} if it is non-{@code null}
|
||||
* @throws NullPointerException if both {@code obj} is null and
|
||||
* either the {@code supplier} is {@code null} or
|
||||
* the {@code supplier.get()} value is {@code null}
|
||||
* @since 9
|
||||
*/
|
||||
public static <T> T nonNullElseGet(T obj, Supplier<? extends T> supplier) {
|
||||
return (obj != null) ? obj : requireNonNull(requireNonNull(supplier, "supplier").get(), "supplier.get()");
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that the specified object reference is not {@code null} and
|
||||
* throws a customized {@link NullPointerException} if it is.
|
||||
|
@ -31,21 +31,22 @@ import java.util.function.Supplier;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* A container object which may or may not contain a non-null value.
|
||||
* If a value is present, {@code isPresent()} will return {@code true} and
|
||||
* {@code get()} will return the value.
|
||||
* A container object which may or may not contain a non-{@code null} value.
|
||||
* If a value is present, {@code isPresent()} returns {@code true} and
|
||||
* {@code get()} returns the value.
|
||||
*
|
||||
* <p>Additional methods that depend on the presence or absence of a contained
|
||||
* value are provided, such as {@link #orElse(java.lang.Object) orElse()}
|
||||
* (return a default value if value not present) and
|
||||
* {@link #ifPresent(java.util.function.Consumer) ifPresent()} (perform an
|
||||
* action if the value is present).
|
||||
* (returns a default value if no value is present) and
|
||||
* {@link #ifPresent(java.util.function.Consumer) ifPresent()} (performs an
|
||||
* action if a value is present).
|
||||
*
|
||||
* <p>This is a <a href="../lang/doc-files/ValueBased.html">value-based</a>
|
||||
* class; use of identity-sensitive operations (including reference equality
|
||||
* ({@code ==}), identity hash code, or synchronization) on instances of
|
||||
* {@code Optional} may have unpredictable results and should be avoided.
|
||||
*
|
||||
* @param <T> the type of value
|
||||
* @since 1.8
|
||||
*/
|
||||
public final class Optional<T> {
|
||||
@ -71,14 +72,15 @@ public final class Optional<T> {
|
||||
|
||||
/**
|
||||
* Returns an empty {@code Optional} instance. No value is present for this
|
||||
* Optional.
|
||||
* {@code Optional}.
|
||||
*
|
||||
* @apiNote Though it may be tempting to do so, avoid testing if an object
|
||||
* is empty by comparing with {@code ==} against instances returned by
|
||||
* {@code Option.empty()}. There is no guarantee that it is a singleton.
|
||||
* @apiNote
|
||||
* Though it may be tempting to do so, avoid testing if an object is empty
|
||||
* by comparing with {@code ==} against instances returned by
|
||||
* {@code Optional.empty()}. There is no guarantee that it is a singleton.
|
||||
* Instead, use {@link #isPresent()}.
|
||||
*
|
||||
* @param <T> Type of the non-existent value
|
||||
* @param <T> The type of the non-existent value
|
||||
* @return an empty {@code Optional}
|
||||
*/
|
||||
public static<T> Optional<T> empty() {
|
||||
@ -88,47 +90,47 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs an instance with the value present.
|
||||
* Constructs an instance with the described value.
|
||||
*
|
||||
* @param value the non-null value to be present
|
||||
* @throws NullPointerException if value is null
|
||||
* @param value the non-{@code null} value to describe
|
||||
* @throws NullPointerException if value is {@code null}
|
||||
*/
|
||||
private Optional(T value) {
|
||||
this.value = Objects.requireNonNull(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an {@code Optional} with the specified present non-null value.
|
||||
* Returns an {@code Optional} describing the given non-{@code null}
|
||||
* value.
|
||||
*
|
||||
* @param <T> the class of the value
|
||||
* @param value the value to be present, which must be non-null
|
||||
* @param value the value to describe, which must be non-{@code null}
|
||||
* @param <T> the type of the value
|
||||
* @return an {@code Optional} with the value present
|
||||
* @throws NullPointerException if value is null
|
||||
* @throws NullPointerException if value is {@code null}
|
||||
*/
|
||||
public static <T> Optional<T> of(T value) {
|
||||
return new Optional<>(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an {@code Optional} describing the specified value, if non-null,
|
||||
* otherwise returns an empty {@code Optional}.
|
||||
* Returns an {@code Optional} describing the given value, if
|
||||
* non-{@code null}, otherwise returns an empty {@code Optional}.
|
||||
*
|
||||
* @param <T> the class of the value
|
||||
* @param value the possibly-null value to describe
|
||||
* @param value the possibly-{@code null} value to describe
|
||||
* @param <T> the type of the value
|
||||
* @return an {@code Optional} with a present value if the specified value
|
||||
* is non-null, otherwise an empty {@code Optional}
|
||||
* is non-{@code null}, otherwise an empty {@code Optional}
|
||||
*/
|
||||
public static <T> Optional<T> ofNullable(T value) {
|
||||
return value == null ? empty() : of(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present in this {@code Optional}, returns the value,
|
||||
* otherwise throws {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the non-null value held by this {@code Optional}
|
||||
* @throws NoSuchElementException if there is no value present
|
||||
* If a value is present, returns the value, otherwise throws
|
||||
* {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the non-{@code null} value described by this {@code Optional}
|
||||
* @throws NoSuchElementException if no value is present
|
||||
* @see Optional#isPresent()
|
||||
*/
|
||||
public T get() {
|
||||
@ -139,21 +141,21 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if there is a value present, otherwise {@code false}.
|
||||
* If a value is present, returns {@code true}, otherwise {@code false}.
|
||||
*
|
||||
* @return {@code true} if there is a value present, otherwise {@code false}
|
||||
* @return {@code true} if a value is present, otherwise {@code false}
|
||||
*/
|
||||
public boolean isPresent() {
|
||||
return value != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise do nothing.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise does nothing.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @throws NullPointerException if value is present and the given action is
|
||||
* {@code null}
|
||||
*/
|
||||
public void ifPresent(Consumer<? super T> action) {
|
||||
if (value != null) {
|
||||
@ -162,15 +164,16 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise perform the given empty-based action.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise performs the given empty-based action.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @param emptyAction the empty-based action to be performed if a value is
|
||||
* not present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null, or a value is not present and {@code emptyAction} is null.
|
||||
* @since 1.9
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @param emptyAction the empty-based action to be performed, if no value is
|
||||
* present
|
||||
* @throws NullPointerException if a value is present and the given action
|
||||
* is {@code null}, or no value is present and the given empty-based
|
||||
* action is {@code null}.
|
||||
* @since 9
|
||||
*/
|
||||
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction) {
|
||||
if (value != null) {
|
||||
@ -182,14 +185,14 @@ public final class Optional<T> {
|
||||
|
||||
/**
|
||||
* If a value is present, and the value matches the given predicate,
|
||||
* return an {@code Optional} describing the value, otherwise return an
|
||||
* returns an {@code Optional} describing the value, otherwise returns an
|
||||
* empty {@code Optional}.
|
||||
*
|
||||
* @param predicate a predicate to apply to the value, if present
|
||||
* @return an {@code Optional} describing the value of this {@code Optional}
|
||||
* if a value is present and the value matches the given predicate,
|
||||
* otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the predicate is null
|
||||
* @param predicate the predicate to apply to a value, if present
|
||||
* @return an {@code Optional} describing the value of this
|
||||
* {@code Optional}, if a value is present and the value matches the
|
||||
* given predicate, otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the predicate is {@code null}
|
||||
*/
|
||||
public Optional<T> filter(Predicate<? super T> predicate) {
|
||||
Objects.requireNonNull(predicate);
|
||||
@ -201,14 +204,18 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, apply the provided mapping function to it,
|
||||
* and if the result is non-null, return an {@code Optional} describing the
|
||||
* result. Otherwise return an empty {@code Optional}.
|
||||
* If a value is present, returns an {@code Optional} describing (as if by
|
||||
* {@link #ofNullable}) the result of applying the given mapping function to
|
||||
* the value, otherwise returns an empty {@code Optional}.
|
||||
*
|
||||
* @apiNote This method supports post-processing on optional values, without
|
||||
* <p>If the mapping function returns a {@code null} result then this method
|
||||
* returns an empty {@code Optional}.
|
||||
*
|
||||
* @apiNote
|
||||
* This method supports post-processing on {@code Optional} values, without
|
||||
* the need to explicitly check for a return status. For example, the
|
||||
* following code traverses a stream of file names, selects one that has
|
||||
* not yet been processed, and then opens that file, returning an
|
||||
* following code traverses a stream of file names, selects one that has not
|
||||
* yet been processed, and then opens that file, returning an
|
||||
* {@code Optional<FileInputStream>}:
|
||||
*
|
||||
* <pre>{@code
|
||||
@ -222,12 +229,12 @@ public final class Optional<T> {
|
||||
* {@code map} returns an {@code Optional<FileInputStream>} for the desired
|
||||
* file if one exists.
|
||||
*
|
||||
* @param <U> The type of the result of the mapping function
|
||||
* @param mapper a mapping function to apply to the value, if present
|
||||
* @param mapper the mapping function to apply to a value, if present
|
||||
* @param <U> The type of the value returned from the mapping function
|
||||
* @return an {@code Optional} describing the result of applying a mapping
|
||||
* function to the value of this {@code Optional}, if a value is present,
|
||||
* otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the mapping function is null
|
||||
* function to the value of this {@code Optional}, if a value is
|
||||
* present, otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the mapping function is {@code null}
|
||||
*/
|
||||
public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
|
||||
Objects.requireNonNull(mapper);
|
||||
@ -239,21 +246,23 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, apply the provided {@code Optional}-bearing
|
||||
* mapping function to it, return that result, otherwise return an empty
|
||||
* {@code Optional}. This method is similar to {@link #map(Function)},
|
||||
* but the provided mapper is one whose result is already an {@code Optional},
|
||||
* and if invoked, {@code flatMap} does not wrap it with an additional
|
||||
* If a value is present, returns the result of applying the given
|
||||
* {@code Optional}-bearing mapping function to the value, otherwise returns
|
||||
* an empty {@code Optional}.
|
||||
*
|
||||
* <p>This method is similar to {@link #map(Function)}, but the mapping
|
||||
* function is one whose result is already an {@code Optional}, and if
|
||||
* invoked, {@code flatMap} does not wrap it within an additional
|
||||
* {@code Optional}.
|
||||
*
|
||||
* @param <U> The type parameter to the {@code Optional} returned by
|
||||
* @param mapper a mapping function to apply to the value, if present
|
||||
* the mapping function
|
||||
* @param <U> The type of value of the {@code Optional} returned by the
|
||||
* mapping function
|
||||
* @param mapper the mapping function to apply to a value, if present
|
||||
* @return the result of applying an {@code Optional}-bearing mapping
|
||||
* function to the value of this {@code Optional}, if a value is present,
|
||||
* otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the mapping function is null or returns
|
||||
* a null result
|
||||
* function to the value of this {@code Optional}, if a value is
|
||||
* present, otherwise an empty {@code Optional}
|
||||
* @throws NullPointerException if the mapping function is {@code null} or
|
||||
* returns a {@code null} result
|
||||
*/
|
||||
public<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper) {
|
||||
Objects.requireNonNull(mapper);
|
||||
@ -265,19 +274,41 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present return a sequential {@link Stream} containing only
|
||||
* that value, otherwise return an empty {@code Stream}.
|
||||
* If a value is present, returns an {@code Optional} describing the value,
|
||||
* otherwise returns an {@code Optional} produced by the supplying function.
|
||||
*
|
||||
* @apiNote This method can be used to transform a {@code Stream} of
|
||||
* optional elements to a {@code Stream} of present value elements:
|
||||
* @param supplier the supplying function that produces an {@code Optional}
|
||||
* to be returned
|
||||
* @return returns an {@code Optional} describing the value of this
|
||||
* {@code Optional}, if a value is present, otherwise an
|
||||
* {@code Optional} produced by the supplying function.
|
||||
* @throws NullPointerException if the supplying function is {@code null} or
|
||||
* produces a {@code null} result
|
||||
* @since 9
|
||||
*/
|
||||
public Optional<T> or(Supplier<Optional<T>> supplier) {
|
||||
Objects.requireNonNull(supplier);
|
||||
if (isPresent()) {
|
||||
return this;
|
||||
} else {
|
||||
return Objects.requireNonNull(supplier.get());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, returns a sequential {@link Stream} containing
|
||||
* only that value, otherwise returns an empty {@code Stream}.
|
||||
*
|
||||
* @apiNote
|
||||
* This method can be used to transform a {@code Stream} of optional
|
||||
* elements to a {@code Stream} of present value elements:
|
||||
* <pre>{@code
|
||||
* Stream<Optional<T>> os = ..
|
||||
* Stream<T> s = os.flatMap(Optional::stream)
|
||||
* }</pre>
|
||||
*
|
||||
* @return the optional value as a {@code Stream}
|
||||
* @since 1.9
|
||||
* @since 9
|
||||
*/
|
||||
public Stream<T> stream() {
|
||||
if (!isPresent()) {
|
||||
@ -288,10 +319,11 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise return {@code other}.
|
||||
* If a value is present, returns the value, otherwise returns
|
||||
* {@code other}.
|
||||
*
|
||||
* @param other the value to be returned if there is no value present, may
|
||||
* be null
|
||||
* @param other the value to be returned, if no value is present.
|
||||
* May be {@code null}.
|
||||
* @return the value, if present, otherwise {@code other}
|
||||
*/
|
||||
public T orElse(T other) {
|
||||
@ -299,34 +331,35 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise invoke {@code other} and return
|
||||
* the result of that invocation.
|
||||
* If a value is present, returns the value, otherwise returns the result
|
||||
* produced by the supplying function.
|
||||
*
|
||||
* @param other a {@code Supplier} whose result is returned if no value
|
||||
* is present
|
||||
* @return the value if present otherwise the result of {@code other.get()}
|
||||
* @throws NullPointerException if value is not present and {@code other} is
|
||||
* null
|
||||
* @param supplier the supplying function that produces a value to be returned
|
||||
* @return the value, if present, otherwise the result produced by the
|
||||
* supplying function
|
||||
* @throws NullPointerException if no value is present and the supplying
|
||||
* function is {@code null}
|
||||
*/
|
||||
public T orElseGet(Supplier<? extends T> other) {
|
||||
return value != null ? value : other.get();
|
||||
public T orElseGet(Supplier<? extends T> supplier) {
|
||||
return value != null ? value : supplier.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the contained value, if present, otherwise throw an exception
|
||||
* to be created by the provided supplier.
|
||||
* If a value is present, returns the value, otherwise throws an exception
|
||||
* produced by the exception supplying function.
|
||||
*
|
||||
* @apiNote A method reference to the exception constructor with an empty
|
||||
* argument list can be used as the supplier. For example,
|
||||
* @apiNote
|
||||
* A method reference to the exception constructor with an empty argument
|
||||
* list can be used as the supplier. For example,
|
||||
* {@code IllegalStateException::new}
|
||||
*
|
||||
* @param <X> Type of the exception to be thrown
|
||||
* @param exceptionSupplier The supplier which will return the exception to
|
||||
* be thrown
|
||||
* @return the present value
|
||||
* @throws X if there is no value present
|
||||
* @throws NullPointerException if no value is present and
|
||||
* {@code exceptionSupplier} is null
|
||||
* @param exceptionSupplier the supplying function that produces an
|
||||
* exception to be thrown
|
||||
* @return the value, if present
|
||||
* @throws X if no value is present
|
||||
* @throws NullPointerException if no value is present and the exception
|
||||
* supplying function is {@code null}
|
||||
*/
|
||||
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
|
||||
if (value != null) {
|
||||
@ -337,8 +370,8 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether some other object is "equal to" this Optional. The
|
||||
* other object is considered equal if:
|
||||
* Indicates whether some other object is "equal to" this {@code Optional}.
|
||||
* The other object is considered equal if:
|
||||
* <ul>
|
||||
* <li>it is also an {@code Optional} and;
|
||||
* <li>both instances have no value present or;
|
||||
@ -347,7 +380,7 @@ public final class Optional<T> {
|
||||
*
|
||||
* @param obj an object to be tested for equality
|
||||
* @return {@code true} if the other object is "equal to" this object
|
||||
* otherwise {@code false}
|
||||
* otherwise {@code false}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@ -364,10 +397,11 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hash code value of the present value, if any, or 0 (zero) if
|
||||
* no value is present.
|
||||
* Returns the hash code of the value, if present, otherwise {@code 0}
|
||||
* (zero) if no value is present.
|
||||
*
|
||||
* @return hash code value of the present value or 0 if no value is present
|
||||
* @return hash code value of the present value or {@code 0} if no value is
|
||||
* present
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() {
|
||||
@ -375,13 +409,14 @@ public final class Optional<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a non-empty string representation of this Optional suitable for
|
||||
* debugging. The exact presentation format is unspecified and may vary
|
||||
* between implementations and versions.
|
||||
* Returns a non-empty string representation of this {@code Optional}
|
||||
* suitable for debugging. The exact presentation format is unspecified and
|
||||
* may vary between implementations and versions.
|
||||
*
|
||||
* @implSpec If a value is present the result must include its string
|
||||
* representation in the result. Empty and present Optionals must be
|
||||
* unambiguously differentiable.
|
||||
* @implSpec
|
||||
* If a value is present the result must include its string representation
|
||||
* in the result. Empty and present {@code Optional}s must be unambiguously
|
||||
* differentiable.
|
||||
*
|
||||
* @return the string representation of this instance
|
||||
*/
|
||||
|
@ -30,15 +30,15 @@ import java.util.function.Supplier;
|
||||
import java.util.stream.DoubleStream;
|
||||
|
||||
/**
|
||||
* A container object which may or may not contain a {@code double} value.
|
||||
* If a value is present, {@code isPresent()} will return {@code true} and
|
||||
* {@code getAsDouble()} will return the value.
|
||||
* A container object which may or may not contain a {@code double} value. If a
|
||||
* value is present, {@code isPresent()} returns {@code true} and
|
||||
* {@code getAsDouble()} returns the value.
|
||||
*
|
||||
* <p>Additional methods that depend on the presence or absence of a contained
|
||||
* value are provided, such as {@link #orElse(double) orElse()}
|
||||
* (return a default value if value not present) and
|
||||
* {@link #ifPresent(java.util.function.DoubleConsumer) ifPresent()} (perform an
|
||||
* action if the value is present).
|
||||
* (returns a default value if no value is present) and
|
||||
* {@link #ifPresent(java.util.function.DoubleConsumer) ifPresent()} (performs
|
||||
* an action if a value is present).
|
||||
*
|
||||
* <p>This is a <a href="../lang/doc-files/ValueBased.html">value-based</a>
|
||||
* class; use of identity-sensitive operations (including reference equality
|
||||
@ -71,12 +71,13 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an empty {@code OptionalDouble} instance. No value is present for this
|
||||
* OptionalDouble.
|
||||
* Returns an empty {@code OptionalDouble} instance. No value is present
|
||||
* for this {@code OptionalDouble}.
|
||||
*
|
||||
* @apiNote Though it may be tempting to do so, avoid testing if an object
|
||||
* is empty by comparing with {@code ==} against instances returned by
|
||||
* {@code Option.empty()}. There is no guarantee that it is a singleton.
|
||||
* @apiNote
|
||||
* Though it may be tempting to do so, avoid testing if an object is empty
|
||||
* by comparing with {@code ==} against instances returned by
|
||||
* {@code OptionalDouble.empty()}. There is no guarantee that it is a singleton.
|
||||
* Instead, use {@link #isPresent()}.
|
||||
*
|
||||
* @return an empty {@code OptionalDouble}.
|
||||
@ -86,9 +87,9 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an instance with the value present.
|
||||
* Construct an instance with the described value.
|
||||
*
|
||||
* @param value the double value to be present.
|
||||
* @param value the double value to describe.
|
||||
*/
|
||||
private OptionalDouble(double value) {
|
||||
this.isPresent = true;
|
||||
@ -96,9 +97,9 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an {@code OptionalDouble} with the specified value present.
|
||||
* Returns an {@code OptionalDouble} describing the given value.
|
||||
*
|
||||
* @param value the value to be present
|
||||
* @param value the value to describe
|
||||
* @return an {@code OptionalDouble} with the value present
|
||||
*/
|
||||
public static OptionalDouble of(double value) {
|
||||
@ -106,12 +107,11 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present in this {@code OptionalDouble}, returns the value,
|
||||
* otherwise throws {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value held by this {@code OptionalDouble}
|
||||
* @throws NoSuchElementException if there is no value present
|
||||
* If a value is present, returns the value, otherwise throws
|
||||
* {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value described by this {@code OptionalDouble}
|
||||
* @throws NoSuchElementException if no value is present
|
||||
* @see OptionalDouble#isPresent()
|
||||
*/
|
||||
public double getAsDouble() {
|
||||
@ -122,21 +122,21 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if there is a value present, otherwise {@code false}.
|
||||
* If a value is present, returns {@code true}, otherwise {@code false}.
|
||||
*
|
||||
* @return {@code true} if there is a value present, otherwise {@code false}
|
||||
* @return {@code true} if a value is present, otherwise {@code false}
|
||||
*/
|
||||
public boolean isPresent() {
|
||||
return isPresent;
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise do nothing.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise does nothing.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @throws NullPointerException if value is present and the given action is
|
||||
* {@code null}
|
||||
*/
|
||||
public void ifPresent(DoubleConsumer action) {
|
||||
if (isPresent) {
|
||||
@ -145,15 +145,16 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise perform the given empty-based action.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise performs the given empty-based action.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @param emptyAction the empty-based action to be performed if a value is
|
||||
* not present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null, or a value is not present and {@code emptyAction} is null.
|
||||
* @since 1.9
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @param emptyAction the empty-based action to be performed, if no value is
|
||||
* present
|
||||
* @throws NullPointerException if a value is present and the given action
|
||||
* is {@code null}, or no value is present and the given empty-based
|
||||
* action is {@code null}.
|
||||
* @since 9
|
||||
*/
|
||||
public void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction) {
|
||||
if (isPresent) {
|
||||
@ -164,19 +165,20 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present return a sequential {@link DoubleStream} containing
|
||||
* only that value, otherwise return an empty {@code DoubleStream}.
|
||||
*
|
||||
* @apiNote This method can be used to transform a {@code Stream} of
|
||||
* optional doubles to a {@code DoubleStream} of present doubles:
|
||||
* If a value is present, returns a sequential {@link DoubleStream}
|
||||
* containing only that value, otherwise returns an empty
|
||||
* {@code DoubleStream}.
|
||||
*
|
||||
* @apiNote
|
||||
* This method can be used to transform a {@code Stream} of optional doubles
|
||||
* to a {@code DoubleStream} of present doubles:
|
||||
* <pre>{@code
|
||||
* Stream<OptionalDouble> os = ..
|
||||
* DoubleStream s = os.flatMapToDouble(OptionalDouble::stream)
|
||||
* }</pre>
|
||||
*
|
||||
* @return the optional value as a {@code DoubleStream}
|
||||
* @since 1.9
|
||||
* @since 9
|
||||
*/
|
||||
public DoubleStream stream() {
|
||||
if (isPresent) {
|
||||
@ -187,9 +189,10 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise return {@code other}.
|
||||
* If a value is present, returns the value, otherwise returns
|
||||
* {@code other}.
|
||||
*
|
||||
* @param other the value to be returned if there is no value present
|
||||
* @param other the value to be returned, if no value is present
|
||||
* @return the value, if present, otherwise {@code other}
|
||||
*/
|
||||
public double orElse(double other) {
|
||||
@ -197,34 +200,35 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise invoke {@code other} and return
|
||||
* the result of that invocation.
|
||||
* If a value is present, returns the value, otherwise returns the result
|
||||
* produced by the supplying function.
|
||||
*
|
||||
* @param other a {@code DoubleSupplier} whose result is returned if no value
|
||||
* is present
|
||||
* @return the value if present otherwise the result of {@code other.getAsDouble()}
|
||||
* @throws NullPointerException if value is not present and {@code other} is
|
||||
* null
|
||||
* @param supplier the supplying function that produces a value to be returned
|
||||
* @return the value, if present, otherwise the result produced by the
|
||||
* supplying function
|
||||
* @throws NullPointerException if no value is present and the supplying
|
||||
* function is {@code null}
|
||||
*/
|
||||
public double orElseGet(DoubleSupplier other) {
|
||||
return isPresent ? value : other.getAsDouble();
|
||||
public double orElseGet(DoubleSupplier supplier) {
|
||||
return isPresent ? value : supplier.getAsDouble();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the contained value, if present, otherwise throw an exception
|
||||
* to be created by the provided supplier.
|
||||
* If a value is present, returns the value, otherwise throws an exception
|
||||
* produced by the exception supplying function.
|
||||
*
|
||||
* @apiNote A method reference to the exception constructor with an empty
|
||||
* argument list can be used as the supplier. For example,
|
||||
* @apiNote
|
||||
* A method reference to the exception constructor with an empty argument
|
||||
* list can be used as the supplier. For example,
|
||||
* {@code IllegalStateException::new}
|
||||
*
|
||||
* @param <X> Type of the exception to be thrown
|
||||
* @param exceptionSupplier The supplier which will return the exception to
|
||||
* be thrown
|
||||
* @return the present value
|
||||
* @throws X if there is no value present
|
||||
* @throws NullPointerException if no value is present and
|
||||
* {@code exceptionSupplier} is null
|
||||
* @param exceptionSupplier the supplying function that produces an
|
||||
* exception to be thrown
|
||||
* @return the value, if present
|
||||
* @throws X if no value is present
|
||||
* @throws NullPointerException if no value is present and the exception
|
||||
* supplying function is {@code null}
|
||||
*/
|
||||
public<X extends Throwable> double orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
|
||||
if (isPresent) {
|
||||
@ -235,17 +239,18 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether some other object is "equal to" this OptionalDouble. The
|
||||
* other object is considered equal if:
|
||||
* Indicates whether some other object is "equal to" this
|
||||
* {@code OptionalDouble}. The other object is considered equal if:
|
||||
* <ul>
|
||||
* <li>it is also an {@code OptionalDouble} and;
|
||||
* <li>both instances have no value present or;
|
||||
* <li>the present values are "equal to" each other via {@code Double.compare() == 0}.
|
||||
* <li>the present values are "equal to" each other via
|
||||
* {@code Double.compare() == 0}.
|
||||
* </ul>
|
||||
*
|
||||
* @param obj an object to be tested for equality
|
||||
* @return {@code true} if the other object is "equal to" this object
|
||||
* otherwise {@code false}
|
||||
* otherwise {@code false}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@ -264,10 +269,11 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hash code value of the present value, if any, or 0 (zero) if
|
||||
* no value is present.
|
||||
* Returns the hash code of the value, if present, otherwise {@code 0}
|
||||
* (zero) if no value is present.
|
||||
*
|
||||
* @return hash code value of the present value or 0 if no value is present
|
||||
* @return hash code value of the present value or {@code 0} if no value is
|
||||
* present
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() {
|
||||
@ -275,14 +281,13 @@ public final class OptionalDouble {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* Returns a non-empty string representation of this {@code OptionalDouble}
|
||||
* suitable for debugging. The exact presentation format is unspecified and
|
||||
* may vary between implementations and versions.
|
||||
*
|
||||
* Returns a non-empty string representation of this object suitable for
|
||||
* debugging. The exact presentation format is unspecified and may vary
|
||||
* between implementations and versions.
|
||||
*
|
||||
* @implSpec If a value is present the result must include its string
|
||||
* representation in the result. Empty and present instances must be
|
||||
* @implSpec
|
||||
* If a value is present the result must include its string representation
|
||||
* in the result. Empty and present {@code OptionalDouble}s must be
|
||||
* unambiguously differentiable.
|
||||
*
|
||||
* @return the string representation of this instance
|
||||
|
@ -30,15 +30,15 @@ import java.util.function.Supplier;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
/**
|
||||
* A container object which may or may not contain a {@code int} value.
|
||||
* If a value is present, {@code isPresent()} will return {@code true} and
|
||||
* {@code getAsInt()} will return the value.
|
||||
* A container object which may or may not contain an {@code int} value. If a
|
||||
* value is present, {@code isPresent()} returns {@code true} and
|
||||
* {@code getAsInt()} returns the value.
|
||||
*
|
||||
* <p>Additional methods that depend on the presence or absence of a contained
|
||||
* value are provided, such as {@link #orElse(int) orElse()}
|
||||
* (return a default value if value not present) and
|
||||
* {@link #ifPresent(java.util.function.IntConsumer) ifPresent()} (perform an
|
||||
* action if the value is present).
|
||||
* (returns a default value if no value is present) and
|
||||
* {@link #ifPresent(java.util.function.IntConsumer) ifPresent()} (performs an
|
||||
* action if a value is present).
|
||||
*
|
||||
* <p>This is a <a href="../lang/doc-files/ValueBased.html">value-based</a>
|
||||
* class; use of identity-sensitive operations (including reference equality
|
||||
@ -71,24 +71,25 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an empty {@code OptionalInt} instance. No value is present for this
|
||||
* OptionalInt.
|
||||
* Returns an empty {@code OptionalInt} instance. No value is present for
|
||||
* this {@code OptionalInt}.
|
||||
*
|
||||
* @apiNote Though it may be tempting to do so, avoid testing if an object
|
||||
* is empty by comparing with {@code ==} against instances returned by
|
||||
* {@code Option.empty()}. There is no guarantee that it is a singleton.
|
||||
* @apiNote
|
||||
* Though it may be tempting to do so, avoid testing if an object is empty
|
||||
* by comparing with {@code ==} against instances returned by
|
||||
* {@code OptionalInt.empty()}. There is no guarantee that it is a singleton.
|
||||
* Instead, use {@link #isPresent()}.
|
||||
*
|
||||
* @return an empty {@code OptionalInt}
|
||||
* @return an empty {@code OptionalInt}
|
||||
*/
|
||||
public static OptionalInt empty() {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an instance with the value present.
|
||||
* Construct an instance with the described value.
|
||||
*
|
||||
* @param value the int value to be present
|
||||
* @param value the int value to describe
|
||||
*/
|
||||
private OptionalInt(int value) {
|
||||
this.isPresent = true;
|
||||
@ -96,9 +97,9 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an {@code OptionalInt} with the specified value present.
|
||||
* Returns an {@code OptionalInt} describing the given value.
|
||||
*
|
||||
* @param value the value to be present
|
||||
* @param value the value to describe
|
||||
* @return an {@code OptionalInt} with the value present
|
||||
*/
|
||||
public static OptionalInt of(int value) {
|
||||
@ -106,12 +107,11 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present in this {@code OptionalInt}, returns the value,
|
||||
* otherwise throws {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value held by this {@code OptionalInt}
|
||||
* @throws NoSuchElementException if there is no value present
|
||||
* If a value is present, returns the value, otherwise throws
|
||||
* {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value described by this {@code OptionalInt}
|
||||
* @throws NoSuchElementException if no value is present
|
||||
* @see OptionalInt#isPresent()
|
||||
*/
|
||||
public int getAsInt() {
|
||||
@ -122,21 +122,21 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if there is a value present, otherwise {@code false}.
|
||||
* If a value is present, returns {@code true}, otherwise {@code false}.
|
||||
*
|
||||
* @return {@code true} if there is a value present, otherwise {@code false}
|
||||
* @return {@code true} if a value is present, otherwise {@code false}
|
||||
*/
|
||||
public boolean isPresent() {
|
||||
return isPresent;
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise do nothing.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise does nothing.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @throws NullPointerException if value is present and {@code action} is
|
||||
* null
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @throws NullPointerException if value is present and the given action is
|
||||
* {@code null}
|
||||
*/
|
||||
public void ifPresent(IntConsumer action) {
|
||||
if (isPresent) {
|
||||
@ -145,15 +145,16 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise perform the given empty-based action.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise performs the given empty-based action.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @param emptyAction the empty-based action to be performed if a value is
|
||||
* not present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null, or a value is not present and {@code emptyAction} is null.
|
||||
* @since 1.9
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @param emptyAction the empty-based action to be performed, if no value is
|
||||
* present
|
||||
* @throws NullPointerException if a value is present and the given action
|
||||
* is {@code null}, or no value is present and the given empty-based
|
||||
* action is {@code null}.
|
||||
* @since 9
|
||||
*/
|
||||
public void ifPresentOrElse(IntConsumer action, Runnable emptyAction) {
|
||||
if (isPresent) {
|
||||
@ -164,19 +165,19 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present return a sequential {@link IntStream} containing
|
||||
* only that value, otherwise return an empty {@code IntStream}.
|
||||
*
|
||||
* @apiNote This method can be used to transform a {@code Stream} of
|
||||
* optional integers to an {@code IntStream} of present integers:
|
||||
* If a value is present, returns a sequential {@link IntStream} containing
|
||||
* only that value, otherwise returns an empty {@code IntStream}.
|
||||
*
|
||||
* @apiNote
|
||||
* This method can be used to transform a {@code Stream} of optional
|
||||
* integers to an {@code IntStream} of present integers:
|
||||
* <pre>{@code
|
||||
* Stream<OptionalInt> os = ..
|
||||
* IntStream s = os.flatMapToInt(OptionalInt::stream)
|
||||
* }</pre>
|
||||
*
|
||||
* @return the optional value as an {@code IntStream}
|
||||
* @since 1.9
|
||||
* @since 9
|
||||
*/
|
||||
public IntStream stream() {
|
||||
if (isPresent) {
|
||||
@ -187,9 +188,10 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise return {@code other}.
|
||||
* If a value is present, returns the value, otherwise returns
|
||||
* {@code other}.
|
||||
*
|
||||
* @param other the value to be returned if there is no value present
|
||||
* @param other the value to be returned, if no value is present
|
||||
* @return the value, if present, otherwise {@code other}
|
||||
*/
|
||||
public int orElse(int other) {
|
||||
@ -197,34 +199,35 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise invoke {@code other} and return
|
||||
* the result of that invocation.
|
||||
* If a value is present, returns the value, otherwise returns the result
|
||||
* produced by the supplying function.
|
||||
*
|
||||
* @param other a {@code IntSupplier} whose result is returned if no value
|
||||
* is present
|
||||
* @return the value if present otherwise the result of {@code other.getAsInt()}
|
||||
* @throws NullPointerException if value is not present and {@code other} is
|
||||
* null
|
||||
* @param supplier the supplying function that produces a value to be returned
|
||||
* @return the value, if present, otherwise the result produced by the
|
||||
* supplying function
|
||||
* @throws NullPointerException if no value is present and the supplying
|
||||
* function is {@code null}
|
||||
*/
|
||||
public int orElseGet(IntSupplier other) {
|
||||
return isPresent ? value : other.getAsInt();
|
||||
public int orElseGet(IntSupplier supplier) {
|
||||
return isPresent ? value : supplier.getAsInt();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the contained value, if present, otherwise throw an exception
|
||||
* to be created by the provided supplier.
|
||||
* If a value is present, returns the value, otherwise throws an exception
|
||||
* produced by the exception supplying function.
|
||||
*
|
||||
* @apiNote A method reference to the exception constructor with an empty
|
||||
* argument list can be used as the supplier. For example,
|
||||
* @apiNote
|
||||
* A method reference to the exception constructor with an empty argument
|
||||
* list can be used as the supplier. For example,
|
||||
* {@code IllegalStateException::new}
|
||||
*
|
||||
* @param <X> Type of the exception to be thrown
|
||||
* @param exceptionSupplier The supplier which will return the exception to
|
||||
* be thrown
|
||||
* @return the present value
|
||||
* @throws X if there is no value present
|
||||
* @throws NullPointerException if no value is present and
|
||||
* {@code exceptionSupplier} is null
|
||||
* @param exceptionSupplier the supplying function that produces an
|
||||
* exception to be thrown
|
||||
* @return the value, if present
|
||||
* @throws X if no value is present
|
||||
* @throws NullPointerException if no value is present and the exception
|
||||
* supplying function is {@code null}
|
||||
*/
|
||||
public<X extends Throwable> int orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
|
||||
if (isPresent) {
|
||||
@ -235,8 +238,8 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether some other object is "equal to" this OptionalInt. The
|
||||
* other object is considered equal if:
|
||||
* Indicates whether some other object is "equal to" this
|
||||
* {@code OptionalInt}. The other object is considered equal if:
|
||||
* <ul>
|
||||
* <li>it is also an {@code OptionalInt} and;
|
||||
* <li>both instances have no value present or;
|
||||
@ -245,7 +248,7 @@ public final class OptionalInt {
|
||||
*
|
||||
* @param obj an object to be tested for equality
|
||||
* @return {@code true} if the other object is "equal to" this object
|
||||
* otherwise {@code false}
|
||||
* otherwise {@code false}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@ -264,10 +267,11 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hash code value of the present value, if any, or 0 (zero) if
|
||||
* no value is present.
|
||||
* Returns the hash code of the value, if present, otherwise {@code 0}
|
||||
* (zero) if no value is present.
|
||||
*
|
||||
* @return hash code value of the present value or 0 if no value is present
|
||||
* @return hash code value of the present value or {@code 0} if no value is
|
||||
* present
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() {
|
||||
@ -275,14 +279,13 @@ public final class OptionalInt {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* Returns a non-empty string representation of this {@code OptionalInt}
|
||||
* suitable for debugging. The exact presentation format is unspecified and
|
||||
* may vary between implementations and versions.
|
||||
*
|
||||
* Returns a non-empty string representation of this object suitable for
|
||||
* debugging. The exact presentation format is unspecified and may vary
|
||||
* between implementations and versions.
|
||||
*
|
||||
* @implSpec If a value is present the result must include its string
|
||||
* representation in the result. Empty and present instances must be
|
||||
* @implSpec
|
||||
* If a value is present the result must include its string representation
|
||||
* in the result. Empty and present {@code OptionalInt}s must be
|
||||
* unambiguously differentiable.
|
||||
*
|
||||
* @return the string representation of this instance
|
||||
|
@ -30,15 +30,15 @@ import java.util.function.Supplier;
|
||||
import java.util.stream.LongStream;
|
||||
|
||||
/**
|
||||
* A container object which may or may not contain a {@code long} value.
|
||||
* If a value is present, {@code isPresent()} will return {@code true} and
|
||||
* {@code getAsLong()} will return the value.
|
||||
* A container object which may or may not contain a {@code long} value. If a
|
||||
* value is present, {@code isPresent()} returns {@code true} and
|
||||
* {@code getAsLong()} returns the value.
|
||||
*
|
||||
* <p>Additional methods that depend on the presence or absence of a contained
|
||||
* value are provided, such as {@link #orElse(long) orElse()}
|
||||
* (return a default value if value not present) and
|
||||
* {@link #ifPresent(java.util.function.LongConsumer) ifPresent()} (perform an
|
||||
* action if the value is present).
|
||||
* (returns a default value if no value is present) and
|
||||
* {@link #ifPresent(java.util.function.LongConsumer) ifPresent()} (performs an
|
||||
* action if a value is present).
|
||||
*
|
||||
* <p>This is a <a href="../lang/doc-files/ValueBased.html">value-based</a>
|
||||
* class; use of identity-sensitive operations (including reference equality
|
||||
@ -71,24 +71,25 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an empty {@code OptionalLong} instance. No value is present for this
|
||||
* OptionalLong.
|
||||
* Returns an empty {@code OptionalLong} instance. No value is present for
|
||||
* this {@code OptionalLong}.
|
||||
*
|
||||
* @apiNote Though it may be tempting to do so, avoid testing if an object
|
||||
* is empty by comparing with {@code ==} against instances returned by
|
||||
* {@code Option.empty()}. There is no guarantee that it is a singleton.
|
||||
* @apiNote
|
||||
* Though it may be tempting to do so, avoid testing if an object is empty
|
||||
* by comparing with {@code ==} against instances returned by
|
||||
* {@code OptionalLong.empty()}. There is no guarantee that it is a singleton.
|
||||
* Instead, use {@link #isPresent()}.
|
||||
*
|
||||
* @return an empty {@code OptionalLong}.
|
||||
* @return an empty {@code OptionalLong}.
|
||||
*/
|
||||
public static OptionalLong empty() {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an instance with the value present.
|
||||
* Construct an instance with the described value.
|
||||
*
|
||||
* @param value the long value to be present
|
||||
* @param value the long value to describe
|
||||
*/
|
||||
private OptionalLong(long value) {
|
||||
this.isPresent = true;
|
||||
@ -96,9 +97,9 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an {@code OptionalLong} with the specified value present.
|
||||
* Returns an {@code OptionalLong} describing the given value.
|
||||
*
|
||||
* @param value the value to be present
|
||||
* @param value the value to describe
|
||||
* @return an {@code OptionalLong} with the value present
|
||||
*/
|
||||
public static OptionalLong of(long value) {
|
||||
@ -106,12 +107,11 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present in this {@code OptionalLong}, returns the value,
|
||||
* otherwise throws {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value held by this {@code OptionalLong}
|
||||
* @throws NoSuchElementException if there is no value present
|
||||
* If a value is present, returns the value, otherwise throws
|
||||
* {@code NoSuchElementException}.
|
||||
*
|
||||
* @return the value described by this {@code OptionalLong}
|
||||
* @throws NoSuchElementException if no value is present
|
||||
* @see OptionalLong#isPresent()
|
||||
*/
|
||||
public long getAsLong() {
|
||||
@ -122,21 +122,21 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if there is a value present, otherwise {@code false}.
|
||||
* If a value is present, returns {@code true}, otherwise {@code false}.
|
||||
*
|
||||
* @return {@code true} if there is a value present, otherwise {@code false}
|
||||
* @return {@code true} if a value is present, otherwise {@code false}
|
||||
*/
|
||||
public boolean isPresent() {
|
||||
return isPresent;
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise do nothing.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise does nothing.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @throws NullPointerException if value is present and the given action is
|
||||
* {@code null}
|
||||
*/
|
||||
public void ifPresent(LongConsumer action) {
|
||||
if (isPresent) {
|
||||
@ -145,15 +145,16 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present, perform the given action with the value,
|
||||
* otherwise perform the given empty-based action.
|
||||
* If a value is present, performs the given action with the value,
|
||||
* otherwise performs the given empty-based action.
|
||||
*
|
||||
* @param action the action to be performed if a value is present
|
||||
* @param emptyAction the empty-based action to be performed if a value is
|
||||
* not present
|
||||
* @throws NullPointerException if a value is present and {@code action} is
|
||||
* null, or a value is not present and {@code emptyAction} is null.
|
||||
* @since 1.9
|
||||
* @param action the action to be performed, if a value is present
|
||||
* @param emptyAction the empty-based action to be performed, if no value is
|
||||
* present
|
||||
* @throws NullPointerException if a value is present and the given action
|
||||
* is {@code null}, or no value is present and the given empty-based
|
||||
* action is {@code null}.
|
||||
* @since 9
|
||||
*/
|
||||
public void ifPresentOrElse(LongConsumer action, Runnable emptyAction) {
|
||||
if (isPresent) {
|
||||
@ -164,19 +165,19 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* If a value is present return a sequential {@link LongStream} containing
|
||||
* only that value, otherwise return an empty {@code LongStream}.
|
||||
*
|
||||
* @apiNote This method can be used to transform a {@code Stream} of
|
||||
* optional longs to a {@code LongStream} of present longs:
|
||||
* If a value is present, returns a sequential {@link LongStream} containing
|
||||
* only that value, otherwise returns an empty {@code LongStream}.
|
||||
*
|
||||
* @apiNote
|
||||
* This method can be used to transform a {@code Stream} of optional longs
|
||||
* to an {@code LongStream} of present longs:
|
||||
* <pre>{@code
|
||||
* Stream<OptionalLong> os = ..
|
||||
* LongStream s = os.flatMapToLong(OptionalLong::stream)
|
||||
* }</pre>
|
||||
*
|
||||
* @return the optional value as a {@code LongStream}
|
||||
* @since 1.9
|
||||
* @return the optional value as an {@code LongStream}
|
||||
* @since 9
|
||||
*/
|
||||
public LongStream stream() {
|
||||
if (isPresent) {
|
||||
@ -187,9 +188,10 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise return {@code other}.
|
||||
* If a value is present, returns the value, otherwise returns
|
||||
* {@code other}.
|
||||
*
|
||||
* @param other the value to be returned if there is no value present
|
||||
* @param other the value to be returned, if no value is present
|
||||
* @return the value, if present, otherwise {@code other}
|
||||
*/
|
||||
public long orElse(long other) {
|
||||
@ -197,34 +199,35 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the value if present, otherwise invoke {@code other} and return
|
||||
* the result of that invocation.
|
||||
* If a value is present, returns the value, otherwise returns the result
|
||||
* produced by the supplying function.
|
||||
*
|
||||
* @param other a {@code LongSupplier} whose result is returned if no value
|
||||
* is present
|
||||
* @return the value if present otherwise the result of {@code other.getAsLong()}
|
||||
* @throws NullPointerException if value is not present and {@code other} is
|
||||
* null
|
||||
* @param supplier the supplying function that produces a value to be returned
|
||||
* @return the value, if present, otherwise the result produced by the
|
||||
* supplying function
|
||||
* @throws NullPointerException if no value is present and the supplying
|
||||
* function is {@code null}
|
||||
*/
|
||||
public long orElseGet(LongSupplier other) {
|
||||
return isPresent ? value : other.getAsLong();
|
||||
public long orElseGet(LongSupplier supplier) {
|
||||
return isPresent ? value : supplier.getAsLong();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the contained value, if present, otherwise throw an exception
|
||||
* to be created by the provided supplier.
|
||||
* If a value is present, returns the value, otherwise throws an exception
|
||||
* produced by the exception supplying function.
|
||||
*
|
||||
* @apiNote A method reference to the exception constructor with an empty
|
||||
* argument list can be used as the supplier. For example,
|
||||
* @apiNote
|
||||
* A method reference to the exception constructor with an empty argument
|
||||
* list can be used as the supplier. For example,
|
||||
* {@code IllegalStateException::new}
|
||||
*
|
||||
* @param <X> Type of the exception to be thrown
|
||||
* @param exceptionSupplier The supplier which will return the exception to
|
||||
* be thrown
|
||||
* @return the present value
|
||||
* @throws X if there is no value present
|
||||
* @throws NullPointerException if no value is present and
|
||||
* {@code exceptionSupplier} is null
|
||||
* @param exceptionSupplier the supplying function that produces an
|
||||
* exception to be thrown
|
||||
* @return the value, if present
|
||||
* @throws X if no value is present
|
||||
* @throws NullPointerException if no value is present and the exception
|
||||
* supplying function is {@code null}
|
||||
*/
|
||||
public<X extends Throwable> long orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {
|
||||
if (isPresent) {
|
||||
@ -235,8 +238,8 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether some other object is "equal to" this OptionalLong. The
|
||||
* other object is considered equal if:
|
||||
* Indicates whether some other object is "equal to" this
|
||||
* {@code OptionalLong}. The other object is considered equal if:
|
||||
* <ul>
|
||||
* <li>it is also an {@code OptionalLong} and;
|
||||
* <li>both instances have no value present or;
|
||||
@ -245,7 +248,7 @@ public final class OptionalLong {
|
||||
*
|
||||
* @param obj an object to be tested for equality
|
||||
* @return {@code true} if the other object is "equal to" this object
|
||||
* otherwise {@code false}
|
||||
* otherwise {@code false}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@ -264,10 +267,11 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hash code value of the present value, if any, or 0 (zero) if
|
||||
* no value is present.
|
||||
* Returns the hash code of the value, if present, otherwise {@code 0}
|
||||
* (zero) if no value is present.
|
||||
*
|
||||
* @return hash code value of the present value or 0 if no value is present
|
||||
* @return hash code value of the present value or {@code 0} if no value is
|
||||
* present
|
||||
*/
|
||||
@Override
|
||||
public int hashCode() {
|
||||
@ -275,14 +279,13 @@ public final class OptionalLong {
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* Returns a non-empty string representation of this {@code OptionalLong}
|
||||
* suitable for debugging. The exact presentation format is unspecified and
|
||||
* may vary between implementations and versions.
|
||||
*
|
||||
* Returns a non-empty string representation of this object suitable for
|
||||
* debugging. The exact presentation format is unspecified and may vary
|
||||
* between implementations and versions.
|
||||
*
|
||||
* @implSpec If a value is present the result must include its string
|
||||
* representation in the result. Empty and present instances must be
|
||||
* @implSpec
|
||||
* If a value is present the result must include its string representation
|
||||
* in the result. Empty and present {@code OptionalLong}s must be
|
||||
* unambiguously differentiable.
|
||||
*
|
||||
* @return the string representation of this instance
|
||||
|
@ -438,10 +438,19 @@ class JarFile extends ZipFile {
|
||||
private byte[] getBytes(ZipEntry ze) throws IOException {
|
||||
try (InputStream is = super.getInputStream(ze)) {
|
||||
int len = (int)ze.getSize();
|
||||
byte[] b = is.readAllBytes();
|
||||
if (len != -1 && b.length != len)
|
||||
throw new EOFException("Expected:" + len + ", read:" + b.length);
|
||||
|
||||
int bytesRead;
|
||||
byte[] b;
|
||||
// trust specified entry sizes when reasonably small
|
||||
if (len != -1 && len <= 65535) {
|
||||
b = new byte[len];
|
||||
bytesRead = is.readNBytes(b, 0, len);
|
||||
} else {
|
||||
b = is.readAllBytes();
|
||||
bytesRead = b.length;
|
||||
}
|
||||
if (len != -1 && len != bytesRead) {
|
||||
throw new EOFException("Expected:" + len + ", read:" + bytesRead);
|
||||
}
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
@ -478,6 +478,13 @@ public class Cipher {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param transformation the name of the transformation, e.g.,
|
||||
* <i>DES/CBC/PKCS5Padding</i>.
|
||||
* See the Cipher section in the <a href=
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -112,6 +112,13 @@ public class ExemptionMechanism {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested exemption
|
||||
* mechanism.
|
||||
* See the ExemptionMechanism section in the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -150,6 +150,13 @@ public class KeyAgreement {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested key agreement
|
||||
* algorithm.
|
||||
* See the KeyAgreement section in the <a href=
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -202,6 +202,13 @@ public class KeyGenerator {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested key algorithm.
|
||||
* See the KeyGenerator section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#KeyGenerator">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -152,6 +152,13 @@ public class Mac implements Cloneable {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested MAC algorithm.
|
||||
* See the Mac section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#Mac">
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -137,6 +137,13 @@ public class SecretKeyFactory {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested secret-key
|
||||
* algorithm.
|
||||
* See the SecretKeyFactory section in the <a href=
|
||||
|
@ -116,6 +116,13 @@ public class KeyManagerFactory {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested algorithm.
|
||||
* See the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/jsse/JSSERefGuide.html">
|
||||
|
@ -136,6 +136,13 @@ public class SSLContext {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param protocol the standard name of the requested protocol.
|
||||
* See the SSLContext section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#SSLContext">
|
||||
|
@ -130,6 +130,13 @@ public class TrustManagerFactory {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param algorithm the standard name of the requested trust management
|
||||
* algorithm. See the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/jsse/JSSERefGuide.html">
|
||||
|
@ -101,6 +101,18 @@ package javax.security.auth;
|
||||
* login Configuration.
|
||||
* </pre>
|
||||
*
|
||||
* <p>Please note that granting this permission with the "modifyPrincipals",
|
||||
* "modifyPublicCredentials" or "modifyPrivateCredentials" target allows
|
||||
* a JAAS login module to populate principal or credential objects into
|
||||
* the Subject. Although reading information inside the private credentials
|
||||
* set requires a {@link PrivateCredentialPermission} of the credential type to
|
||||
* be granted, reading information inside the principals set and the public
|
||||
* credentials set requires no additional permission. These objects can contain
|
||||
* potentially sensitive information. For example, login modules that read
|
||||
* local user information or perform a Kerberos login are able to add
|
||||
* potentially sensitive information such as user ids, groups and domain names
|
||||
* to the principals set.
|
||||
*
|
||||
* <p> The following target name has been deprecated in favor of
|
||||
* {@code createLoginContext.{name}}.
|
||||
*
|
||||
|
@ -311,6 +311,13 @@ public abstract class Configuration {
|
||||
* <p> Note that the list of registered providers may be retrieved via
|
||||
* the {@link Security#getProviders() Security.getProviders()} method.
|
||||
*
|
||||
* @implNote
|
||||
* The JDK Reference Implementation additionally uses the
|
||||
* {@code jdk.security.provider.preferred} property to determine
|
||||
* the preferred provider order for the specified algorithm. This
|
||||
* may be different than the order of providers returned by
|
||||
* {@link Security#getProviders() Security.getProviders()}.
|
||||
*
|
||||
* @param type the specified Configuration type. See the Configuration
|
||||
* section in the <a href=
|
||||
* "{@docRoot}/../technotes/guides/security/StandardNames.html#Configuration">
|
||||
|
@ -28,8 +28,8 @@ package jdk.internal;
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* The {@code @HotSpotIntrinsicCandidate} annotation is specific to the Oracle Java
|
||||
* HotSpot Virtual Machine implementation and indicates that an annotated method
|
||||
* The {@code @HotSpotIntrinsicCandidate} annotation is specific to the
|
||||
* HotSpot Virtual Machine. It indicates that an annotated method
|
||||
* may be (but is not guaranteed to be) intrinsified by the HotSpot VM. A method
|
||||
* is intrinsified if the HotSpot VM replaces the annotated method with hand-written
|
||||
* assembly and/or hand-written compiler IR -- a compiler intrinsic -- to improve
|
||||
|
@ -487,7 +487,8 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
|
||||
private void checkMessageHeader(String key, String value) {
|
||||
char LF = '\n';
|
||||
int index = key.indexOf(LF);
|
||||
if (index != -1) {
|
||||
int index1 = key.indexOf(':');
|
||||
if (index != -1 || index1 != -1) {
|
||||
throw new IllegalArgumentException(
|
||||
"Illegal character(s) in message header field: " + key);
|
||||
}
|
||||
|
@ -27,8 +27,11 @@ package sun.security.jca;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import java.security.*;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.Provider;
|
||||
import java.security.Provider.Service;
|
||||
import java.security.Security;
|
||||
|
||||
/**
|
||||
* List of Providers. Used to represent the provider preferences.
|
||||
@ -65,6 +68,9 @@ public final class ProviderList {
|
||||
// constant for an ProviderList with no elements
|
||||
static final ProviderList EMPTY = new ProviderList(PC0, true);
|
||||
|
||||
// list of all jdk.security.provider.preferred entries
|
||||
static private PreferredList preferredPropList = null;
|
||||
|
||||
// dummy provider object to use during initialization
|
||||
// used to avoid explicit null checks in various places
|
||||
private static final Provider EMPTY_PROVIDER =
|
||||
@ -162,11 +168,10 @@ public final class ProviderList {
|
||||
*/
|
||||
private ProviderList() {
|
||||
List<ProviderConfig> configList = new ArrayList<>();
|
||||
for (int i = 1; true; i++) {
|
||||
String entry = Security.getProperty("security.provider." + i);
|
||||
if (entry == null) {
|
||||
break;
|
||||
}
|
||||
String entry;
|
||||
int i = 1;
|
||||
|
||||
while ((entry = Security.getProperty("security.provider." + i)) != null) {
|
||||
entry = entry.trim();
|
||||
if (entry.length() == 0) {
|
||||
System.err.println("invalid entry for " +
|
||||
@ -187,10 +192,36 @@ public final class ProviderList {
|
||||
if (configList.contains(config) == false) {
|
||||
configList.add(config);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
configs = configList.toArray(PC0);
|
||||
|
||||
// Load config entries for use when getInstance is called
|
||||
entry = Security.getProperty("jdk.security.provider.preferred");
|
||||
if (entry != null && (entry = entry.trim()).length() > 0) {
|
||||
String[] entries = entry.split(",");
|
||||
if (ProviderList.preferredPropList == null) {
|
||||
ProviderList.preferredPropList = new PreferredList();
|
||||
}
|
||||
|
||||
for (String e : entries) {
|
||||
i = e.indexOf(':');
|
||||
if (i < 0) {
|
||||
if (debug != null) {
|
||||
debug.println("invalid preferred entry skipped. " +
|
||||
"Missing colon delimiter \"" + e + "\"");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
ProviderList.preferredPropList.add(new PreferredEntry(
|
||||
e.substring(0, i).trim(), e.substring(i + 1).trim()));
|
||||
}
|
||||
}
|
||||
|
||||
if (debug != null) {
|
||||
debug.println("provider configuration: " + configList);
|
||||
debug.println("config configuration: " +
|
||||
ProviderList.preferredPropList);
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,7 +358,22 @@ public final class ProviderList {
|
||||
* algorithm.
|
||||
*/
|
||||
public Service getService(String type, String name) {
|
||||
for (int i = 0; i < configs.length; i++) {
|
||||
ArrayList<PreferredEntry> pList = null;
|
||||
int i;
|
||||
|
||||
// Preferred provider list
|
||||
if (preferredPropList != null &&
|
||||
(pList = preferredPropList.getAll(type, name)) != null) {
|
||||
for (i = 0; i < pList.size(); i++) {
|
||||
Provider p = getProvider(pList.get(i).provider);
|
||||
Service s = p.getService(type, name);
|
||||
if (s != null) {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < configs.length; i++) {
|
||||
Provider p = getProvider(i);
|
||||
Service s = p.getService(type, name);
|
||||
if (s != null) {
|
||||
@ -394,7 +440,11 @@ public final class ProviderList {
|
||||
private List<Service> services;
|
||||
|
||||
// index into config[] of the next provider we need to query
|
||||
private int providerIndex;
|
||||
private int providerIndex = 0;
|
||||
|
||||
// Matching preferred provider list for this ServiceList
|
||||
ArrayList<PreferredEntry> preferredList = null;
|
||||
private int preferredIndex = 0;
|
||||
|
||||
ServiceList(String type, String algorithm) {
|
||||
this.type = type;
|
||||
@ -421,6 +471,14 @@ public final class ProviderList {
|
||||
}
|
||||
|
||||
private Service tryGet(int index) {
|
||||
Provider p;
|
||||
|
||||
// If preferred providers are configured, check for matches with
|
||||
// the requested service.
|
||||
if (preferredPropList != null && preferredList == null) {
|
||||
preferredList = preferredPropList.getAll(this);
|
||||
}
|
||||
|
||||
while (true) {
|
||||
if ((index == 0) && (firstService != null)) {
|
||||
return firstService;
|
||||
@ -430,8 +488,27 @@ public final class ProviderList {
|
||||
if (providerIndex >= configs.length) {
|
||||
return null;
|
||||
}
|
||||
// check all algorithms in this provider before moving on
|
||||
Provider p = getProvider(providerIndex++);
|
||||
|
||||
// If there were matches with a preferred provider, iterate
|
||||
// through the list first before going through the
|
||||
// ordered list (java.security.provider.#)
|
||||
if (preferredList != null &&
|
||||
preferredIndex < preferredList.size()) {
|
||||
PreferredEntry entry = preferredList.get(preferredIndex++);
|
||||
// Look for the provider name in the PreferredEntry
|
||||
p = getProvider(entry.provider);
|
||||
if (p == null) {
|
||||
if (debug != null) {
|
||||
debug.println("No provider found with name: " +
|
||||
entry.provider);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
// check all algorithms in this provider before moving on
|
||||
p = getProvider(providerIndex++);
|
||||
}
|
||||
|
||||
if (type != null) {
|
||||
// simple lookup
|
||||
Service s = p.getService(type, algorithm);
|
||||
@ -502,4 +579,119 @@ public final class ProviderList {
|
||||
}
|
||||
}
|
||||
|
||||
// Provider list defined by jdk.security.provider.preferred entry
|
||||
static final class PreferredList {
|
||||
ArrayList<PreferredEntry> list = new ArrayList<PreferredEntry>();
|
||||
|
||||
/*
|
||||
* Return a list of all preferred entries that match the passed
|
||||
* ServiceList.
|
||||
*/
|
||||
ArrayList<PreferredEntry> getAll(ServiceList s) {
|
||||
if (s.ids == null) {
|
||||
return getAll(s.type, s.algorithm);
|
||||
|
||||
}
|
||||
|
||||
ArrayList<PreferredEntry> l = new ArrayList<PreferredEntry>();
|
||||
for (ServiceId id : s.ids) {
|
||||
implGetAll(l, id.type, id.algorithm);
|
||||
}
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a list of all preferred entries that match the passed
|
||||
* type and algorithm.
|
||||
*/
|
||||
ArrayList<PreferredEntry> getAll(String type, String algorithm) {
|
||||
ArrayList<PreferredEntry> l = new ArrayList<PreferredEntry>();
|
||||
implGetAll(l, type, algorithm);
|
||||
return l;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compare each preferred entry against the passed type and
|
||||
* algorithm, putting any matches in the passed ArrayList.
|
||||
*/
|
||||
private void implGetAll(ArrayList<PreferredEntry> l, String type,
|
||||
String algorithm) {
|
||||
PreferredEntry e;
|
||||
|
||||
for (int i = 0; i < size(); i++) {
|
||||
e = list.get(i);
|
||||
if (e.match(type, algorithm)) {
|
||||
l.add(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public PreferredEntry get(int i) {
|
||||
return list.get(i);
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return list.size();
|
||||
}
|
||||
|
||||
public boolean add(PreferredEntry e) {
|
||||
return list.add(e);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String s = "";
|
||||
for (PreferredEntry e: list) {
|
||||
s += e.toString();
|
||||
}
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
// Individual preferred property entry from jdk.security.provider.preferred
|
||||
private class PreferredEntry {
|
||||
String type = null;
|
||||
String algorithm;
|
||||
String provider;
|
||||
|
||||
PreferredEntry(String t, String p) {
|
||||
int i = t.indexOf('.');
|
||||
if (i > 0) {
|
||||
type = t.substring(0, i);
|
||||
algorithm = t.substring(i + 1);
|
||||
} else {
|
||||
algorithm = t;
|
||||
}
|
||||
|
||||
provider = p;
|
||||
}
|
||||
|
||||
boolean match(String t, String a) {
|
||||
if (debug != null) {
|
||||
debug.println("Config match: " + toString() + " == [" + t +
|
||||
", " + a + "]");
|
||||
}
|
||||
|
||||
// Compare service type if configured
|
||||
if (type != null && type.compareToIgnoreCase(t) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Compare the algorithm string.
|
||||
if (a.compareToIgnoreCase(algorithm) == 0) {
|
||||
if (debug != null) {
|
||||
debug.println("Config entry found: " + toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// No match
|
||||
return false;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "[" + type + ", " + algorithm + " : " + provider + "] ";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -77,6 +77,13 @@ public final class AlgorithmChecker extends PKIXCertPathChecker {
|
||||
private static final Set<CryptoPrimitive> SIGNATURE_PRIMITIVE_SET =
|
||||
Collections.unmodifiableSet(EnumSet.of(CryptoPrimitive.SIGNATURE));
|
||||
|
||||
private static final Set<CryptoPrimitive> KU_PRIMITIVE_SET =
|
||||
Collections.unmodifiableSet(EnumSet.of(
|
||||
CryptoPrimitive.SIGNATURE,
|
||||
CryptoPrimitive.KEY_ENCAPSULATION,
|
||||
CryptoPrimitive.PUBLIC_KEY_ENCRYPTION,
|
||||
CryptoPrimitive.KEY_AGREEMENT));
|
||||
|
||||
private static final DisabledAlgorithmConstraints
|
||||
certPathDefaultConstraints = new DisabledAlgorithmConstraints(
|
||||
DisabledAlgorithmConstraints.PROPERTY_CERTPATH_DISABLED_ALGS);
|
||||
@ -210,9 +217,11 @@ public final class AlgorithmChecker extends PKIXCertPathChecker {
|
||||
null, null, -1, PKIXReason.INVALID_KEY_USAGE);
|
||||
}
|
||||
|
||||
// Assume all key usage bits are set if key usage is not present
|
||||
Set<CryptoPrimitive> primitives = KU_PRIMITIVE_SET;
|
||||
|
||||
if (keyUsage != null) {
|
||||
Set<CryptoPrimitive> primitives =
|
||||
EnumSet.noneOf(CryptoPrimitive.class);
|
||||
primitives = EnumSet.noneOf(CryptoPrimitive.class);
|
||||
|
||||
if (keyUsage[0] || keyUsage[1] || keyUsage[5] || keyUsage[6]) {
|
||||
// keyUsage[0]: KeyUsage.digitalSignature
|
||||
@ -237,15 +246,19 @@ public final class AlgorithmChecker extends PKIXCertPathChecker {
|
||||
// KeyUsage.encipherOnly and KeyUsage.decipherOnly are
|
||||
// undefined in the absence of the keyAgreement bit.
|
||||
|
||||
if (!primitives.isEmpty()) {
|
||||
if (!constraints.permits(primitives, currPubKey)) {
|
||||
throw new CertPathValidatorException(
|
||||
"algorithm constraints check failed",
|
||||
null, null, -1, BasicReason.ALGORITHM_CONSTRAINED);
|
||||
}
|
||||
if (primitives.isEmpty()) {
|
||||
throw new CertPathValidatorException(
|
||||
"incorrect KeyUsage extension",
|
||||
null, null, -1, PKIXReason.INVALID_KEY_USAGE);
|
||||
}
|
||||
}
|
||||
|
||||
if (!constraints.permits(primitives, currPubKey)) {
|
||||
throw new CertPathValidatorException(
|
||||
"algorithm constraints check failed",
|
||||
null, null, -1, BasicReason.ALGORITHM_CONSTRAINED);
|
||||
}
|
||||
|
||||
// Check with previous cert for signature algorithm and public key
|
||||
if (prevPubKey != null) {
|
||||
if (currSigAlg != null) {
|
||||
|
@ -1068,20 +1068,17 @@ class RevocationChecker extends PKIXRevocationChecker {
|
||||
boolean signFlag = true;
|
||||
List<? extends Certificate> cpList =
|
||||
cpbr.getCertPath().getCertificates();
|
||||
if (cpList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (int i = cpList.size()-1; i >= 0; i-- ) {
|
||||
X509Certificate cert = (X509Certificate)cpList.get(i);
|
||||
for (int i = cpList.size() - 1; i >= 0; i--) {
|
||||
X509Certificate cert = (X509Certificate) cpList.get(i);
|
||||
|
||||
if (debug != null) {
|
||||
debug.println("RevocationChecker.buildToNewKey()"
|
||||
+ " index " + i + " checking "
|
||||
+ cert);
|
||||
+ " index " + i + " checking "
|
||||
+ cert);
|
||||
}
|
||||
checkCRLs(cert, prevKey2, null, signFlag, true,
|
||||
stackedCerts, newAnchors);
|
||||
stackedCerts, newAnchors);
|
||||
signFlag = certCanSignCrl(cert);
|
||||
prevKey2 = cert.getPublicKey();
|
||||
}
|
||||
@ -1100,8 +1097,10 @@ class RevocationChecker extends PKIXRevocationChecker {
|
||||
// If it doesn't check out, try to find a different key.
|
||||
// And if we can't find a key, then return false.
|
||||
PublicKey newKey = cpbr.getPublicKey();
|
||||
X509Certificate newCert = cpList.isEmpty() ?
|
||||
null : (X509Certificate) cpList.get(0);
|
||||
try {
|
||||
checkCRLs(currCert, newKey, (X509Certificate) cpList.get(0),
|
||||
checkCRLs(currCert, newKey, newCert,
|
||||
true, false, null, params.trustAnchors());
|
||||
// If that passed, the cert is OK!
|
||||
return;
|
||||
|
@ -350,8 +350,6 @@ final class CipherSuite implements Comparable<CipherSuite> {
|
||||
private static void add(String name, int id, int priority,
|
||||
KeyExchange keyExchange, BulkCipher cipher, MacAlg mac,
|
||||
boolean allowed, int obsoleted) {
|
||||
// If this is an obsoleted suite, then don't let the TLS 1.2
|
||||
// protocol have a valid PRF value.
|
||||
PRF prf = obsoleted < ProtocolVersion.TLS12.v ? P_NONE : P_SHA256;
|
||||
|
||||
add(name, id, priority, keyExchange, cipher, mac, allowed, obsoleted,
|
||||
|
@ -672,6 +672,9 @@ final class ClientHandshaker extends Handshaker {
|
||||
}
|
||||
} else {
|
||||
// we wanted to resume, but the server refused
|
||||
//
|
||||
// Invalidate the session in case of reusing next time.
|
||||
session.invalidate();
|
||||
session = null;
|
||||
if (!enableNewSession) {
|
||||
throw new SSLException("New session creation is disabled");
|
||||
|
@ -26,6 +26,11 @@
|
||||
|
||||
package sun.security.ssl;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.Collections;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.regex.Matcher;
|
||||
import java.math.BigInteger;
|
||||
import java.security.*;
|
||||
import java.io.IOException;
|
||||
@ -95,9 +100,35 @@ final class DHCrypt {
|
||||
* Generate a Diffie-Hellman keypair of the specified size.
|
||||
*/
|
||||
DHCrypt(int keyLength, SecureRandom random) {
|
||||
this(keyLength,
|
||||
ParametersHolder.definedParams.get(keyLength), random);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a Diffie-Hellman keypair using the specified parameters.
|
||||
*
|
||||
* @param modulus the Diffie-Hellman modulus P
|
||||
* @param base the Diffie-Hellman base G
|
||||
*/
|
||||
DHCrypt(BigInteger modulus, BigInteger base, SecureRandom random) {
|
||||
this(modulus.bitLength(),
|
||||
new DHParameterSpec(modulus, base), random);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a Diffie-Hellman keypair using the specified size and
|
||||
* parameters.
|
||||
*/
|
||||
private DHCrypt(int keyLength,
|
||||
DHParameterSpec params, SecureRandom random) {
|
||||
|
||||
try {
|
||||
KeyPairGenerator kpg = JsseJce.getKeyPairGenerator("DiffieHellman");
|
||||
kpg.initialize(keyLength, random);
|
||||
if (params != null) {
|
||||
kpg.initialize(params, random);
|
||||
} else {
|
||||
kpg.initialize(keyLength, random);
|
||||
}
|
||||
|
||||
DHPublicKeySpec spec = generateDHPublicKeySpec(kpg);
|
||||
if (spec == null) {
|
||||
@ -112,33 +143,6 @@ final class DHCrypt {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a Diffie-Hellman keypair using the specified parameters.
|
||||
*
|
||||
* @param modulus the Diffie-Hellman modulus P
|
||||
* @param base the Diffie-Hellman base G
|
||||
*/
|
||||
DHCrypt(BigInteger modulus, BigInteger base, SecureRandom random) {
|
||||
this.modulus = modulus;
|
||||
this.base = base;
|
||||
try {
|
||||
KeyPairGenerator kpg = JsseJce.getKeyPairGenerator("DiffieHellman");
|
||||
DHParameterSpec params = new DHParameterSpec(modulus, base);
|
||||
kpg.initialize(params, random);
|
||||
|
||||
DHPublicKeySpec spec = generateDHPublicKeySpec(kpg);
|
||||
if (spec == null) {
|
||||
throw new RuntimeException("Could not generate DH keypair");
|
||||
}
|
||||
|
||||
publicValue = spec.getY();
|
||||
} catch (GeneralSecurityException e) {
|
||||
throw new RuntimeException("Could not generate DH keypair", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static DHPublicKeySpec getDHPublicKeySpec(PublicKey key) {
|
||||
if (key instanceof DHPublicKey) {
|
||||
DHPublicKey dhKey = (DHPublicKey)key;
|
||||
@ -268,4 +272,141 @@ final class DHCrypt {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// lazy initialization holder class idiom for static default parameters
|
||||
//
|
||||
// See Effective Java Second Edition: Item 71.
|
||||
private static class ParametersHolder {
|
||||
private final static boolean debugIsOn =
|
||||
(Debug.getInstance("ssl") != null) && Debug.isOn("sslctx");
|
||||
|
||||
//
|
||||
// Default DH ephemeral parameters
|
||||
//
|
||||
private static final BigInteger g2 = BigInteger.valueOf(2);
|
||||
|
||||
private static final BigInteger p512 = new BigInteger( // generated
|
||||
"D87780E15FF50B4ABBE89870188B049406B5BEA98AB23A02" +
|
||||
"41D88EA75B7755E669C08093D3F0CA7FC3A5A25CF067DCB9" +
|
||||
"A43DD89D1D90921C6328884461E0B6D3", 16);
|
||||
private static final BigInteger p768 = new BigInteger( // RFC 2409
|
||||
"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" +
|
||||
"29024E088A67CC74020BBEA63B139B22514A08798E3404DD" +
|
||||
"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" +
|
||||
"E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF", 16);
|
||||
|
||||
private static final BigInteger p1024 = new BigInteger( // RFC 2409
|
||||
"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" +
|
||||
"29024E088A67CC74020BBEA63B139B22514A08798E3404DD" +
|
||||
"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" +
|
||||
"E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" +
|
||||
"EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381" +
|
||||
"FFFFFFFFFFFFFFFF", 16);
|
||||
private static final BigInteger p2048 = new BigInteger( // TLS FEDHE
|
||||
"FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1" +
|
||||
"D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF9" +
|
||||
"7D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD6561" +
|
||||
"2433F51F5F066ED0856365553DED1AF3B557135E7F57C935" +
|
||||
"984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE735" +
|
||||
"30ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FB" +
|
||||
"B96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB19" +
|
||||
"0B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F61" +
|
||||
"9172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD73" +
|
||||
"3BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA" +
|
||||
"886B423861285C97FFFFFFFFFFFFFFFF", 16);
|
||||
|
||||
private static final BigInteger[] supportedPrimes = {
|
||||
p512, p768, p1024, p2048};
|
||||
|
||||
// a measure of the uncertainty that prime modulus p is not a prime
|
||||
//
|
||||
// see BigInteger.isProbablePrime(int certainty)
|
||||
private final static int PRIME_CERTAINTY = 120;
|
||||
|
||||
// the known security property, jdk.tls.server.defaultDHEParameters
|
||||
private final static String PROPERTY_NAME =
|
||||
"jdk.tls.server.defaultDHEParameters";
|
||||
|
||||
private static final Pattern spacesPattern = Pattern.compile("\\s+");
|
||||
|
||||
private final static Pattern syntaxPattern = Pattern.compile(
|
||||
"(\\{[0-9A-Fa-f]+,[0-9A-Fa-f]+\\})" +
|
||||
"(,\\{[0-9A-Fa-f]+,[0-9A-Fa-f]+\\})*");
|
||||
|
||||
private static final Pattern paramsPattern = Pattern.compile(
|
||||
"\\{([0-9A-Fa-f]+),([0-9A-Fa-f]+)\\}");
|
||||
|
||||
// cache of predefined default DH ephemeral parameters
|
||||
private final static Map<Integer,DHParameterSpec> definedParams;
|
||||
|
||||
static {
|
||||
String property = AccessController.doPrivileged(
|
||||
new PrivilegedAction<String>() {
|
||||
public String run() {
|
||||
return Security.getProperty(PROPERTY_NAME);
|
||||
}
|
||||
});
|
||||
|
||||
if (property != null && !property.isEmpty()) {
|
||||
// remove double quote marks from beginning/end of the property
|
||||
if (property.length() >= 2 && property.charAt(0) == '"' &&
|
||||
property.charAt(property.length() - 1) == '"') {
|
||||
property = property.substring(1, property.length() - 1);
|
||||
}
|
||||
|
||||
property = property.trim();
|
||||
}
|
||||
|
||||
if (property != null && !property.isEmpty()) {
|
||||
Matcher spacesMatcher = spacesPattern.matcher(property);
|
||||
property = spacesMatcher.replaceAll("");
|
||||
|
||||
if (debugIsOn) {
|
||||
System.out.println("The Security Property " +
|
||||
PROPERTY_NAME + ": " + property);
|
||||
}
|
||||
}
|
||||
|
||||
Map<Integer,DHParameterSpec> defaultParams = new HashMap<>();
|
||||
if (property != null && !property.isEmpty()) {
|
||||
Matcher syntaxMatcher = syntaxPattern.matcher(property);
|
||||
if (syntaxMatcher.matches()) {
|
||||
Matcher paramsFinder = paramsPattern.matcher(property);
|
||||
while(paramsFinder.find()) {
|
||||
String primeModulus = paramsFinder.group(1);
|
||||
BigInteger p = new BigInteger(primeModulus, 16);
|
||||
if (!p.isProbablePrime(PRIME_CERTAINTY)) {
|
||||
if (debugIsOn) {
|
||||
System.out.println(
|
||||
"Prime modulus p in Security Property, " +
|
||||
PROPERTY_NAME + ", is not a prime: " +
|
||||
primeModulus);
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
String baseGenerator = paramsFinder.group(2);
|
||||
BigInteger g = new BigInteger(baseGenerator, 16);
|
||||
|
||||
DHParameterSpec spec = new DHParameterSpec(p, g);
|
||||
int primeLen = p.bitLength();
|
||||
defaultParams.put(primeLen, spec);
|
||||
}
|
||||
} else if (debugIsOn) {
|
||||
System.out.println("Invalid Security Property, " +
|
||||
PROPERTY_NAME + ", definition");
|
||||
}
|
||||
}
|
||||
|
||||
for (BigInteger p : supportedPrimes) {
|
||||
int primeLen = p.bitLength();
|
||||
defaultParams.putIfAbsent(primeLen, new DHParameterSpec(p, g2));
|
||||
}
|
||||
|
||||
definedParams =
|
||||
Collections.<Integer,DHParameterSpec>unmodifiableMap(
|
||||
defaultParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -284,7 +284,7 @@ final class SSLEngineInputRecord extends InputRecord implements SSLRecord {
|
||||
((plaintext.get() & 0xFF) << 8) |
|
||||
(plaintext.get() & 0xFF);
|
||||
plaintext.position(frgPos);
|
||||
if (remains < (handshakeLen + 1)) { // 1: handshake type
|
||||
if (remains < (handshakeLen + 4)) { // 4: handshake header
|
||||
// This handshake message is fragmented.
|
||||
prevType = handshakeType;
|
||||
hsMsgOff = remains - 4; // 4: handshake header
|
||||
|
@ -54,13 +54,12 @@ public abstract class AbstractAlgorithmConstraints
|
||||
String[] algorithmsInProperty = null;
|
||||
if (property != null && !property.isEmpty()) {
|
||||
// remove double quote marks from beginning/end of the property
|
||||
if (property.charAt(0) == '"'
|
||||
&& property.charAt(property.length() - 1) == '"') {
|
||||
if (property.length() >= 2 && property.charAt(0) == '"' &&
|
||||
property.charAt(property.length() - 1) == '"') {
|
||||
property = property.substring(1, property.length() - 1);
|
||||
}
|
||||
algorithmsInProperty = property.split(",");
|
||||
for (int i = 0; i < algorithmsInProperty.length;
|
||||
i++) {
|
||||
for (int i = 0; i < algorithmsInProperty.length; i++) {
|
||||
algorithmsInProperty[i] = algorithmsInProperty[i].trim();
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -90,6 +90,31 @@ security.provider.tbd=apple.security.AppleProvider
|
||||
security.provider.tbd=sun.security.pkcs11.SunPKCS11
|
||||
#endif
|
||||
|
||||
#
|
||||
# A list of preferred providers for specific algorithms. These providers will
|
||||
# be searched for matching algorithms before the list of registered providers.
|
||||
# Entries containing errors (parsing, etc) will be ignored. Use the
|
||||
# -Djava.security.debug=jca property to debug these errors.
|
||||
#
|
||||
# The property is a comma-separated list of serviceType.algorithm:provider
|
||||
# entries. The serviceType (example: "MessageDigest") is optional, and if
|
||||
# not specified, the algorithm applies to all service types that support it.
|
||||
# The algorithm is the standard algorithm name or transformation.
|
||||
# Transformations can be specified in their full standard name
|
||||
# (ex: AES/CBC/PKCS5Padding), or as partial matches (ex: AES, AES/CBC).
|
||||
# The provider is the name of the provider. Any provider that does not
|
||||
# also appear in the registered list will be ignored.
|
||||
#
|
||||
# Example:
|
||||
# jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \
|
||||
# MessageDigest.SHA-256:SUN
|
||||
#ifdef solaris-sparc
|
||||
jdk.security.provider.preferred=AES:SunJCE, SHA-256:SUN, SHA-384:SUN, SHA-512:SUN
|
||||
#endif
|
||||
#ifdef solaris-x86
|
||||
jdk.security.provider.preferred=AES:SunJCE, RSA:SunRsaSign
|
||||
#endif
|
||||
|
||||
|
||||
#
|
||||
# Sun Provider SecureRandom seed source.
|
||||
@ -234,6 +259,7 @@ package.access=sun.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.util.,\
|
||||
com.sun.org.apache.xml.internal.res.,\
|
||||
com.sun.org.apache.xml.internal.security.,\
|
||||
com.sun.org.apache.xml.internal.serializer.dom3.,\
|
||||
com.sun.org.apache.xml.internal.serializer.utils.,\
|
||||
com.sun.org.apache.xml.internal.utils.,\
|
||||
com.sun.org.glassfish.,\
|
||||
@ -289,6 +315,7 @@ package.definition=sun.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.util.,\
|
||||
com.sun.org.apache.xml.internal.res.,\
|
||||
com.sun.org.apache.xml.internal.security.,\
|
||||
com.sun.org.apache.xml.internal.serializer.dom3.,\
|
||||
com.sun.org.apache.xml.internal.serializer.utils.,\
|
||||
com.sun.org.apache.xml.internal.utils.,\
|
||||
com.sun.org.glassfish.,\
|
||||
@ -607,3 +634,60 @@ jdk.tls.legacyAlgorithms= \
|
||||
DH_RSA_EXPORT, RSA_EXPORT, \
|
||||
DH_anon, ECDH_anon, \
|
||||
RC4_128, RC4_40, DES_CBC, DES40_CBC
|
||||
|
||||
# The pre-defined default finite field Diffie-Hellman ephemeral (DHE)
|
||||
# parameters for Transport Layer Security (SSL/TLS/DTLS) processing.
|
||||
#
|
||||
# In traditional SSL/TLS/DTLS connections where finite field DHE parameters
|
||||
# negotiation mechanism is not used, the server offers the client group
|
||||
# parameters, base generator g and prime modulus p, for DHE key exchange.
|
||||
# It is recommended to use dynamic group parameters. This property defines
|
||||
# a mechanism that allows you to specify custom group parameters.
|
||||
#
|
||||
# The syntax of this property string is described as this Java BNF-style:
|
||||
# DefaultDHEParameters:
|
||||
# DefinedDHEParameters { , DefinedDHEParameters }
|
||||
#
|
||||
# DefinedDHEParameters:
|
||||
# "{" DHEPrimeModulus , DHEBaseGenerator "}"
|
||||
#
|
||||
# DHEPrimeModulus:
|
||||
# HexadecimalDigits
|
||||
#
|
||||
# DHEBaseGenerator:
|
||||
# HexadecimalDigits
|
||||
#
|
||||
# HexadecimalDigits:
|
||||
# HexadecimalDigit { HexadecimalDigit }
|
||||
#
|
||||
# HexadecimalDigit: one of
|
||||
# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
|
||||
#
|
||||
# Whitespace characters are ignored.
|
||||
#
|
||||
# The "DefinedDHEParameters" defines the custom group parameters, prime
|
||||
# modulus p and base generator g, for a particular size of prime modulus p.
|
||||
# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the
|
||||
# "DHEBaseGenerator" defines the hexadecimal base generator g of a group
|
||||
# parameter. It is recommended to use safe primes for the custom group
|
||||
# parameters.
|
||||
#
|
||||
# If this property is not defined or the value is empty, the underlying JSSE
|
||||
# provider's default group parameter is used for each connection.
|
||||
#
|
||||
# If the property value does not follow the grammar, or a particular group
|
||||
# parameter is not valid, the connection will fall back and use the
|
||||
# underlying JSSE provider's default group parameter.
|
||||
#
|
||||
# Note: This property is currently used by OpenJDK's JSSE implementation. It
|
||||
# is not guaranteed to be examined and used by other implementations.
|
||||
#
|
||||
# Example:
|
||||
# jdk.tls.server.defaultDHEParameters=
|
||||
# { \
|
||||
# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \
|
||||
# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \
|
||||
# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \
|
||||
# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \
|
||||
# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \
|
||||
# FFFFFFFF FFFFFFFF, 2}
|
||||
|
@ -38,6 +38,7 @@ jfieldID ia_holderID;
|
||||
jfieldID iac_addressID;
|
||||
jfieldID iac_familyID;
|
||||
jfieldID iac_hostNameID;
|
||||
jfieldID iac_origHostNameID;
|
||||
jfieldID ia_preferIPv6AddressID;
|
||||
|
||||
static int ia_initialized = 0;
|
||||
@ -69,6 +70,8 @@ Java_java_net_InetAddress_init(JNIEnv *env, jclass cls) {
|
||||
CHECK_NULL(iac_familyID);
|
||||
iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;");
|
||||
CHECK_NULL(iac_hostNameID);
|
||||
iac_origHostNameID = (*env)->GetFieldID(env, iac_class, "originalHostName", "Ljava/lang/String;");
|
||||
CHECK_NULL(iac_origHostNameID);
|
||||
ia_initialized = 1;
|
||||
}
|
||||
}
|
||||
|
@ -174,6 +174,7 @@ void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) {
|
||||
void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
(*env)->SetObjectField(env, holder, iac_hostNameID, host);
|
||||
(*env)->SetObjectField(env, holder, iac_origHostNameID, host);
|
||||
}
|
||||
|
||||
int getInetAddress_addr(JNIEnv *env, jobject iaObj) {
|
||||
|
@ -53,6 +53,7 @@ extern jclass ia_class;
|
||||
extern jfieldID iac_addressID;
|
||||
extern jfieldID iac_familyID;
|
||||
extern jfieldID iac_hostNameID;
|
||||
extern jfieldID iac_origHostNameID;
|
||||
extern jfieldID ia_preferIPv6AddressID;
|
||||
|
||||
JNIEXPORT void JNICALL initInetAddressIDs(JNIEnv *env);
|
||||
|
@ -74,3 +74,4 @@ RICH_TEXT=text/rtf
|
||||
HTML=text/html;charset=utf-8;eoln="\r\n";terminators=1
|
||||
URL=application/x-java-url;class=java.net.URL,\
|
||||
text/uri-list;eoln="\r\n";terminators=1
|
||||
XPICT=image/x-pict;class=java.io.InputStream
|
||||
|
@ -54,7 +54,8 @@ public class CDataTransferer extends DataTransferer {
|
||||
"PDF",
|
||||
"URL",
|
||||
"PNG",
|
||||
"JFIF"
|
||||
"JFIF",
|
||||
"XPICT"
|
||||
};
|
||||
|
||||
static {
|
||||
@ -78,6 +79,7 @@ public class CDataTransferer extends DataTransferer {
|
||||
public static final int CF_URL = 7;
|
||||
public static final int CF_PNG = 8;
|
||||
public static final int CF_JPEG = 9;
|
||||
public static final int CF_XPICT = 10;
|
||||
|
||||
private CDataTransferer() {}
|
||||
|
||||
|
@ -56,6 +56,8 @@ NSMutableDictionary *getMappingTable() {
|
||||
forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_PNG]];
|
||||
[sStandardMappings setObject:(NSString*)kUTTypeJPEG
|
||||
forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_JPEG]];
|
||||
[sStandardMappings setObject:NSPICTPboardType
|
||||
forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_XPICT]];
|
||||
}
|
||||
return sStandardMappings;
|
||||
}
|
||||
|
@ -290,6 +290,8 @@ public class BMPImageReader extends ImageReader implements BMPConstants {
|
||||
imageType = VERSION_2_8_BIT;
|
||||
} else if (bitsPerPixel == 24) {
|
||||
imageType = VERSION_2_24_BIT;
|
||||
} else {
|
||||
throw new IIOException(I18N.getString("BMPImageReader8"));
|
||||
}
|
||||
|
||||
// Read in the palette
|
||||
@ -364,6 +366,9 @@ public class BMPImageReader extends ImageReader implements BMPConstants {
|
||||
metadata.redMask = redMask;
|
||||
metadata.greenMask = greenMask;
|
||||
metadata.blueMask = blueMask;
|
||||
} else {
|
||||
throw new
|
||||
IIOException(I18N.getString("BMPImageReader8"));
|
||||
}
|
||||
|
||||
metadata.bmpVersion = VERSION_3;
|
||||
@ -375,6 +380,9 @@ public class BMPImageReader extends ImageReader implements BMPConstants {
|
||||
imageType = VERSION_3_NT_16_BIT;
|
||||
} else if (bitsPerPixel == 32) {
|
||||
imageType = VERSION_3_NT_32_BIT;
|
||||
} else {
|
||||
throw new
|
||||
IIOException(I18N.getString("BMPImageReader8"));
|
||||
}
|
||||
|
||||
// BitsField encoding
|
||||
@ -493,6 +501,9 @@ public class BMPImageReader extends ImageReader implements BMPConstants {
|
||||
greenMask = 0x0000FF00;
|
||||
blueMask = 0x000000FF;
|
||||
}
|
||||
} else {
|
||||
throw new
|
||||
IIOException(I18N.getString("BMPImageReader8"));
|
||||
}
|
||||
|
||||
metadata.redMask = redMask;
|
||||
|
@ -23,6 +23,7 @@ BMPImageReader4=No ImageIO-style reader is found for
|
||||
BMPImageReader5=Input has not been set.
|
||||
BMPImageReader6=Unable to read the image header.
|
||||
BMPImageReader7=Invalid bitmap offset.
|
||||
BMPImageReader8=Invalid bits per pixel in image header.
|
||||
BMPImageWriter0=Output is not an ImageOutputStream.
|
||||
BMPImageWriter1=The image region to be encoded is empty.
|
||||
BMPImageWriter2=Only 1 or 3 band image is encoded.
|
||||
|
@ -1569,6 +1569,11 @@ public class WindowsLookAndFeel extends BasicLookAndFeel
|
||||
&& OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_VISTA) >= 0;
|
||||
}
|
||||
|
||||
static boolean isOnWindows7() {
|
||||
return OSInfo.getOSType() == OSInfo.OSType.WINDOWS
|
||||
&& OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_7) >= 0;
|
||||
}
|
||||
|
||||
private void initVistaComponentDefaults(UIDefaults table) {
|
||||
if (! isOnVista()) {
|
||||
return;
|
||||
@ -1638,28 +1643,30 @@ public class WindowsLookAndFeel extends BasicLookAndFeel
|
||||
}
|
||||
table.putDefaults(menuDefaults);
|
||||
|
||||
/* no margins */
|
||||
InsetsUIResource insets = new InsetsUIResource(0, 0, 0, 0);
|
||||
for (int i = 0, j = 0; i < menuClasses.length; i++) {
|
||||
String key = menuClasses[i] + ".margin";
|
||||
Object oldValue = table.get(key);
|
||||
menuDefaults[j++] = key;
|
||||
menuDefaults[j++] = new XPValue(insets, oldValue);
|
||||
}
|
||||
table.putDefaults(menuDefaults);
|
||||
/*For Windows7 margin and checkIconOffset should be greater than 0 */
|
||||
if (!isOnWindows7()) {
|
||||
/* no margins */
|
||||
InsetsUIResource insets = new InsetsUIResource(0, 0, 0, 0);
|
||||
for (int i = 0, j = 0; i < menuClasses.length; i++) {
|
||||
String key = menuClasses[i] + ".margin";
|
||||
Object oldValue = table.get(key);
|
||||
menuDefaults[j++] = key;
|
||||
menuDefaults[j++] = new XPValue(insets, oldValue);
|
||||
}
|
||||
table.putDefaults(menuDefaults);
|
||||
|
||||
/* set checkIcon offset */
|
||||
Integer checkIconOffsetInteger =
|
||||
Integer.valueOf(0);
|
||||
for (int i = 0, j = 0; i < menuClasses.length; i++) {
|
||||
String key = menuClasses[i] + ".checkIconOffset";
|
||||
Object oldValue = table.get(key);
|
||||
menuDefaults[j++] = key;
|
||||
menuDefaults[j++] =
|
||||
new XPValue(checkIconOffsetInteger, oldValue);
|
||||
/* set checkIcon offset */
|
||||
Integer checkIconOffsetInteger =
|
||||
Integer.valueOf(0);
|
||||
for (int i = 0, j = 0; i < menuClasses.length; i++) {
|
||||
String key = menuClasses[i] + ".checkIconOffset";
|
||||
Object oldValue = table.get(key);
|
||||
menuDefaults[j++] = key;
|
||||
menuDefaults[j++] =
|
||||
new XPValue(checkIconOffsetInteger, oldValue);
|
||||
}
|
||||
table.putDefaults(menuDefaults);
|
||||
}
|
||||
table.putDefaults(menuDefaults);
|
||||
|
||||
/* set width of the gap after check icon */
|
||||
Integer afterCheckIconGap = WindowsPopupMenuUI.getSpanBeforeGutter()
|
||||
+ WindowsPopupMenuUI.getGutterWidth()
|
||||
|
@ -26,6 +26,7 @@
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.ButtonPeer;
|
||||
import java.beans.BeanProperty;
|
||||
import java.util.EventListener;
|
||||
import java.awt.event.*;
|
||||
import java.io.ObjectOutputStream;
|
||||
@ -511,11 +512,10 @@ public class Button extends Component implements Accessible {
|
||||
*
|
||||
* @return an <code>AccessibleAWTButton</code> that serves as the
|
||||
* <code>AccessibleContext</code> of this <code>Button</code>
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: The AccessibleContext associated with this Button.
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "The AccessibleContext associated with this Button.")
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleAWTButton();
|
||||
|
@ -1763,8 +1763,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* is returned
|
||||
* @see #setForeground
|
||||
* @since 1.0
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
@Transient
|
||||
public Color getForeground() {
|
||||
@ -1843,8 +1841,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* component will inherit the background color of its parent
|
||||
* @see #getBackground
|
||||
* @since 1.0
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setBackground(Color c) {
|
||||
Color oldColor = background;
|
||||
@ -1911,8 +1907,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* @see #getFont
|
||||
* @see #invalidate
|
||||
* @since 1.0
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFont(Font f) {
|
||||
Font oldFont, newFont;
|
||||
@ -7234,8 +7228,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* @param focusable indicates whether this Component is focusable
|
||||
* @see #isFocusable
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusable(boolean focusable) {
|
||||
boolean oldFocusable;
|
||||
@ -7327,8 +7319,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* or if any keystroke already maps to another focus traversal
|
||||
* operation for this Component
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusTraversalKeys(int id,
|
||||
Set<? extends AWTKeyStroke> keystrokes)
|
||||
@ -7479,8 +7469,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* @see #setFocusTraversalKeys
|
||||
* @see #getFocusTraversalKeys
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusTraversalKeysEnabled(boolean
|
||||
focusTraversalKeysEnabled) {
|
||||
@ -8995,8 +8983,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
* @see #invalidate
|
||||
*
|
||||
* @author Laura Werner, IBM
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setComponentOrientation(ComponentOrientation o) {
|
||||
ComponentOrientation oldValue = componentOrientation;
|
||||
|
@ -3131,8 +3131,6 @@ public class Container extends Component {
|
||||
* or if any keystroke already maps to another focus traversal
|
||||
* operation for this Container
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusTraversalKeys(int id,
|
||||
Set<? extends AWTKeyStroke> keystrokes)
|
||||
@ -3347,8 +3345,6 @@ public class Container extends Component {
|
||||
* @see #setFocusCycleRoot
|
||||
* @see #isFocusCycleRoot
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusTraversalPolicy(FocusTraversalPolicy policy) {
|
||||
FocusTraversalPolicy oldPolicy;
|
||||
@ -3427,8 +3423,6 @@ public class Container extends Component {
|
||||
* @see ContainerOrderFocusTraversalPolicy
|
||||
* @see #setFocusTraversalPolicyProvider
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setFocusCycleRoot(boolean focusCycleRoot) {
|
||||
boolean oldFocusCycleRoot;
|
||||
@ -3472,8 +3466,6 @@ public class Container extends Component {
|
||||
* @see #getFocusTraversalPolicy
|
||||
* @see #isFocusTraversalPolicyProvider
|
||||
* @since 1.5
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public final void setFocusTraversalPolicyProvider(boolean provider) {
|
||||
boolean oldProvider;
|
||||
@ -3499,8 +3491,6 @@ public class Container extends Component {
|
||||
* @return <code>true</code> if this container provides focus traversal
|
||||
* policy, <code>false</code> otherwise
|
||||
* @since 1.5
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public final boolean isFocusTraversalPolicyProvider() {
|
||||
return focusTraversalPolicyProvider;
|
||||
|
@ -174,6 +174,12 @@ public class FileDialog extends Dialog {
|
||||
* Creates a file dialog for loading a file. The title of the
|
||||
* file dialog is initially empty. This is a convenience method for
|
||||
* <code>FileDialog(parent, "", LOAD)</code>.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @since 1.1
|
||||
@ -187,6 +193,12 @@ public class FileDialog extends Dialog {
|
||||
* a file. The files shown are those in the current directory.
|
||||
* This is a convenience method for
|
||||
* <code>FileDialog(parent, title, LOAD)</code>.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @param title the title of the dialog
|
||||
@ -204,6 +216,12 @@ public class FileDialog extends Dialog {
|
||||
* in the current directory. If the value of
|
||||
* <code>mode</code> is <code>SAVE</code>, the file dialog is finding
|
||||
* a place to write a file.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @param title the title of the dialog
|
||||
@ -224,6 +242,12 @@ public class FileDialog extends Dialog {
|
||||
* Creates a file dialog for loading a file. The title of the
|
||||
* file dialog is initially empty. This is a convenience method for
|
||||
* <code>FileDialog(parent, "", LOAD)</code>.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @exception java.lang.IllegalArgumentException if the <code>parent</code>'s
|
||||
@ -245,6 +269,12 @@ public class FileDialog extends Dialog {
|
||||
* a file. The files shown are those in the current directory.
|
||||
* This is a convenience method for
|
||||
* <code>FileDialog(parent, title, LOAD)</code>.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @param title the title of the dialog; a <code>null</code> value
|
||||
@ -273,6 +303,12 @@ public class FileDialog extends Dialog {
|
||||
* in the current directory. If the value of
|
||||
* <code>mode</code> is <code>SAVE</code>, the file dialog is finding
|
||||
* a place to write a file.
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*
|
||||
* @param parent the owner of the dialog
|
||||
* @param title the title of the dialog; a <code>null</code> value
|
||||
@ -300,6 +336,22 @@ public class FileDialog extends Dialog {
|
||||
setLayout(null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* <p>
|
||||
* <strong>Note:</strong> Some platforms may not support
|
||||
* showing the user-specified title in a file dialog.
|
||||
* In this situation, either no title will be displayed in the file dialog's
|
||||
* title bar or, on some systems, the file dialog's title bar will not be
|
||||
* displayed.
|
||||
*/
|
||||
@Override
|
||||
public void setTitle(String title) {
|
||||
super.setTitle(title);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructs a name for this component. Called by <code>getName()</code>
|
||||
* when the name is <code>null</code>.
|
||||
|
@ -528,8 +528,6 @@ public abstract class KeyboardFocusManager
|
||||
* current KeyboardFocusManager for the calling thread's context
|
||||
* and if the calling thread does not have "replaceKeyboardFocusManager"
|
||||
* permission
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
protected void setGlobalFocusOwner(Component focusOwner)
|
||||
throws SecurityException
|
||||
@ -744,8 +742,6 @@ public abstract class KeyboardFocusManager
|
||||
* current KeyboardFocusManager for the calling thread's context
|
||||
* and if the calling thread does not have "replaceKeyboardFocusManager"
|
||||
* permission
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
protected void setGlobalPermanentFocusOwner(Component permanentFocusOwner)
|
||||
throws SecurityException
|
||||
@ -847,8 +843,6 @@ public abstract class KeyboardFocusManager
|
||||
* current KeyboardFocusManager for the calling thread's context
|
||||
* and if the calling thread does not have "replaceKeyboardFocusManager"
|
||||
* permission
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
protected void setGlobalFocusedWindow(Window focusedWindow)
|
||||
throws SecurityException
|
||||
@ -952,8 +946,6 @@ public abstract class KeyboardFocusManager
|
||||
* current KeyboardFocusManager for the calling thread's context
|
||||
* and if the calling thread does not have "replaceKeyboardFocusManager"
|
||||
* permission
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
protected void setGlobalActiveWindow(Window activeWindow)
|
||||
throws SecurityException
|
||||
@ -1008,8 +1000,6 @@ public abstract class KeyboardFocusManager
|
||||
* @see Container#setFocusTraversalPolicy
|
||||
* @see Container#getFocusTraversalPolicy
|
||||
* @throws IllegalArgumentException if defaultPolicy is null
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setDefaultFocusTraversalPolicy(FocusTraversalPolicy
|
||||
defaultPolicy) {
|
||||
@ -1113,8 +1103,6 @@ public abstract class KeyboardFocusManager
|
||||
* represents a {@code KEY_TYPED} event,
|
||||
* or if any keystroke already maps
|
||||
* to another default focus traversal operation
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void
|
||||
setDefaultFocusTraversalKeys(int id,
|
||||
@ -1272,8 +1260,6 @@ public abstract class KeyboardFocusManager
|
||||
* @see #getGlobalCurrentFocusCycleRoot
|
||||
* @throws SecurityException if the calling thread does not have
|
||||
* "replaceKeyboardFocusManager" permission
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void setGlobalCurrentFocusCycleRoot(Container newFocusCycleRoot)
|
||||
throws SecurityException
|
||||
|
@ -327,9 +327,8 @@ public class TextArea extends TextComponent {
|
||||
TextAreaPeer peer = (TextAreaPeer)this.peer;
|
||||
if (peer != null) {
|
||||
peer.insert(str, pos);
|
||||
} else {
|
||||
text = text.substring(0, pos) + str + text.substring(pos);
|
||||
}
|
||||
text = text.substring(0, pos) + str + text.substring(pos);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -355,11 +354,7 @@ public class TextArea extends TextComponent {
|
||||
*/
|
||||
@Deprecated
|
||||
public synchronized void appendText(String str) {
|
||||
if (peer != null) {
|
||||
insertText(str, getText().length());
|
||||
} else {
|
||||
text = text + str;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -403,9 +398,8 @@ public class TextArea extends TextComponent {
|
||||
TextAreaPeer peer = (TextAreaPeer)this.peer;
|
||||
if (peer != null) {
|
||||
peer.replaceRange(str, start, end);
|
||||
} else {
|
||||
text = text.substring(0, start) + str + text.substring(end);
|
||||
}
|
||||
text = text.substring(0, start) + str + text.substring(end);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -672,7 +672,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x0825, 0x0828,
|
||||
0x0829, 0x082e,
|
||||
0x0859, 0x085c,
|
||||
0x08e4, 0x0903,
|
||||
0x08e3, 0x0903,
|
||||
0x093a, 0x093b,
|
||||
0x093c, 0x093d,
|
||||
0x0941, 0x0949,
|
||||
@ -721,7 +721,8 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x0acd, 0x0ad0,
|
||||
0x0ad1, 0x0ae0,
|
||||
0x0ae2, 0x0ae6,
|
||||
0x0af1, 0x0b02,
|
||||
0x0af1, 0x0af9,
|
||||
0x0afa, 0x0b02,
|
||||
0x0b04, 0x0b05,
|
||||
0x0b0d, 0x0b0f,
|
||||
0x0b11, 0x0b13,
|
||||
@ -761,7 +762,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x0c3a, 0x0c3d,
|
||||
0x0c3e, 0x0c41,
|
||||
0x0c45, 0x0c58,
|
||||
0x0c5a, 0x0c60,
|
||||
0x0c5b, 0x0c60,
|
||||
0x0c62, 0x0c66,
|
||||
0x0c70, 0x0c7f,
|
||||
0x0c80, 0x0c82,
|
||||
@ -787,7 +788,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x0d49, 0x0d4a,
|
||||
0x0d4d, 0x0d4e,
|
||||
0x0d4f, 0x0d57,
|
||||
0x0d58, 0x0d60,
|
||||
0x0d58, 0x0d5f,
|
||||
0x0d62, 0x0d66,
|
||||
0x0d76, 0x0d79,
|
||||
0x0d80, 0x0d82,
|
||||
@ -867,7 +868,8 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x135b, 0x1360,
|
||||
0x137d, 0x1380,
|
||||
0x1390, 0x13a0,
|
||||
0x13f5, 0x1401,
|
||||
0x13f6, 0x13f8,
|
||||
0x13fe, 0x1401,
|
||||
0x1680, 0x1681,
|
||||
0x169b, 0x16a0,
|
||||
0x16f9, 0x1700,
|
||||
@ -1019,7 +1021,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x33de, 0x33e0,
|
||||
0x33ff, 0x3400,
|
||||
0x4db6, 0x4e00,
|
||||
0x9fcd, 0xa000,
|
||||
0x9fd6, 0xa000,
|
||||
0xa48d, 0xa4d0,
|
||||
0xa60d, 0xa610,
|
||||
0xa62c, 0xa640,
|
||||
@ -1028,9 +1030,8 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0xa6f0, 0xa6f2,
|
||||
0xa6f8, 0xa722,
|
||||
0xa788, 0xa789,
|
||||
0xa78f, 0xa790,
|
||||
0xa7ae, 0xa7b0,
|
||||
0xa7b2, 0xa7f7,
|
||||
0xa7b8, 0xa7f7,
|
||||
0xa802, 0xa803,
|
||||
0xa806, 0xa807,
|
||||
0xa80b, 0xa80c,
|
||||
@ -1040,7 +1041,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0xa874, 0xa880,
|
||||
0xa8c4, 0xa8ce,
|
||||
0xa8da, 0xa8f2,
|
||||
0xa8fc, 0xa900,
|
||||
0xa8fe, 0xa900,
|
||||
0xa926, 0xa92e,
|
||||
0xa947, 0xa952,
|
||||
0xa954, 0xa95f,
|
||||
@ -1073,8 +1074,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0xab17, 0xab20,
|
||||
0xab27, 0xab28,
|
||||
0xab2f, 0xab30,
|
||||
0xab60, 0xab64,
|
||||
0xab66, 0xabc0,
|
||||
0xab66, 0xab70,
|
||||
0xabe5, 0xabe6,
|
||||
0xabe8, 0xabe9,
|
||||
0xabed, 0xabf0,
|
||||
@ -1152,15 +1152,20 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x11173, 0x11174,
|
||||
0x11177, 0x11182,
|
||||
0x111b6, 0x111bf,
|
||||
0x111c9, 0x111cd,
|
||||
0x111ca, 0x111cd,
|
||||
0x111ce, 0x111d0,
|
||||
0x111db, 0x111e1,
|
||||
0x111e0, 0x111e1,
|
||||
0x111f5, 0x11200,
|
||||
0x11212, 0x11213,
|
||||
0x1122f, 0x11232,
|
||||
0x11234, 0x11235,
|
||||
0x11236, 0x11238,
|
||||
0x1123e, 0x112b0,
|
||||
0x1123e, 0x11280,
|
||||
0x11287, 0x11288,
|
||||
0x11289, 0x1128a,
|
||||
0x1128e, 0x1128f,
|
||||
0x1129e, 0x1129f,
|
||||
0x112aa, 0x112b0,
|
||||
0x112df, 0x112e0,
|
||||
0x112e3, 0x112f0,
|
||||
0x112fa, 0x11302,
|
||||
@ -1174,7 +1179,8 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x11340, 0x11341,
|
||||
0x11345, 0x11347,
|
||||
0x11349, 0x1134b,
|
||||
0x1134e, 0x11357,
|
||||
0x1134e, 0x11350,
|
||||
0x11351, 0x11357,
|
||||
0x11358, 0x1135d,
|
||||
0x11364, 0x11480,
|
||||
0x114b3, 0x114b9,
|
||||
@ -1186,7 +1192,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x115b2, 0x115b8,
|
||||
0x115bc, 0x115be,
|
||||
0x115bf, 0x115c1,
|
||||
0x115ca, 0x11600,
|
||||
0x115dc, 0x11600,
|
||||
0x11633, 0x1163b,
|
||||
0x1163d, 0x1163e,
|
||||
0x1163f, 0x11641,
|
||||
@ -1196,14 +1202,20 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x116ad, 0x116ae,
|
||||
0x116b0, 0x116b6,
|
||||
0x116b7, 0x116c0,
|
||||
0x116ca, 0x118a0,
|
||||
0x116ca, 0x11700,
|
||||
0x1171a, 0x11720,
|
||||
0x11722, 0x11726,
|
||||
0x11727, 0x11730,
|
||||
0x11740, 0x118a0,
|
||||
0x118f3, 0x118ff,
|
||||
0x11900, 0x11ac0,
|
||||
0x11af9, 0x12000,
|
||||
0x12399, 0x12400,
|
||||
0x1239a, 0x12400,
|
||||
0x1246f, 0x12470,
|
||||
0x12475, 0x13000,
|
||||
0x1342f, 0x16800,
|
||||
0x12475, 0x12480,
|
||||
0x12544, 0x13000,
|
||||
0x1342f, 0x14400,
|
||||
0x14647, 0x16800,
|
||||
0x16a39, 0x16a40,
|
||||
0x16a5f, 0x16a60,
|
||||
0x16a6a, 0x16a6e,
|
||||
@ -1232,7 +1244,7 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x1d173, 0x1d183,
|
||||
0x1d185, 0x1d18c,
|
||||
0x1d1aa, 0x1d1ae,
|
||||
0x1d1de, 0x1d360,
|
||||
0x1d1e9, 0x1d360,
|
||||
0x1d372, 0x1d400,
|
||||
0x1d455, 0x1d456,
|
||||
0x1d49d, 0x1d49e,
|
||||
@ -1258,7 +1270,12 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x1d74f, 0x1d750,
|
||||
0x1d789, 0x1d78a,
|
||||
0x1d7c3, 0x1d7c4,
|
||||
0x1d7cc, 0x1e800,
|
||||
0x1d7cc, 0x1d800,
|
||||
0x1da00, 0x1da37,
|
||||
0x1da3b, 0x1da6d,
|
||||
0x1da75, 0x1da76,
|
||||
0x1da84, 0x1da85,
|
||||
0x1da8c, 0x1e800,
|
||||
0x1e8d0, 0x1e8d7,
|
||||
0x1eef0, 0x1eef2,
|
||||
0x1f000, 0x1f110,
|
||||
@ -1271,7 +1288,8 @@ public final class NumericShaper implements java.io.Serializable {
|
||||
0x1f252, 0x20000,
|
||||
0x2a6d7, 0x2a700,
|
||||
0x2b735, 0x2b740,
|
||||
0x2b81e, 0x2f800,
|
||||
0x2b81e, 0x2b820,
|
||||
0x2cea2, 0x2f800,
|
||||
0x2fa1e, 0xf0000,
|
||||
0xffffe, 0x100000,
|
||||
0x10fffe, 0x10ffff // sentinel
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -30,6 +30,7 @@ import java.lang.reflect.Constructor;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.sun.beans.introspect.PropertyInfo;
|
||||
import sun.reflect.misc.ReflectUtil;
|
||||
|
||||
/**
|
||||
* A PropertyDescriptor describes one property that a Java Bean
|
||||
@ -463,8 +464,9 @@ public class PropertyDescriptor extends FeatureDescriptor {
|
||||
public PropertyEditor createPropertyEditor(Object bean) {
|
||||
Object editor = null;
|
||||
|
||||
Class<?> cls = getPropertyEditorClass();
|
||||
if (cls != null) {
|
||||
final Class<?> cls = getPropertyEditorClass();
|
||||
if (cls != null && PropertyEditor.class.isAssignableFrom(cls)
|
||||
&& ReflectUtil.isPackageAccessible(cls)) {
|
||||
Constructor<?> ctor = null;
|
||||
if (bean != null) {
|
||||
try {
|
||||
|
@ -28,6 +28,8 @@ package java.beans;
|
||||
import java.awt.Image;
|
||||
import java.awt.Toolkit;
|
||||
import java.io.InputStream;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
/**
|
||||
* This is a support class to make it easier for people to provide
|
||||
@ -41,13 +43,13 @@ import java.io.InputStream;
|
||||
*
|
||||
* @since 1.1
|
||||
*/
|
||||
|
||||
public class SimpleBeanInfo implements BeanInfo {
|
||||
|
||||
/**
|
||||
* Deny knowledge about the class and customizer of the bean.
|
||||
* You can override this if you wish to provide explicit info.
|
||||
*/
|
||||
@Override
|
||||
public BeanDescriptor getBeanDescriptor() {
|
||||
return null;
|
||||
}
|
||||
@ -56,6 +58,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Deny knowledge of properties. You can override this
|
||||
* if you wish to provide explicit property info.
|
||||
*/
|
||||
@Override
|
||||
public PropertyDescriptor[] getPropertyDescriptors() {
|
||||
return null;
|
||||
}
|
||||
@ -64,6 +67,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Deny knowledge of a default property. You can override this
|
||||
* if you wish to define a default property for the bean.
|
||||
*/
|
||||
@Override
|
||||
public int getDefaultPropertyIndex() {
|
||||
return -1;
|
||||
}
|
||||
@ -72,6 +76,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Deny knowledge of event sets. You can override this
|
||||
* if you wish to provide explicit event set info.
|
||||
*/
|
||||
@Override
|
||||
public EventSetDescriptor[] getEventSetDescriptors() {
|
||||
return null;
|
||||
}
|
||||
@ -80,6 +85,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Deny knowledge of a default event. You can override this
|
||||
* if you wish to define a default event for the bean.
|
||||
*/
|
||||
@Override
|
||||
public int getDefaultEventIndex() {
|
||||
return -1;
|
||||
}
|
||||
@ -88,6 +94,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Deny knowledge of methods. You can override this
|
||||
* if you wish to provide explicit method info.
|
||||
*/
|
||||
@Override
|
||||
public MethodDescriptor[] getMethodDescriptors() {
|
||||
return null;
|
||||
}
|
||||
@ -97,6 +104,7 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* may override this if you want to (for example) return a
|
||||
* BeanInfo for a base class.
|
||||
*/
|
||||
@Override
|
||||
public BeanInfo[] getAdditionalBeanInfo() {
|
||||
return null;
|
||||
}
|
||||
@ -105,10 +113,63 @@ public class SimpleBeanInfo implements BeanInfo {
|
||||
* Claim there are no icons available. You can override
|
||||
* this if you want to provide icons for your bean.
|
||||
*/
|
||||
public Image getIcon(int iconKind) {
|
||||
@Override
|
||||
public Image getIcon(final int iconKind) {
|
||||
final BeanDescriptor descriptor = getBeanDescriptor();
|
||||
if (descriptor != null) {
|
||||
final Class<?> type = descriptor.getBeanClass();
|
||||
if (type != null && type.getClassLoader() == null
|
||||
&& type.getAnnotation(JavaBean.class) != null) {
|
||||
final String name = type.getName();
|
||||
final int index = name.lastIndexOf('.');
|
||||
if (name.substring(0, index).equals("javax.swing")) {
|
||||
final String className = type.getSimpleName();
|
||||
switch (iconKind) {
|
||||
case ICON_COLOR_32x32:
|
||||
return loadImage(className, "Color32.gif");
|
||||
case ICON_COLOR_16x16:
|
||||
return loadImage(className, "Color16.gif");
|
||||
case ICON_MONO_32x32:
|
||||
return loadImage(className, "Mono32.gif");
|
||||
case ICON_MONO_16x16:
|
||||
return loadImage(className, "Mono16.gif");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a utility method to help in loading standard icon images.
|
||||
*
|
||||
* @param resourceName A pathname relative to the directory holding the
|
||||
* class file of the current class
|
||||
* @return an image object. May be null if the load failed.
|
||||
* @see java.beans.SimpleBeanInfo#loadImage(String)
|
||||
*/
|
||||
private Image loadStandardImage(final String resourceName) {
|
||||
return AccessController.doPrivileged(
|
||||
(PrivilegedAction<Image>) () -> loadImage(resourceName));
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a utility method to help in loading standard icon images.
|
||||
*
|
||||
* @param resourceName A pathname relative to the directory holding the
|
||||
* class file of the current class
|
||||
* @param suffix A {@code String} containing a file suffix (<i>e.g.</i>,
|
||||
* "Color32.gif" or "Mono32.gif")
|
||||
* @return an image object. May be null if the load failed.
|
||||
* @see java.beans.SimpleBeanInfo#loadImage(String)
|
||||
*/
|
||||
private Image loadImage(final String resourceName, final String suffix) {
|
||||
final String prefix = "/javax/swing/beaninfo/images/";
|
||||
final Image image = loadStandardImage(prefix + resourceName + suffix);
|
||||
return image == null ? loadStandardImage(prefix + "JComponent" + suffix)
|
||||
: image;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a utility method to help in loading icon images.
|
||||
* It takes the name of a resource file associated with the
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -29,11 +29,15 @@ import sun.awt.AWTAccessor;
|
||||
import sun.awt.AppContext;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeSupport;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.awt.IllegalComponentStateException;
|
||||
|
||||
import javax.swing.SwingContainer;
|
||||
|
||||
/**
|
||||
* AccessibleContext represents the minimum information all accessible objects
|
||||
* return. This information includes the accessible name, description, role,
|
||||
@ -69,17 +73,13 @@ import java.awt.IllegalComponentStateException;
|
||||
* minimum and maximum values. Any object that supports a numerical value
|
||||
* should support this interface.</ul>
|
||||
*
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: Minimal information that all accessible objects return
|
||||
*
|
||||
|
||||
* @author Peter Korn
|
||||
* @author Hans Muller
|
||||
* @author Willie Walker
|
||||
* @author Lynn Monsanto
|
||||
*/
|
||||
@JavaBean(description = "Minimal information that all accessible objects return")
|
||||
@SwingContainer(false)
|
||||
public abstract class AccessibleContext {
|
||||
|
||||
/**
|
||||
@ -447,11 +447,9 @@ public abstract class AccessibleContext {
|
||||
*
|
||||
* @see #getAccessibleName
|
||||
* @see #addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: Sets the accessible name for the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the accessible name for the component.")
|
||||
public void setAccessibleName(String s) {
|
||||
String oldName = accessibleName;
|
||||
accessibleName = s;
|
||||
@ -483,11 +481,9 @@ public abstract class AccessibleContext {
|
||||
*
|
||||
* @see #setAccessibleName
|
||||
* @see #addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: Sets the accessible description for the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the accessible description for the component.")
|
||||
public void setAccessibleDescription(String s) {
|
||||
String oldDescription = accessibleDescription;
|
||||
accessibleDescription = s;
|
||||
|
@ -26,23 +26,19 @@ package javax.swing;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.image.*;
|
||||
import java.text.*;
|
||||
import java.awt.geom.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.Transient;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Vector;
|
||||
import java.io.Serializable;
|
||||
import javax.swing.event.*;
|
||||
import javax.swing.border.*;
|
||||
import javax.swing.plaf.*;
|
||||
import javax.accessibility.*;
|
||||
import javax.swing.text.*;
|
||||
import javax.swing.text.html.*;
|
||||
import javax.swing.plaf.basic.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Defines common behaviors for buttons and menu items.
|
||||
@ -73,6 +69,7 @@ import java.util.*;
|
||||
* @author Jeff Dinkins
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UI")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants {
|
||||
|
||||
@ -251,12 +248,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @see <a href="Action.html#buttonActions">Swing Components Supporting
|
||||
* <code>Action</code></a>
|
||||
* @since 1.6
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* expert: true
|
||||
* description: Whether the text of the button should come from
|
||||
* the <code>Action</code>.
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "Whether the text of the button should come from the <code>Action</code>.")
|
||||
public void setHideActionText(boolean hideActionText) {
|
||||
if (hideActionText != this.hideActionText) {
|
||||
this.hideActionText = hideActionText;
|
||||
@ -296,12 +290,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the button's text.
|
||||
* @param text the string used to set the text
|
||||
* @see #getText
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The button's text.
|
||||
*/
|
||||
@BeanProperty(preferred = true, visualUpdate = true, description
|
||||
= "The button's text.")
|
||||
public void setText(String text) {
|
||||
String oldValue = this.text;
|
||||
this.text = text;
|
||||
@ -390,12 +381,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* effectively be ignored).
|
||||
*
|
||||
* @param m the space between the border and the label
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The space between the button's border and the label.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The space between the button's border and the label.")
|
||||
public void setMargin(Insets m) {
|
||||
// Cache the old margin if it comes from the UI
|
||||
if(m instanceof UIResource) {
|
||||
@ -448,11 +436,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param defaultIcon the icon used as the default image
|
||||
* @see #getIcon
|
||||
* @see #setPressedIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The button's default icon
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The button's default icon")
|
||||
public void setIcon(Icon defaultIcon) {
|
||||
Icon oldValue = this.defaultIcon;
|
||||
this.defaultIcon = defaultIcon;
|
||||
@ -495,11 +481,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the pressed icon for the button.
|
||||
* @param pressedIcon the icon used as the "pressed" image
|
||||
* @see #getPressedIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The pressed icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The pressed icon for the button.")
|
||||
public void setPressedIcon(Icon pressedIcon) {
|
||||
Icon oldValue = this.pressedIcon;
|
||||
this.pressedIcon = pressedIcon;
|
||||
@ -529,11 +513,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the selected icon for the button.
|
||||
* @param selectedIcon the icon used as the "selected" image
|
||||
* @see #getSelectedIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The selected icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The selected icon for the button.")
|
||||
public void setSelectedIcon(Icon selectedIcon) {
|
||||
Icon oldValue = this.selectedIcon;
|
||||
this.selectedIcon = selectedIcon;
|
||||
@ -575,11 +557,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the rollover icon for the button.
|
||||
* @param rolloverIcon the icon used as the "rollover" image
|
||||
* @see #getRolloverIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The rollover icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The rollover icon for the button.")
|
||||
public void setRolloverIcon(Icon rolloverIcon) {
|
||||
Icon oldValue = this.rolloverIcon;
|
||||
this.rolloverIcon = rolloverIcon;
|
||||
@ -612,11 +592,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param rolloverSelectedIcon the icon used as the
|
||||
* "selected rollover" image
|
||||
* @see #getRolloverSelectedIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The rollover selected icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The rollover selected icon for the button.")
|
||||
public void setRolloverSelectedIcon(Icon rolloverSelectedIcon) {
|
||||
Icon oldValue = this.rolloverSelectedIcon;
|
||||
this.rolloverSelectedIcon = rolloverSelectedIcon;
|
||||
@ -664,11 +642,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the disabled icon for the button.
|
||||
* @param disabledIcon the icon used as the disabled image
|
||||
* @see #getDisabledIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The disabled icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The disabled icon for the button.")
|
||||
public void setDisabledIcon(Icon disabledIcon) {
|
||||
Icon oldValue = this.disabledIcon;
|
||||
this.disabledIcon = disabledIcon;
|
||||
@ -717,11 +693,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param disabledSelectedIcon the icon used as the disabled
|
||||
* selection image
|
||||
* @see #getDisabledSelectedIcon
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The disabled selection icon for the button.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The disabled selection icon for the button.")
|
||||
public void setDisabledSelectedIcon(Icon disabledSelectedIcon) {
|
||||
Icon oldValue = this.disabledSelectedIcon;
|
||||
this.disabledSelectedIcon = disabledSelectedIcon;
|
||||
@ -768,14 +742,12 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* </ul>
|
||||
* @throws IllegalArgumentException if the alignment is not one of the legal
|
||||
* values listed above
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* enum: TOP SwingConstants.TOP
|
||||
* CENTER SwingConstants.CENTER
|
||||
* BOTTOM SwingConstants.BOTTOM
|
||||
* attribute: visualUpdate true
|
||||
* description: The vertical alignment of the icon and text.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, enumerationValues = {
|
||||
"SwingConstants.TOP",
|
||||
"SwingConstants.CENTER",
|
||||
"SwingConstants.BOTTOM"}, description
|
||||
= "The vertical alignment of the icon and text.")
|
||||
public void setVerticalAlignment(int alignment) {
|
||||
if (alignment == verticalAlignment) return;
|
||||
int oldValue = verticalAlignment;
|
||||
@ -817,16 +789,14 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* </ul>
|
||||
* @throws IllegalArgumentException if the alignment is not one of the
|
||||
* valid values
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* enum: LEFT SwingConstants.LEFT
|
||||
* CENTER SwingConstants.CENTER
|
||||
* RIGHT SwingConstants.RIGHT
|
||||
* LEADING SwingConstants.LEADING
|
||||
* TRAILING SwingConstants.TRAILING
|
||||
* attribute: visualUpdate true
|
||||
* description: The horizontal alignment of the icon and text.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, enumerationValues = {
|
||||
"SwingConstants.LEFT",
|
||||
"SwingConstants.CENTER",
|
||||
"SwingConstants.RIGHT",
|
||||
"SwingConstants.LEADING",
|
||||
"SwingConstants.TRAILING"}, description
|
||||
= "The horizontal alignment of the icon and text.")
|
||||
public void setHorizontalAlignment(int alignment) {
|
||||
if (alignment == horizontalAlignment) return;
|
||||
int oldValue = horizontalAlignment;
|
||||
@ -860,14 +830,12 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* <li>{@code SwingConstants.TOP}
|
||||
* <li>{@code SwingConstants.BOTTOM}
|
||||
* </ul>
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* enum: TOP SwingConstants.TOP
|
||||
* CENTER SwingConstants.CENTER
|
||||
* BOTTOM SwingConstants.BOTTOM
|
||||
* attribute: visualUpdate true
|
||||
* description: The vertical position of the text relative to the icon.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, enumerationValues = {
|
||||
"SwingConstants.TOP",
|
||||
"SwingConstants.CENTER",
|
||||
"SwingConstants.BOTTOM"}, description
|
||||
= "The vertical position of the text relative to the icon.")
|
||||
public void setVerticalTextPosition(int textPosition) {
|
||||
if (textPosition == verticalTextPosition) return;
|
||||
int oldValue = verticalTextPosition;
|
||||
@ -905,16 +873,14 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* </ul>
|
||||
* @exception IllegalArgumentException if <code>textPosition</code>
|
||||
* is not one of the legal values listed above
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* enum: LEFT SwingConstants.LEFT
|
||||
* CENTER SwingConstants.CENTER
|
||||
* RIGHT SwingConstants.RIGHT
|
||||
* LEADING SwingConstants.LEADING
|
||||
* TRAILING SwingConstants.TRAILING
|
||||
* attribute: visualUpdate true
|
||||
* description: The horizontal position of the text relative to the icon.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, enumerationValues = {
|
||||
"SwingConstants.LEFT",
|
||||
"SwingConstants.CENTER",
|
||||
"SwingConstants.RIGHT",
|
||||
"SwingConstants.LEADING",
|
||||
"SwingConstants.TRAILING"}, description
|
||||
= "The horizontal position of the text relative to the icon.")
|
||||
public void setHorizontalTextPosition(int textPosition) {
|
||||
if (textPosition == horizontalTextPosition) return;
|
||||
int oldValue = horizontalTextPosition;
|
||||
@ -951,12 +917,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param iconTextGap the space between icon and text if these properties are set.
|
||||
* @since 1.4
|
||||
* @see #getIconTextGap
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: If both the icon and text properties are set, this
|
||||
* property defines the space between them.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "If both the icon and text properties are set, this property defines the space between them.")
|
||||
public void setIconTextGap(int iconTextGap) {
|
||||
int oldValue = this.iconTextGap;
|
||||
this.iconTextGap = iconTextGap;
|
||||
@ -1095,11 +1058,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @see #configurePropertiesFromAction
|
||||
* @see #createActionPropertyChangeListener
|
||||
* @see #actionPropertyChanged
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: the Action instance connected with this ActionEvent source
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "the Action instance connected with this ActionEvent source")
|
||||
public void setAction(Action a) {
|
||||
Action oldValue = getAction();
|
||||
if (action==null || !action.equals(a)) {
|
||||
@ -1393,11 +1354,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param b if true and border property is not <code>null</code>,
|
||||
* the border is painted
|
||||
* @see #isBorderPainted
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether the border should be painted.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether the border should be painted.")
|
||||
public void setBorderPainted(boolean b) {
|
||||
boolean oldValue = paintBorder;
|
||||
paintBorder = b;
|
||||
@ -1443,11 +1402,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
*
|
||||
* @param b if <code>true</code>, the focus state should be painted
|
||||
* @see #isFocusPainted
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether focus should be painted
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether focus should be painted")
|
||||
public void setFocusPainted(boolean b) {
|
||||
boolean oldValue = paintFocus;
|
||||
paintFocus = b;
|
||||
@ -1486,12 +1443,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* the content area is not filled
|
||||
* @see #isContentAreaFilled
|
||||
* @see #setOpaque
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether the button should paint the content area
|
||||
* or leave it transparent.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether the button should paint the content area or leave it transparent.")
|
||||
public void setContentAreaFilled(boolean b) {
|
||||
boolean oldValue = contentAreaFilled;
|
||||
contentAreaFilled = b;
|
||||
@ -1522,11 +1476,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
*
|
||||
* @param b if <code>true</code>, rollover effects should be painted
|
||||
* @see #isRolloverEnabled
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether rollover effects should be enabled.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether rollover effects should be enabled.")
|
||||
public void setRolloverEnabled(boolean b) {
|
||||
boolean oldValue = rolloverEnabled;
|
||||
rolloverEnabled = b;
|
||||
@ -1569,12 +1521,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @param mnemonic the key code which represents the mnemonic
|
||||
* @see java.awt.event.KeyEvent
|
||||
* @see #setDisplayedMnemonicIndex
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: the keyboard character mnemonic
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "the keyboard character mnemonic")
|
||||
public void setMnemonic(int mnemonic) {
|
||||
int oldValue = getMnemonic();
|
||||
model.setMnemonic(mnemonic);
|
||||
@ -1589,11 +1538,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
*
|
||||
* @param mnemonic a char specifying the mnemonic value
|
||||
* @see #setMnemonic(int)
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: the keyboard character mnemonic
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "the keyboard character mnemonic")
|
||||
public void setMnemonic(char mnemonic) {
|
||||
int vk = (int) mnemonic;
|
||||
if(vk >= 'a' && vk <='z')
|
||||
@ -1622,13 +1569,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @exception IllegalArgumentException will be thrown if <code>index</code>
|
||||
* is >= length of the text, or < -1
|
||||
* @see #getDisplayedMnemonicIndex
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: the index into the String to draw the keyboard character
|
||||
* mnemonic at
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "the index into the String to draw the keyboard character mnemonic at")
|
||||
public void setDisplayedMnemonicIndex(int index)
|
||||
throws IllegalArgumentException {
|
||||
int oldValue = mnemonicIndex;
|
||||
@ -1743,10 +1686,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the model that this button represents.
|
||||
* @param newModel the new <code>ButtonModel</code>
|
||||
* @see #getModel
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Model that the Button uses.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Model that the Button uses.")
|
||||
public void setModel(ButtonModel newModel) {
|
||||
|
||||
ButtonModel oldModel = getModel();
|
||||
@ -1804,12 +1746,9 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* Sets the L&F object that renders this component.
|
||||
* @param ui the <code>ButtonUI</code> L&F object
|
||||
* @see #getUI
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The UI object that implements the LookAndFeel.
|
||||
*/
|
||||
@BeanProperty(hidden = true, visualUpdate = true, description
|
||||
= "The UI object that implements the LookAndFeel.")
|
||||
public void setUI(ButtonUI ui) {
|
||||
super.setUI(ui);
|
||||
// disabled icons are generated by the LF so they should be unset here
|
||||
@ -1897,6 +1836,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ChangeListener[] getChangeListeners() {
|
||||
return listenerList.getListeners(ChangeListener.class);
|
||||
}
|
||||
@ -1954,6 +1894,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ActionListener[] getActionListeners() {
|
||||
return listenerList.getListeners(ActionListener.class);
|
||||
}
|
||||
@ -2122,11 +2063,10 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
*
|
||||
* @param label a <code>String</code> containing the text
|
||||
* @deprecated - Replaced by <code>setText(text)</code>
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Replace by setText(text)
|
||||
*/
|
||||
@Deprecated
|
||||
@BeanProperty(description
|
||||
= "Replace by setText(text)")
|
||||
public void setLabel(String label) {
|
||||
setText(label);
|
||||
}
|
||||
@ -2155,6 +2095,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ItemListener[] getItemListeners() {
|
||||
return listenerList.getListeners(ItemListener.class);
|
||||
}
|
||||
@ -2166,7 +2107,8 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
|
||||
* @return an array containing 1 Object: the text of the button,
|
||||
* if the item is selected; otherwise <code>null</code>
|
||||
*/
|
||||
public Object[] getSelectedObjects() {
|
||||
@BeanProperty(bound = false)
|
||||
public Object[] getSelectedObjects() {
|
||||
if (isSelected() == false) {
|
||||
return null;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,15 +22,12 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
|
||||
package javax.swing;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.ConstructorProperties;
|
||||
import java.util.Locale;
|
||||
import java.io.Serializable;
|
||||
import javax.accessibility.*;
|
||||
|
||||
/**
|
||||
@ -77,6 +74,7 @@ import javax.accessibility.*;
|
||||
* @author Timothy Prinzing
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "accessibleContext")
|
||||
@SuppressWarnings("serial")
|
||||
public class Box extends JComponent implements Accessible {
|
||||
|
||||
@ -413,6 +411,7 @@ public class Box extends JComponent implements Accessible {
|
||||
* @return an AccessibleBox that serves as the
|
||||
* AccessibleContext of this Box
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleBox();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,6 +27,7 @@ package javax.swing;
|
||||
import java.awt.*;
|
||||
import java.awt.image.*;
|
||||
import java.beans.ConstructorProperties;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.Transient;
|
||||
import java.net.URL;
|
||||
|
||||
@ -567,11 +568,10 @@ public class ImageIcon implements Icon, Serializable, Accessible {
|
||||
*
|
||||
* @return an AccessibleImageIcon that serves as the
|
||||
* AccessibleContext of this ImageIcon
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: The AccessibleContext associated with this ImageIcon.
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "The AccessibleContext associated with this ImageIcon.")
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleImageIcon();
|
||||
|
@ -33,6 +33,8 @@ import java.awt.Container;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.HeadlessException;
|
||||
import java.awt.LayoutManager;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.JavaBean;
|
||||
|
||||
import javax.accessibility.Accessible;
|
||||
import javax.accessibility.AccessibleContext;
|
||||
@ -87,14 +89,12 @@ import javax.accessibility.AccessibleContext;
|
||||
* Please see {@link java.beans.XMLEncoder}.
|
||||
*
|
||||
* @see javax.swing.RootPaneContainer
|
||||
* @beaninfo
|
||||
* attribute: isContainer true
|
||||
* attribute: containerDelegate getContentPane
|
||||
* description: Swing's Applet subclass.
|
||||
*
|
||||
* @author Arnaud Weber
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "JMenuBar", description = "Swing's Applet subclass.")
|
||||
@SwingContainer(delegate = "getContentPane")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JApplet extends Applet implements Accessible,
|
||||
RootPaneContainer,
|
||||
@ -203,12 +203,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
* @see #getTransferHandler
|
||||
* @see java.awt.Component#setDropTarget
|
||||
* @since 1.6
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: Mechanism for transfer of data into the component
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Mechanism for transfer of data into the component")
|
||||
public void setTransferHandler(TransferHandler newHandler) {
|
||||
TransferHandler oldHandler = transferHandler;
|
||||
transferHandler = newHandler;
|
||||
@ -242,11 +239,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
* @param menuBar the menubar being placed in the applet
|
||||
*
|
||||
* @see #getJMenuBar
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The menubar for accessing pulldown menus from this applet.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The menubar for accessing pulldown menus from this applet.")
|
||||
public void setJMenuBar(final JMenuBar menuBar) {
|
||||
getRootPane().setJMenuBar(menuBar);
|
||||
}
|
||||
@ -291,10 +286,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
* @see #setLayout
|
||||
* @see #isRootPaneCheckingEnabled
|
||||
* @see javax.swing.RootPaneContainer
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: Whether the add and setLayout methods are forwarded
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Whether the add and setLayout methods are forwarded")
|
||||
protected void setRootPaneCheckingEnabled(boolean enabled) {
|
||||
rootPaneCheckingEnabled = enabled;
|
||||
}
|
||||
@ -377,6 +371,8 @@ public class JApplet extends Applet implements Accessible,
|
||||
* @see #setRootPane
|
||||
* @see RootPaneContainer#getRootPane
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "the RootPane object for this applet.")
|
||||
public JRootPane getRootPane() {
|
||||
return rootPane;
|
||||
}
|
||||
@ -387,10 +383,6 @@ public class JApplet extends Applet implements Accessible,
|
||||
* @param root the rootPane object for this applet
|
||||
*
|
||||
* @see #getRootPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: the RootPane object for this applet.
|
||||
*/
|
||||
protected void setRootPane(JRootPane root) {
|
||||
if(rootPane != null) {
|
||||
@ -428,12 +420,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
* exception) if the content pane parameter is null
|
||||
* @see #getContentPane
|
||||
* @see RootPaneContainer#setContentPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The client area of the applet where child
|
||||
* components are normally inserted.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The client area of the applet where child components are normally inserted.")
|
||||
public void setContentPane(Container contentPane) {
|
||||
getRootPane().setContentPane(contentPane);
|
||||
}
|
||||
@ -456,11 +445,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
*
|
||||
* @see #getLayeredPane
|
||||
* @see RootPaneContainer#setLayeredPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The pane which holds the various applet layers.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The pane which holds the various applet layers.")
|
||||
public void setLayeredPane(JLayeredPane layeredPane) {
|
||||
getRootPane().setLayeredPane(layeredPane);
|
||||
}
|
||||
@ -482,11 +469,9 @@ public class JApplet extends Applet implements Accessible,
|
||||
*
|
||||
* @see #getGlassPane
|
||||
* @see RootPaneContainer#setGlassPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: A transparent pane used for menu rendering.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "A transparent pane used for menu rendering.")
|
||||
public void setGlassPane(Component glassPane) {
|
||||
getRootPane().setGlassPane(glassPane);
|
||||
}
|
||||
@ -496,6 +481,7 @@ public class JApplet extends Applet implements Accessible,
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Graphics getGraphics() {
|
||||
JComponent.getGraphicsInvoked(this);
|
||||
return super.getGraphics();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,21 +24,16 @@
|
||||
*/
|
||||
package javax.swing;
|
||||
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.ConstructorProperties;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.image.*;
|
||||
|
||||
import javax.swing.plaf.*;
|
||||
import javax.swing.event.*;
|
||||
import javax.accessibility.*;
|
||||
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
/**
|
||||
* An implementation of a "push" button.
|
||||
* <p>
|
||||
@ -69,13 +64,11 @@ import java.io.IOException;
|
||||
* has been added to the <code>java.beans</code> package.
|
||||
* Please see {@link java.beans.XMLEncoder}.
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: An implementation of a \"push\" button.
|
||||
*
|
||||
* @author Jeff Dinkins
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UIClassID", description = "An implementation of a \"push\" button.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial")
|
||||
public class JButton extends AbstractButton implements Accessible {
|
||||
|
||||
@ -156,10 +149,9 @@ public class JButton extends AbstractButton implements Accessible {
|
||||
* @return the string "ButtonUI"
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: A string that specifies the name of the L&F class.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "A string that specifies the name of the L&F class.")
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -176,9 +168,9 @@ public class JButton extends AbstractButton implements Accessible {
|
||||
* @return the value of the <code>defaultButton</code> property
|
||||
* @see JRootPane#setDefaultButton
|
||||
* @see #isDefaultCapable
|
||||
* @beaninfo
|
||||
* description: Whether or not this button is the default button
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "Whether or not this button is the default button")
|
||||
public boolean isDefaultButton() {
|
||||
JRootPane root = SwingUtilities.getRootPane(this);
|
||||
if (root != null) {
|
||||
@ -211,11 +203,9 @@ public class JButton extends AbstractButton implements Accessible {
|
||||
* capable of being the default button on the
|
||||
* <code>RootPane</code>; otherwise <code>false</code>
|
||||
* @see #isDefaultCapable
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether or not this button can be the default button
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether or not this button can be the default button")
|
||||
public void setDefaultCapable(boolean defaultCapable) {
|
||||
boolean oldDefaultCapable = this.defaultCapable;
|
||||
this.defaultCapable = defaultCapable;
|
||||
@ -283,10 +273,9 @@ public class JButton extends AbstractButton implements Accessible {
|
||||
*
|
||||
* @return an <code>AccessibleJButton</code> that serves as the
|
||||
* <code>AccessibleContext</code> of this <code>JButton</code>
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: The AccessibleContext associated with this Button.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "The AccessibleContext associated with this Button.")
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJButton();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,9 +24,8 @@
|
||||
*/
|
||||
package javax.swing;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.beans.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
|
||||
import javax.swing.plaf.*;
|
||||
import javax.accessibility.*;
|
||||
@ -35,7 +34,6 @@ import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
/**
|
||||
* An implementation of a check box -- an item that can be selected or
|
||||
* deselected, and which displays its state to the user.
|
||||
@ -69,13 +67,11 @@ import java.io.IOException;
|
||||
*
|
||||
* @see JRadioButton
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A component which can be selected or deselected.
|
||||
*
|
||||
* @author Jeff Dinkins
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(description = "A component which can be selected or deselected.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JCheckBox extends JToggleButton implements Accessible {
|
||||
|
||||
@ -195,12 +191,10 @@ public class JCheckBox extends JToggleButton implements Accessible {
|
||||
* @param b <code>true</code> requests that the border be painted flat;
|
||||
* <code>false</code> requests normal borders
|
||||
* @see #isBorderPaintedFlat
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: Whether the border is painted flat.
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "Whether the border is painted flat.")
|
||||
public void setBorderPaintedFlat(boolean b) {
|
||||
boolean oldValue = flat;
|
||||
flat = b;
|
||||
@ -239,10 +233,9 @@ public class JCheckBox extends JToggleButton implements Accessible {
|
||||
* @return the string "CheckBoxUI"
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: A string that specifies the name of the L&F class
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "A string that specifies the name of the L&F class")
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -311,10 +304,9 @@ public class JCheckBox extends JToggleButton implements Accessible {
|
||||
*
|
||||
* @return an AccessibleJCheckBox that serves as the
|
||||
* AccessibleContext of this JCheckBox
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: The AccessibleContext associated with this CheckBox.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "The AccessibleContext associated with this CheckBox.")
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJCheckBox();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,20 +24,14 @@
|
||||
*/
|
||||
package javax.swing;
|
||||
|
||||
import java.util.EventListener;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.image.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.swing.plaf.*;
|
||||
import javax.accessibility.*;
|
||||
|
||||
|
||||
/**
|
||||
* A menu item that can be selected or deselected. If selected, the menu
|
||||
* item typically appears with a checkmark next to it. If unselected or
|
||||
@ -81,14 +75,12 @@ import javax.accessibility.*;
|
||||
* has been added to the <code>java.beans</code> package.
|
||||
* Please see {@link java.beans.XMLEncoder}.
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A menu item which can be selected or deselected.
|
||||
*
|
||||
* @author Georges Saab
|
||||
* @author David Karlton
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(description = "A menu item which can be selected or deselected.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
|
||||
Accessible
|
||||
@ -178,6 +170,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -200,10 +193,9 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
|
||||
*
|
||||
* @param b a boolean value indicating the item's
|
||||
* selected-state, where true=selected
|
||||
* @beaninfo
|
||||
* description: The selection state of the check box menu item
|
||||
* hidden: true
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The selection state of the check box menu item")
|
||||
public synchronized void setState(boolean b) {
|
||||
setSelected(b);
|
||||
}
|
||||
@ -216,6 +208,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
|
||||
* @return an array containing one Object -- the text of the menu item
|
||||
* -- if the item is selected; otherwise null
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Object[] getSelectedObjects() {
|
||||
if (isSelected() == false)
|
||||
return null;
|
||||
@ -274,6 +267,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
|
||||
* @return an AccessibleJCheckBoxMenuItem that serves as the
|
||||
* AccessibleContext of this AccessibleJCheckBoxMenuItem
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJCheckBoxMenuItem();
|
||||
|
@ -22,11 +22,12 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.swing;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
@ -36,7 +37,6 @@ import javax.accessibility.*;
|
||||
|
||||
import sun.swing.SwingUtilities2;
|
||||
|
||||
|
||||
/**
|
||||
* <code>JColorChooser</code> provides a pane of controls designed to allow
|
||||
* a user to manipulate and select a color.
|
||||
@ -73,17 +73,13 @@ import sun.swing.SwingUtilities2;
|
||||
* has been added to the <code>java.beans</code> package.
|
||||
* Please see {@link java.beans.XMLEncoder}.
|
||||
*
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A component that supports selecting a Color.
|
||||
*
|
||||
*
|
||||
* @author James Gosling
|
||||
* @author Amy Fowler
|
||||
* @author Steve Wilson
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UI", description = "A component that supports selecting a Color.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JColorChooser extends JComponent implements Accessible {
|
||||
|
||||
@ -261,12 +257,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param ui the <code>ColorChooserUI</code> L&F object
|
||||
* @see UIDefaults#getUI
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: The UI object that implements the color chooser's LookAndFeel.
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "The UI object that implements the color chooser's LookAndFeel.")
|
||||
public void setUI(ColorChooserUI ui) {
|
||||
super.setUI(ui);
|
||||
}
|
||||
@ -289,6 +282,7 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -308,12 +302,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
* The <code>ColorSelectionModel</code> will fire a <code>ChangeEvent</code>
|
||||
* @param color the color to be set in the color chooser
|
||||
* @see JComponent#addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: false
|
||||
* hidden: false
|
||||
* description: The current color the chooser is to display.
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "The current color the chooser is to display.")
|
||||
public void setColor(Color color) {
|
||||
selectionModel.setSelectedColor(color);
|
||||
|
||||
@ -381,11 +372,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
* @see #getDragEnabled
|
||||
* @see #setTransferHandler
|
||||
* @see TransferHandler
|
||||
*
|
||||
* @beaninfo
|
||||
* description: Determines whether automatic drag handling is enabled.
|
||||
* bound: false
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "Determines whether automatic drag handling is enabled.")
|
||||
public void setDragEnabled(boolean b) {
|
||||
if (b && GraphicsEnvironment.isHeadless()) {
|
||||
throw new HeadlessException();
|
||||
@ -411,12 +400,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param preview the <code>JComponent</code> which displays the current color
|
||||
* @see JComponent#addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: The UI component which displays the current color.
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "The UI component which displays the current color.")
|
||||
public void setPreviewPanel(JComponent preview) {
|
||||
|
||||
if (previewPanel != preview) {
|
||||
@ -496,12 +482,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param panels an array of <code>AbstractColorChooserPanel</code>
|
||||
* objects
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: An array of different chooser types.
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "An array of different chooser types.")
|
||||
public void setChooserPanels( AbstractColorChooserPanel[] panels) {
|
||||
AbstractColorChooserPanel[] oldValue = chooserPanels;
|
||||
chooserPanels = panels;
|
||||
@ -531,12 +514,9 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
* Sets the model containing the selected color.
|
||||
*
|
||||
* @param newModel the new <code>ColorSelectionModel</code> object
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: The model which contains the currently selected color.
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "The model which contains the currently selected color.")
|
||||
public void setSelectionModel(ColorSelectionModel newModel ) {
|
||||
ColorSelectionModel oldModel = selectionModel;
|
||||
selectionModel = newModel;
|
||||
@ -603,6 +583,7 @@ public class JColorChooser extends JComponent implements Accessible {
|
||||
* @return an AccessibleJColorChooser that serves as the
|
||||
* AccessibleContext of this JColorChooser
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJColorChooser();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -24,6 +24,8 @@
|
||||
*/
|
||||
package javax.swing;
|
||||
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.Transient;
|
||||
@ -71,14 +73,12 @@ import javax.accessibility.*;
|
||||
*
|
||||
* @param <E> the type of the elements of this combo box
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A combination of a text field and a drop-down list.
|
||||
*
|
||||
* @author Arnaud Weber
|
||||
* @author Mark Davidson
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UI", description = "A combination of a text field and a drop-down list.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JComboBox<E> extends JComponent
|
||||
implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
@ -255,13 +255,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param ui the <code>ComboBoxUI</code> L&F object
|
||||
* @see UIDefaults#getUI
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The UI object that implements the Component's LookAndFeel.
|
||||
*/
|
||||
@BeanProperty(hidden = true, visualUpdate = true, description
|
||||
= "The UI object that implements the Component's LookAndFeel.")
|
||||
public void setUI(ComboBoxUI ui) {
|
||||
super.setUI(ui);
|
||||
}
|
||||
@ -288,6 +284,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -308,11 +305,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param aModel the <code>ComboBoxModel</code> that provides the
|
||||
* displayed list of items
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Model that the combo box uses to get data to display.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Model that the combo box uses to get data to display.")
|
||||
public void setModel(ComboBoxModel<E> aModel) {
|
||||
ComboBoxModel<E> oldModel = dataModel;
|
||||
if (oldModel != null) {
|
||||
@ -363,12 +358,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* This method fires a property changed event.
|
||||
*
|
||||
* @param aFlag if <code>true</code>, lightweight popups are desired
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* expert: true
|
||||
* description: Set to <code>false</code> to require heavyweight popups.
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "Set to <code>false</code> to require heavyweight popups.")
|
||||
public void setLightWeightPopupEnabled(boolean aFlag) {
|
||||
boolean oldFlag = lightWeightPopupEnabled;
|
||||
lightWeightPopupEnabled = aFlag;
|
||||
@ -398,12 +390,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param aFlag a boolean value, where true indicates that the
|
||||
* field is editable
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* description: If true, the user can type a new value in the combo box.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "If true, the user can type a new value in the combo box.")
|
||||
public void setEditable(boolean aFlag) {
|
||||
boolean oldFlag = isEditable;
|
||||
isEditable = aFlag;
|
||||
@ -427,11 +416,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param count an integer specifying the maximum number of items to
|
||||
* display in the list before using a scrollbar
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* description: The maximum number of rows the popup should have
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The maximum number of rows the popup should have")
|
||||
public void setMaximumRowCount(int count) {
|
||||
int oldCount = maximumRowCount;
|
||||
maximumRowCount = count;
|
||||
@ -465,11 +452,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @param aRenderer the <code>ListCellRenderer</code> that
|
||||
* displays the selected item
|
||||
* @see #setEditor
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* expert: true
|
||||
* description: The renderer that paints the item selected in the list.
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "The renderer that paints the item selected in the list.")
|
||||
public void setRenderer(ListCellRenderer<? super E> aRenderer) {
|
||||
ListCellRenderer<? super E> oldRenderer = renderer;
|
||||
renderer = aRenderer;
|
||||
@ -497,11 +482,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @param anEditor the <code>ComboBoxEditor</code> that
|
||||
* displays the selected item
|
||||
* @see #setRenderer
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* expert: true
|
||||
* description: The editor that combo box uses to edit the current value
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "The editor that combo box uses to edit the current value")
|
||||
public void setEditor(ComboBoxEditor anEditor) {
|
||||
ComboBoxEditor oldEditor = editor;
|
||||
|
||||
@ -553,10 +536,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param anObject the list object to select; use <code>null</code> to
|
||||
clear the selection
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: Sets the selected item in the JComboBox.
|
||||
*/
|
||||
@BeanProperty(bound = false, preferred = true, description
|
||||
= "Sets the selected item in the JComboBox.")
|
||||
public void setSelectedItem(Object anObject) {
|
||||
Object oldSelection = selectedItemReminder;
|
||||
Object objectToSelect = anObject;
|
||||
@ -618,10 +600,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* where 0 specifies the first item in the list and -1 indicates no selection
|
||||
* @exception IllegalArgumentException if <code>anIndex</code> < -1 or
|
||||
* <code>anIndex</code> is greater than or equal to size
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: The item at index is selected.
|
||||
*/
|
||||
@BeanProperty(bound = false, preferred = true, description
|
||||
= "The item at index is selected.")
|
||||
public void setSelectedIndex(int anIndex) {
|
||||
int size = dataModel.getSize();
|
||||
|
||||
@ -689,11 +670,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @param prototypeDisplayValue the prototype display value
|
||||
* @see #getPrototypeDisplayValue
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The display prototype value, used to compute display width and height.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The display prototype value, used to compute display width and height.")
|
||||
public void setPrototypeDisplayValue(E prototypeDisplayValue) {
|
||||
Object oldValue = this.prototypeDisplayValue;
|
||||
this.prototypeDisplayValue = prototypeDisplayValue;
|
||||
@ -869,6 +848,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ItemListener[] getItemListeners() {
|
||||
return listenerList.getListeners(ItemListener.class);
|
||||
}
|
||||
@ -907,6 +887,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ActionListener[] getActionListeners() {
|
||||
return listenerList.getListeners(ActionListener.class);
|
||||
}
|
||||
@ -946,6 +927,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public PopupMenuListener[] getPopupMenuListeners() {
|
||||
return listenerList.getListeners(PopupMenuListener.class);
|
||||
}
|
||||
@ -1074,11 +1056,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @see #configurePropertiesFromAction
|
||||
* @see #createActionPropertyChangeListener
|
||||
* @see #actionPropertyChanged
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: the Action instance connected with this ActionEvent source
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "the Action instance connected with this ActionEvent source")
|
||||
public void setAction(Action a) {
|
||||
Action oldValue = getAction();
|
||||
if (action==null || !action.equals(a)) {
|
||||
@ -1305,6 +1285,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @return an array of <code>Objects</code> containing one
|
||||
* element -- the selected item
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Object[] getSelectedObjects() {
|
||||
Object selectedObject = getSelectedItem();
|
||||
if ( selectedObject == null )
|
||||
@ -1394,11 +1375,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @param b a boolean value, where true enables the component and
|
||||
* false disables it
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* description: Whether the combo box is enabled.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The enabled state of the component.")
|
||||
public void setEnabled(boolean b) {
|
||||
super.setEnabled(b);
|
||||
firePropertyChange( "enabled", !isEnabled(), isEnabled() );
|
||||
@ -1458,10 +1437,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* character becomes the selected item.
|
||||
*
|
||||
* @param aManager a key selection manager
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: The objects that changes the selection when a key is pressed.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "The objects that changes the selection when a key is pressed.")
|
||||
public void setKeySelectionManager(KeySelectionManager aManager) {
|
||||
keySelectionManager = aManager;
|
||||
}
|
||||
@ -1481,6 +1459,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @return an integer equal to the number of items in the list
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public int getItemCount() {
|
||||
return dataModel.getSize();
|
||||
}
|
||||
@ -1629,6 +1608,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
* @return an AccessibleJComboBox that serves as the
|
||||
* AccessibleContext of this JComboBox
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if ( accessibleContext == null ) {
|
||||
accessibleContext = new AccessibleJComboBox();
|
||||
@ -2131,11 +2111,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @see #getAccessibleName
|
||||
* @see #addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: Sets the accessible name for the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the accessible name for the component.")
|
||||
public void setAccessibleName(String s) {
|
||||
ac.setAccessibleName(s);
|
||||
}
|
||||
@ -2165,11 +2143,9 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
|
||||
*
|
||||
* @see #setAccessibleName
|
||||
* @see #addPropertyChangeListener
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: Sets the accessible description for the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the accessible description for the component.")
|
||||
public void setAccessibleDescription(String s) {
|
||||
ac.setAccessibleDescription(s);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
package javax.swing;
|
||||
|
||||
|
||||
import java.beans.*;
|
||||
import java.util.HashSet;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Enumeration;
|
||||
@ -36,10 +37,6 @@ import java.util.Set;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.peer.LightweightPeer;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.VetoableChangeListener;
|
||||
import java.beans.VetoableChangeSupport;
|
||||
import java.beans.Transient;
|
||||
|
||||
import java.applet.Applet;
|
||||
|
||||
@ -176,6 +173,7 @@ import sun.swing.UIClientPropertyKey;
|
||||
* @author Arnaud Weber
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UIClassID")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public abstract class JComponent extends Container implements Serializable,
|
||||
TransferHandler.HasGetTransferHandler
|
||||
@ -479,11 +477,10 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param value whether or not the JPopupMenu is inherited
|
||||
* @see #setComponentPopupMenu
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Whether or not the JPopupMenu is inherited
|
||||
* @since 1.5
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Whether or not the JPopupMenu is inherited")
|
||||
public void setInheritsPopupMenu(boolean value) {
|
||||
boolean oldValue = getFlag(INHERITS_POPUP_MENU);
|
||||
setFlag(INHERITS_POPUP_MENU, value);
|
||||
@ -519,12 +516,10 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param popup - the popup that will be assigned to this component
|
||||
* may be null
|
||||
* @see #getComponentPopupMenu
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* description: Popup to show
|
||||
* @since 1.5
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Popup to show")
|
||||
public void setComponentPopupMenu(JPopupMenu popup) {
|
||||
if(popup != null) {
|
||||
enableEvents(AWTEvent.MOUSE_EVENT_MASK);
|
||||
@ -649,12 +644,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see #updateUI
|
||||
* @see UIManager#getLookAndFeel
|
||||
* @see UIManager#getUI
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The component's look and feel delegate.
|
||||
*/
|
||||
@BeanProperty(hidden = true, visualUpdate = true, description
|
||||
= "The component's look and feel delegate.")
|
||||
protected void setUI(ComponentUI newUI) {
|
||||
/* We do not check that the UI instance is different
|
||||
* before allowing the switch in order to enable the
|
||||
@ -718,10 +710,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return the <code>UIDefaults</code> key for a
|
||||
* <code>ComponentUI</code> subclass
|
||||
* @see UIDefaults#getUI
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: UIClassID
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "UIClassID")
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -1265,6 +1256,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return true if the component is currently painting a tile,
|
||||
* false otherwise
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isPaintingTile() {
|
||||
return getFlag(IS_PAINTING_TILE);
|
||||
}
|
||||
@ -1295,6 +1287,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see #print
|
||||
* @since 1.6
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public final boolean isPaintingForPrint() {
|
||||
return getFlag(IS_PRINTING);
|
||||
}
|
||||
@ -1319,6 +1312,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* <code>Container.setFocusCycleRoot(boolean)</code>.
|
||||
*/
|
||||
@Deprecated
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isManagingFocus() {
|
||||
return false;
|
||||
}
|
||||
@ -1589,11 +1583,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see #getVerifyInputWhenFocusTarget
|
||||
*
|
||||
* @since 1.3
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Whether the Component verifies input before accepting
|
||||
* focus.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Whether the Component verifies input before accepting focus.")
|
||||
public void setVerifyInputWhenFocusTarget(boolean
|
||||
verifyInputWhenFocusTarget) {
|
||||
boolean oldVerifyInputWhenFocusTarget =
|
||||
@ -1641,11 +1633,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* Sets the preferred size of this component.
|
||||
* If <code>preferredSize</code> is <code>null</code>, the UI will
|
||||
* be asked for the preferred size.
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The preferred size of the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The preferred size of the component.")
|
||||
public void setPreferredSize(Dimension preferredSize) {
|
||||
super.setPreferredSize(preferredSize);
|
||||
}
|
||||
@ -1685,10 +1675,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param maximumSize a <code>Dimension</code> containing the
|
||||
* desired maximum allowable size
|
||||
* @see #getMaximumSize
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: The maximum size of the component.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The maximum size of the component.")
|
||||
public void setMaximumSize(Dimension maximumSize) {
|
||||
super.setMaximumSize(maximumSize);
|
||||
}
|
||||
@ -1726,10 +1715,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param minimumSize the new minimum size of this component
|
||||
* @see #getMinimumSize
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: The minimum size of the component.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The minimum size of the component.")
|
||||
public void setMinimumSize(Dimension minimumSize) {
|
||||
super.setMinimumSize(minimumSize);
|
||||
}
|
||||
@ -1793,12 +1781,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param border the border to be rendered for this component
|
||||
* @see Border
|
||||
* @see CompoundBorder
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* preferred: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The component's border.
|
||||
*/
|
||||
@BeanProperty(preferred = true, visualUpdate = true, description
|
||||
= "The component's border.")
|
||||
public void setBorder(Border border) {
|
||||
Border oldBorder = this.border;
|
||||
|
||||
@ -1831,6 +1816,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return the value of the insets property
|
||||
* @see #setBorder
|
||||
*/
|
||||
@BeanProperty(expert = true)
|
||||
public Insets getInsets() {
|
||||
if (border != null) {
|
||||
return border.getBorderInsets(this);
|
||||
@ -1849,8 +1835,6 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param insets the <code>Insets</code> object, which can be reused
|
||||
* @return the <code>Insets</code> object
|
||||
* @see #getInsets
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
*/
|
||||
public Insets getInsets(Insets insets) {
|
||||
if (insets == null) {
|
||||
@ -1892,9 +1876,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param alignmentY the new vertical alignment
|
||||
* @see #getAlignmentY
|
||||
* @beaninfo
|
||||
* description: The preferred vertical alignment of the component.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The preferred vertical alignment of the component.")
|
||||
public void setAlignmentY(float alignmentY) {
|
||||
this.alignmentY = validateAlignment(alignmentY);
|
||||
isAlignmentYSet = true;
|
||||
@ -1921,9 +1905,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param alignmentX the new horizontal alignment
|
||||
* @see #getAlignmentX
|
||||
* @beaninfo
|
||||
* description: The preferred horizontal alignment of the component.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The preferred horizontal alignment of the component.")
|
||||
public void setAlignmentX(float alignmentX) {
|
||||
this.alignmentX = validateAlignment(alignmentX);
|
||||
isAlignmentXSet = true;
|
||||
@ -1939,10 +1923,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param inputVerifier the new input verifier
|
||||
* @since 1.3
|
||||
* @see InputVerifier
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: The component's input verifier.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The component's input verifier.")
|
||||
public void setInputVerifier(InputVerifier inputVerifier) {
|
||||
InputVerifier oldInputVerifier = (InputVerifier)getClientProperty(
|
||||
JComponent_INPUT_VERIFIER);
|
||||
@ -1967,6 +1950,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* then invoke operations on that object to draw on the component.
|
||||
* @return this components graphics context
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Graphics getGraphics() {
|
||||
if (DEBUG_GRAPHICS_LOADED && shouldDebugGraphics() != 0) {
|
||||
DebugGraphics graphics = new DebugGraphics(super.getGraphics(),
|
||||
@ -1993,15 +1977,13 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* <li>A value of 0 causes no changes to the debugging options.
|
||||
* </ul>
|
||||
* <code>debugOptions</code> is bitwise OR'd into the current value
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* enum: NONE_OPTION DebugGraphics.NONE_OPTION
|
||||
* LOG_OPTION DebugGraphics.LOG_OPTION
|
||||
* FLASH_OPTION DebugGraphics.FLASH_OPTION
|
||||
* BUFFERED_OPTION DebugGraphics.BUFFERED_OPTION
|
||||
* description: Diagnostic options for graphics operations.
|
||||
*/
|
||||
@BeanProperty(bound = false, preferred = true, enumerationValues = {
|
||||
"DebugGraphics.NONE_OPTION",
|
||||
"DebugGraphics.LOG_OPTION",
|
||||
"DebugGraphics.FLASH_OPTION",
|
||||
"DebugGraphics.BUFFERED_OPTION"}, description
|
||||
= "Diagnostic options for graphics operations.")
|
||||
public void setDebugGraphicsOptions(int debugOptions) {
|
||||
DebugGraphics.setDebugOptions(this, debugOptions);
|
||||
}
|
||||
@ -2278,6 +2260,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return an array of <code>KeyStroke</code> objects
|
||||
* @see #registerKeyboardAction
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public KeyStroke[] getRegisteredKeyStrokes() {
|
||||
int[] counts = new int[3];
|
||||
KeyStroke[][] strokes = new KeyStroke[3][];
|
||||
@ -2616,6 +2599,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see #getBaseline(int, int)
|
||||
* @since 1.6
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public BaselineResizeBehavior getBaselineResizeBehavior() {
|
||||
if (ui != null) {
|
||||
return ui.getBaselineResizeBehavior(this);
|
||||
@ -2666,10 +2650,8 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param aFlag true to make the component visible; false to
|
||||
* make it invisible
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: visualUpdate true
|
||||
*/
|
||||
@BeanProperty(hidden = true, visualUpdate = true)
|
||||
public void setVisible(boolean aFlag) {
|
||||
if (aFlag != isVisible()) {
|
||||
super.setVisible(aFlag);
|
||||
@ -2699,13 +2681,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param enabled true if this component should be enabled, false otherwise
|
||||
* @see java.awt.Component#isEnabled
|
||||
* @see java.awt.Component#isLightweight
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The enabled state of the component.
|
||||
*/
|
||||
@BeanProperty(expert = true, preferred = true, visualUpdate = true, description
|
||||
= "The enabled state of the component.")
|
||||
public void setEnabled(boolean enabled) {
|
||||
boolean oldEnabled = isEnabled();
|
||||
super.setEnabled(enabled);
|
||||
@ -2722,13 +2700,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param fg the desired foreground <code>Color</code>
|
||||
* @see java.awt.Component#getForeground
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The foreground color of the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, visualUpdate = true, description
|
||||
= "The foreground color of the component.")
|
||||
public void setForeground(Color fg) {
|
||||
Color oldFg = getForeground();
|
||||
super.setForeground(fg);
|
||||
@ -2752,13 +2726,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param bg the desired background <code>Color</code>
|
||||
* @see java.awt.Component#getBackground
|
||||
* @see #setOpaque
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The background color of the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, visualUpdate = true, description
|
||||
= "The background color of the component.")
|
||||
public void setBackground(Color bg) {
|
||||
Color oldBg = getBackground();
|
||||
super.setBackground(bg);
|
||||
@ -2773,13 +2743,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param font the desired <code>Font</code> for this component
|
||||
* @see java.awt.Component#getFont
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The font for the component.
|
||||
*/
|
||||
@BeanProperty(preferred = true, visualUpdate = true, description
|
||||
= "The font for the component.")
|
||||
public void setFont(Font font) {
|
||||
Font oldFont = getFont();
|
||||
super.setFont(font);
|
||||
@ -3028,10 +2994,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @param text the string to display; if the text is <code>null</code>,
|
||||
* the tool tip is turned off for this component
|
||||
* @see #TOOL_TIP_TEXT_KEY
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* description: The text to display in a tool tip.
|
||||
*/
|
||||
@BeanProperty(bound = false, preferred = true, description
|
||||
= "The text to display in a tool tip.")
|
||||
public void setToolTipText(String text) {
|
||||
String oldText = getToolTipText();
|
||||
putClientProperty(TOOL_TIP_TEXT_KEY, text);
|
||||
@ -3190,11 +3155,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see #getAutoscrolls
|
||||
* @see JViewport
|
||||
* @see JScrollPane
|
||||
*
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: Determines if this component automatically scrolls its contents when dragged.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "Determines if this component automatically scrolls its contents when dragged.")
|
||||
public void setAutoscrolls(boolean autoscrolls) {
|
||||
setFlag(AUTOSCROLLS_SET, true);
|
||||
if (this.autoscrolls != autoscrolls) {
|
||||
@ -3254,11 +3217,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @see TransferHandler
|
||||
* @see #getTransferHandler
|
||||
* @since 1.4
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: Mechanism for transfer of data to and from the component
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Mechanism for transfer of data to and from the component")
|
||||
public void setTransferHandler(TransferHandler newHandler) {
|
||||
TransferHandler oldHandler = (TransferHandler)getClientProperty(
|
||||
JComponent_TRANSFER_HANDLER);
|
||||
@ -4208,8 +4169,6 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* or if any keystroke already maps to another focus traversal
|
||||
* operation for this Component
|
||||
* @since 1.5
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
*/
|
||||
public void
|
||||
setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
|
||||
@ -4336,6 +4295,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return the current x coordinate of the component's origin
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public int getX() { return super.getX(); }
|
||||
|
||||
|
||||
@ -4348,6 +4308,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return the current y coordinate of the component's origin
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public int getY() { return super.getY(); }
|
||||
|
||||
|
||||
@ -4360,6 +4321,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return the current width of this component
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public int getWidth() { return super.getWidth(); }
|
||||
|
||||
|
||||
@ -4372,6 +4334,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return the current height of this component
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public int getHeight() { return super.getHeight(); }
|
||||
|
||||
/**
|
||||
@ -4405,11 +4368,9 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @param isOpaque true if this component should be opaque
|
||||
* @see #isOpaque
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* expert: true
|
||||
* description: The component's opacity
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "The component's opacity")
|
||||
public void setOpaque(boolean isOpaque) {
|
||||
boolean oldValue = getFlag(IS_OPAQUE);
|
||||
setFlag(IS_OPAQUE, isOpaque);
|
||||
@ -4520,6 +4481,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return the visible rectangle
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Rectangle getVisibleRect() {
|
||||
Rectangle visibleRect = new Rectangle();
|
||||
|
||||
@ -4628,6 +4590,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public synchronized VetoableChangeListener[] getVetoableChangeListeners() {
|
||||
if (vetoableChangeSupport == null) {
|
||||
return new VetoableChangeListener[0];
|
||||
@ -4645,6 +4608,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return the top-level <code>Container</code> that this component is in,
|
||||
* or <code>null</code> if not in any container
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Container getTopLevelAncestor() {
|
||||
for(Container p = this; p != null; p = p.getParent()) {
|
||||
if(p instanceof Window || p instanceof Applet) {
|
||||
@ -4711,6 +4675,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AncestorListener[] getAncestorListeners() {
|
||||
AncestorNotifier ancestorNotifier = getAncestorNotifier();
|
||||
if (ancestorNotifier == null) {
|
||||
@ -4943,6 +4908,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
*
|
||||
* @return always returns true
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isOptimizedDrawingEnabled() {
|
||||
return true;
|
||||
}
|
||||
@ -5392,6 +5358,7 @@ public abstract class JComponent extends Container implements Serializable,
|
||||
* @return the <code>JRootPane</code> that contains this component,
|
||||
* or <code>null</code> if no <code>JRootPane</code> is found
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public JRootPane getRootPane() {
|
||||
return SwingUtilities.getRootPane(this);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.swing;
|
||||
|
||||
import java.util.List;
|
||||
@ -34,16 +33,15 @@ import javax.accessibility.*;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Container;
|
||||
import java.awt.DefaultFocusTraversalPolicy;
|
||||
import java.awt.FocusTraversalPolicy;
|
||||
import java.awt.Window;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.IOException;
|
||||
import java.beans.PropertyVetoException;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.LinkedHashSet;
|
||||
|
||||
/**
|
||||
* A container used to create a multiple-document interface or a virtual desktop.
|
||||
* You create <code>JInternalFrame</code> objects and add them to the
|
||||
@ -88,6 +86,7 @@ import java.util.LinkedHashSet;
|
||||
* @author David Kloba
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UI")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
{
|
||||
@ -163,12 +162,9 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
*
|
||||
* @param ui the DesktopPaneUI L&F object
|
||||
* @see UIDefaults#getUI
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The UI object that implements the Component's LookAndFeel.
|
||||
*/
|
||||
@BeanProperty(hidden = true, visualUpdate = true, description
|
||||
= "The UI object that implements the Component's LookAndFeel.")
|
||||
public void setUI(DesktopPaneUI ui) {
|
||||
super.setUI(ui);
|
||||
}
|
||||
@ -183,13 +179,12 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
* @see #LIVE_DRAG_MODE
|
||||
* @see #OUTLINE_DRAG_MODE
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Dragging style for internal frame children.
|
||||
* enum: LIVE_DRAG_MODE JDesktopPane.LIVE_DRAG_MODE
|
||||
* OUTLINE_DRAG_MODE JDesktopPane.OUTLINE_DRAG_MODE
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(enumerationValues = {
|
||||
"JDesktopPane.LIVE_DRAG_MODE",
|
||||
"JDesktopPane.OUTLINE_DRAG_MODE"}, description
|
||||
= "Dragging style for internal frame children.")
|
||||
public void setDragMode(int dragMode) {
|
||||
int oldDragMode = this.dragMode;
|
||||
this.dragMode = dragMode;
|
||||
@ -225,12 +220,9 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
* {@code LookAndFeel}.
|
||||
*
|
||||
* @param d the <code>DesktopManager</code> to use
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Desktop manager to handle the internal frames in the
|
||||
* desktop pane.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Desktop manager to handle the internal frames in the desktop pane.")
|
||||
public void setDesktopManager(DesktopManager d) {
|
||||
DesktopManager oldValue = desktopManager;
|
||||
desktopManager = d;
|
||||
@ -256,6 +248,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -266,6 +259,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
*
|
||||
* @return an array of <code>JInternalFrame</code> objects
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public JInternalFrame[] getAllFrames() {
|
||||
return getAllFrames(this).toArray(new JInternalFrame[0]);
|
||||
}
|
||||
@ -600,6 +594,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
|
||||
* @return an <code>AccessibleJDesktopPane</code> that serves as the
|
||||
* <code>AccessibleContext</code> of this <code>JDesktopPane</code>
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJDesktopPane();
|
||||
|
@ -26,6 +26,8 @@ package javax.swing;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import javax.accessibility.*;
|
||||
|
||||
/**
|
||||
@ -86,16 +88,13 @@ import javax.accessibility.*;
|
||||
* @see JRootPane
|
||||
* @see javax.swing.RootPaneContainer
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer true
|
||||
* attribute: containerDelegate getContentPane
|
||||
* description: A toplevel window for creating dialog boxes.
|
||||
*
|
||||
* @author David Kloba
|
||||
* @author James Gosling
|
||||
* @author Scott Violet
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "JMenuBar", description = "A toplevel window for creating dialog boxes.")
|
||||
@SwingContainer(delegate = "getContentPane")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JDialog extends Dialog implements WindowConstants,
|
||||
Accessible,
|
||||
@ -743,15 +742,12 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @see #addWindowListener
|
||||
* @see #getDefaultCloseOperation
|
||||
* @see WindowConstants
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* enum: DO_NOTHING_ON_CLOSE WindowConstants.DO_NOTHING_ON_CLOSE
|
||||
* HIDE_ON_CLOSE WindowConstants.HIDE_ON_CLOSE
|
||||
* DISPOSE_ON_CLOSE WindowConstants.DISPOSE_ON_CLOSE
|
||||
* description: The dialog's default close operation.
|
||||
*/
|
||||
@BeanProperty(preferred = true, enumerationValues = {
|
||||
"WindowConstants.DO_NOTHING_ON_CLOSE",
|
||||
"WindowConstants.HIDE_ON_CLOSE",
|
||||
"WindowConstants.DISPOSE_ON_CLOSE"}, description
|
||||
= "The dialog's default close operation.")
|
||||
public void setDefaultCloseOperation(int operation) {
|
||||
if (operation != DO_NOTHING_ON_CLOSE &&
|
||||
operation != HIDE_ON_CLOSE &&
|
||||
@ -802,12 +798,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @see #getTransferHandler
|
||||
* @see java.awt.Component#setDropTarget
|
||||
* @since 1.6
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: Mechanism for transfer of data into the component
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Mechanism for transfer of data into the component")
|
||||
public void setTransferHandler(TransferHandler newHandler) {
|
||||
TransferHandler oldHandler = transferHandler;
|
||||
transferHandler = newHandler;
|
||||
@ -844,11 +837,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @param menu the menubar being placed in the dialog
|
||||
*
|
||||
* @see #getJMenuBar
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The menubar for accessing pulldown menus from this dialog.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The menubar for accessing pulldown menus from this dialog.")
|
||||
public void setJMenuBar(final JMenuBar menu) {
|
||||
getRootPane().setJMenuBar(menu);
|
||||
}
|
||||
@ -892,10 +883,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @see #setLayout
|
||||
* @see #isRootPaneCheckingEnabled
|
||||
* @see javax.swing.RootPaneContainer
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: Whether the add and setLayout methods are forwarded
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Whether the add and setLayout methods are forwarded")
|
||||
protected void setRootPaneCheckingEnabled(boolean enabled) {
|
||||
rootPaneCheckingEnabled = enabled;
|
||||
}
|
||||
@ -977,6 +967,8 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @see #setRootPane
|
||||
* @see RootPaneContainer#getRootPane
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "the RootPane object for this dialog.")
|
||||
public JRootPane getRootPane() {
|
||||
return rootPane;
|
||||
}
|
||||
@ -989,10 +981,6 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @param root the {@code rootPane} object for this dialog
|
||||
*
|
||||
* @see #getRootPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: the RootPane object for this dialog.
|
||||
*/
|
||||
protected void setRootPane(JRootPane root) {
|
||||
if(rootPane != null) {
|
||||
@ -1041,12 +1029,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* exception) if the content pane parameter is {@code null}
|
||||
* @see #getContentPane
|
||||
* @see RootPaneContainer#setContentPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The client area of the dialog where child
|
||||
* components are normally inserted.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The client area of the dialog where child components are normally inserted.")
|
||||
public void setContentPane(Container contentPane) {
|
||||
getRootPane().setContentPane(contentPane);
|
||||
}
|
||||
@ -1073,11 +1058,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* exception) if the layered pane parameter is null
|
||||
* @see #getLayeredPane
|
||||
* @see RootPaneContainer#setLayeredPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The pane which holds the various dialog layers.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The pane which holds the various dialog layers.")
|
||||
public void setLayeredPane(JLayeredPane layeredPane) {
|
||||
getRootPane().setLayeredPane(layeredPane);
|
||||
}
|
||||
@ -1101,11 +1084,9 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
* @param glassPane the {@code glassPane} object for this dialog
|
||||
* @see #getGlassPane
|
||||
* @see RootPaneContainer#setGlassPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: A transparent pane used for menu rendering.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "A transparent pane used for menu rendering.")
|
||||
public void setGlassPane(Component glassPane) {
|
||||
getRootPane().setGlassPane(glassPane);
|
||||
}
|
||||
@ -1115,6 +1096,7 @@ public class JDialog extends Dialog implements WindowConstants,
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Graphics getGraphics() {
|
||||
JComponent.getGraphicsInvoked(this);
|
||||
return super.getGraphics();
|
||||
|
@ -24,15 +24,13 @@
|
||||
*/
|
||||
package javax.swing;
|
||||
|
||||
import sun.swing.SwingUtilities2;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.lang.reflect.*;
|
||||
import java.net.*;
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import javax.swing.plaf.*;
|
||||
import javax.swing.text.*;
|
||||
@ -184,13 +182,11 @@ import sun.reflect.misc.ReflectUtil;
|
||||
* has been added to the <code>java.beans</code> package.
|
||||
* Please see {@link java.beans.XMLEncoder}.
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A text component to edit various types of content.
|
||||
*
|
||||
* @author Timothy Prinzing
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UIClassID", description = "A text component to edit various types of content.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JEditorPane extends JTextComponent {
|
||||
|
||||
@ -323,6 +319,7 @@ public class JEditorPane extends JTextComponent {
|
||||
* array if no listeners have been added
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public synchronized HyperlinkListener[] getHyperlinkListeners() {
|
||||
return listenerList.getListeners(javax.swing.event.HyperlinkListener.class);
|
||||
}
|
||||
@ -411,11 +408,9 @@ public class JEditorPane extends JTextComponent {
|
||||
* @exception IOException for a <code>null</code> or invalid
|
||||
* page specification, or exception from the stream being read
|
||||
* @see #getPage
|
||||
* @beaninfo
|
||||
* description: the URL used to set content
|
||||
* bound: true
|
||||
* expert: true
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "the URL used to set content")
|
||||
public void setPage(URL page) throws IOException {
|
||||
if (page == null) {
|
||||
throw new IOException("invalid url");
|
||||
@ -895,6 +890,7 @@ public class JEditorPane extends JTextComponent {
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -960,11 +956,11 @@ public class JEditorPane extends JTextComponent {
|
||||
* @param type the non-<code>null</code> mime type for the content editing
|
||||
* support
|
||||
* @see #getContentType
|
||||
* @beaninfo
|
||||
* description: the type of content
|
||||
* @throws NullPointerException if the <code>type</code> parameter
|
||||
* is <code>null</code>
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "the type of content")
|
||||
public final void setContentType(String type) {
|
||||
// The type could have optional info is part of it,
|
||||
// for example some charset info. We need to strip that
|
||||
@ -1046,11 +1042,9 @@ public class JEditorPane extends JTextComponent {
|
||||
*
|
||||
* @param kit the desired editor behavior
|
||||
* @see #getEditorKit
|
||||
* @beaninfo
|
||||
* description: the currently installed kit for handling content
|
||||
* bound: true
|
||||
* expert: true
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "the currently installed kit for handling content")
|
||||
public void setEditorKit(EditorKit kit) {
|
||||
EditorKit old = this.kit;
|
||||
isUserSetEditorKit = true;
|
||||
@ -1414,9 +1408,9 @@ public class JEditorPane extends JTextComponent {
|
||||
* @param t the new text to be set; if <code>null</code> the old
|
||||
* text will be deleted
|
||||
* @see #getText
|
||||
* @beaninfo
|
||||
* description: the text of this component
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "the text of this component")
|
||||
public void setText(String t) {
|
||||
try {
|
||||
Document doc = getDocument();
|
||||
@ -1466,6 +1460,7 @@ public class JEditorPane extends JTextComponent {
|
||||
* @return true if a viewport should force the Scrollables width to
|
||||
* match its own, false otherwise
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean getScrollableTracksViewportWidth() {
|
||||
Container parent = SwingUtilities.getUnwrappedParent(this);
|
||||
if (parent instanceof JViewport) {
|
||||
@ -1489,6 +1484,7 @@ public class JEditorPane extends JTextComponent {
|
||||
* <code>Scrollable</code>'s height to match its own,
|
||||
* false otherwise
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean getScrollableTracksViewportHeight() {
|
||||
Container parent = SwingUtilities.getUnwrappedParent(this);
|
||||
if (parent instanceof JViewport) {
|
||||
@ -1626,6 +1622,7 @@ public class JEditorPane extends JTextComponent {
|
||||
* @return an AccessibleJEditorPane that serves as the
|
||||
* AccessibleContext of this JEditorPane
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (getEditorKit() instanceof HTMLEditorKit) {
|
||||
if (accessibleContext == null || accessibleContext.getClass() !=
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -22,7 +22,6 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.swing;
|
||||
|
||||
import javax.swing.event.*;
|
||||
@ -48,6 +47,8 @@ import java.awt.HeadlessException;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.event.*;
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.io.InvalidObjectException;
|
||||
@ -83,13 +84,11 @@ import java.lang.ref.WeakReference;
|
||||
* href="package-summary.html#threading">Swing's Threading
|
||||
* Policy</a>.
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer false
|
||||
* description: A component which allows for the interactive selection of a file.
|
||||
*
|
||||
* @author Jeff Dinkins
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "UI", description = "A component which allows for the interactive selection of a file.")
|
||||
@SwingContainer(false)
|
||||
@SuppressWarnings("serial") // Superclass is not serializable across versions
|
||||
public class JFileChooser extends JComponent implements Accessible {
|
||||
|
||||
@ -456,11 +455,9 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @see #setTransferHandler
|
||||
* @see TransferHandler
|
||||
* @since 1.4
|
||||
*
|
||||
* @beaninfo
|
||||
* description: determines whether automatic drag handling is enabled
|
||||
* bound: false
|
||||
*/
|
||||
@BeanProperty(bound = false, description
|
||||
= "determines whether automatic drag handling is enabled")
|
||||
public void setDragEnabled(boolean b) {
|
||||
checkDragEnabled(b);
|
||||
dragEnabled = b;
|
||||
@ -505,14 +502,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* not the current directory, changes the current directory
|
||||
* to be the file's parent directory.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
*
|
||||
* @see #getSelectedFile
|
||||
*
|
||||
* @param file the selected file
|
||||
*/
|
||||
@BeanProperty(preferred = true)
|
||||
public void setSelectedFile(File file) {
|
||||
File oldValue = selectedFile;
|
||||
selectedFile = file;
|
||||
@ -546,10 +540,9 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* set to allow multiple selection.
|
||||
*
|
||||
* @param selectedFiles an array {@code File}s to be selected
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: The list of selected files if the chooser is in multiple selection mode.
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "The list of selected files if the chooser is in multiple selection mode.")
|
||||
public void setSelectedFiles(File[] selectedFiles) {
|
||||
File[] oldValue = this.selectedFiles;
|
||||
if (selectedFiles == null || selectedFiles.length == 0) {
|
||||
@ -586,14 +579,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* until it finds a traversable directory, or hits the root of the
|
||||
* file system.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The directory that the JFileChooser is showing files of.
|
||||
*
|
||||
* @param dir the current directory to point to
|
||||
* @see #getCurrentDirectory
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The directory that the JFileChooser is showing files of.")
|
||||
public void setCurrentDirectory(File dir) {
|
||||
File oldValue = currentDirectory;
|
||||
|
||||
@ -881,15 +871,12 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @param b <code>false</code> if control buttons should not be
|
||||
* shown; otherwise, <code>true</code>
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets whether the approve & cancel buttons are shown.
|
||||
*
|
||||
* @see #getControlButtonsAreShown
|
||||
* @see #CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets whether the approve & cancel buttons are shown.")
|
||||
public void setControlButtonsAreShown(boolean b) {
|
||||
if(controlsShown == b) {
|
||||
return;
|
||||
@ -939,19 +926,16 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @exception IllegalArgumentException if <code>dialogType</code> is
|
||||
* not legal
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The type (open, save, custom) of the JFileChooser.
|
||||
* enum:
|
||||
* OPEN_DIALOG JFileChooser.OPEN_DIALOG
|
||||
* SAVE_DIALOG JFileChooser.SAVE_DIALOG
|
||||
* CUSTOM_DIALOG JFileChooser.CUSTOM_DIALOG
|
||||
*
|
||||
* @see #getDialogType
|
||||
* @see #setApproveButtonText
|
||||
*/
|
||||
// PENDING(jeff) - fire button text change property
|
||||
@BeanProperty(preferred = true, enumerationValues = {
|
||||
"JFileChooser.OPEN_DIALOG",
|
||||
"JFileChooser.SAVE_DIALOG",
|
||||
"JFileChooser.CUSTOM_DIALOG"}, description
|
||||
= "The type (open, save, custom) of the JFileChooser.")
|
||||
public void setDialogType(int dialogType) {
|
||||
if(this.dialogType == dialogType) {
|
||||
return;
|
||||
@ -979,14 +963,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param dialogTitle the new <code>String</code> for the title bar
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The title of the JFileChooser dialog window.
|
||||
*
|
||||
* @see #getDialogTitle
|
||||
*
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The title of the JFileChooser dialog window.")
|
||||
public void setDialogTitle(String dialogTitle) {
|
||||
String oldValue = this.dialogTitle;
|
||||
this.dialogTitle = dialogTitle;
|
||||
@ -1016,16 +997,13 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* Sets the tooltip text used in the <code>ApproveButton</code>.
|
||||
* If <code>null</code>, the UI object will determine the button's text.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The tooltip text for the ApproveButton.
|
||||
*
|
||||
* @param toolTipText the tooltip text for the approve button
|
||||
* @see #setApproveButtonText
|
||||
* @see #setDialogType
|
||||
* @see #showDialog
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The tooltip text for the ApproveButton.")
|
||||
public void setApproveButtonToolTipText(String toolTipText) {
|
||||
if(approveButtonToolTipText == toolTipText) {
|
||||
return;
|
||||
@ -1065,13 +1043,10 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param mnemonic an integer value for the mnemonic key
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The mnemonic key accelerator for the ApproveButton.
|
||||
*
|
||||
* @see #getApproveButtonMnemonic
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The mnemonic key accelerator for the ApproveButton.")
|
||||
public void setApproveButtonMnemonic(int mnemonic) {
|
||||
if(approveButtonMnemonic == mnemonic) {
|
||||
return;
|
||||
@ -1100,11 +1075,6 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* Sets the text used in the <code>ApproveButton</code> in the
|
||||
* <code>FileChooserUI</code>.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: The text that goes in the ApproveButton.
|
||||
*
|
||||
* @param approveButtonText the text used in the <code>ApproveButton</code>
|
||||
*
|
||||
* @see #getApproveButtonText
|
||||
@ -1112,6 +1082,8 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @see #showDialog
|
||||
*/
|
||||
// PENDING(jeff) - have ui set this on dialog type change
|
||||
@BeanProperty(preferred = true, description
|
||||
= "The text that goes in the ApproveButton.")
|
||||
public void setApproveButtonText(String approveButtonText) {
|
||||
if(this.approveButtonText == approveButtonText) {
|
||||
return;
|
||||
@ -1148,6 +1120,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @see #removeChoosableFileFilter
|
||||
* @see #resetChoosableFileFilters
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public FileFilter[] getChoosableFileFilters() {
|
||||
FileFilter[] filterArray = new FileFilter[filters.size()];
|
||||
filters.copyInto(filterArray);
|
||||
@ -1162,16 +1135,13 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @param filter the <code>FileFilter</code> to add to the choosable file
|
||||
* filter list
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Adds a filter to the list of user choosable file filters.
|
||||
*
|
||||
* @see #getChoosableFileFilters
|
||||
* @see #removeChoosableFileFilter
|
||||
* @see #resetChoosableFileFilters
|
||||
* @see #setFileSelectionMode
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Adds a filter to the list of user choosable file filters.")
|
||||
public void addChoosableFileFilter(FileFilter filter) {
|
||||
if(filter != null && !filters.contains(filter)) {
|
||||
FileFilter[] oldValue = getChoosableFileFilters();
|
||||
@ -1249,6 +1219,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @return the {@code AcceptAll} file filter
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public FileFilter getAcceptAllFileFilter() {
|
||||
FileFilter filter = null;
|
||||
if(getUI() != null) {
|
||||
@ -1277,16 +1248,14 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @param b a {@code boolean} which determines whether the {@code AcceptAll}
|
||||
* file filter is an available choice in the choosable filter list
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets whether the AcceptAll FileFilter is used as an available choice in the choosable filter list.
|
||||
*
|
||||
* @see #isAcceptAllFileFilterUsed
|
||||
* @see #getAcceptAllFileFilter
|
||||
* @see #setFileFilter
|
||||
* @since 1.3
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets whether the AcceptAll FileFilter is used as an available choice in the choosable filter list.")
|
||||
public void setAcceptAllFileFilterUsed(boolean b) {
|
||||
boolean oldValue = useAcceptAllFileFilter;
|
||||
useAcceptAllFileFilter = b;
|
||||
@ -1320,11 +1289,9 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* file chooser.
|
||||
*
|
||||
* @param newAccessory the accessory component to be set
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets the accessory component on the JFileChooser.
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the accessory component on the JFileChooser.")
|
||||
public void setAccessory(JComponent newAccessory) {
|
||||
JComponent oldValue = accessory;
|
||||
accessory = newAccessory;
|
||||
@ -1346,17 +1313,14 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @exception IllegalArgumentException if <code>mode</code> is an
|
||||
* illegal file selection mode
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets the types of files that the JFileChooser can choose.
|
||||
* enum: FILES_ONLY JFileChooser.FILES_ONLY
|
||||
* DIRECTORIES_ONLY JFileChooser.DIRECTORIES_ONLY
|
||||
* FILES_AND_DIRECTORIES JFileChooser.FILES_AND_DIRECTORIES
|
||||
*
|
||||
*
|
||||
* @see #getFileSelectionMode
|
||||
*/
|
||||
@BeanProperty(preferred = true, enumerationValues = {
|
||||
"JFileChooser.FILES_ONLY",
|
||||
"JFileChooser.DIRECTORIES_ONLY",
|
||||
"JFileChooser.FILES_AND_DIRECTORIES"}, description
|
||||
= "Sets the types of files that the JFileChooser can choose.")
|
||||
public void setFileSelectionMode(int mode) {
|
||||
if(fileSelectionMode == mode) {
|
||||
return;
|
||||
@ -1400,6 +1364,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @see #setFileSelectionMode
|
||||
* @see #getFileSelectionMode
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isFileSelectionEnabled() {
|
||||
return ((fileSelectionMode == FILES_ONLY) || (fileSelectionMode == FILES_AND_DIRECTORIES));
|
||||
}
|
||||
@ -1412,6 +1377,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @see #setFileSelectionMode
|
||||
* @see #getFileSelectionMode
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isDirectorySelectionEnabled() {
|
||||
return ((fileSelectionMode == DIRECTORIES_ONLY) || (fileSelectionMode == FILES_AND_DIRECTORIES));
|
||||
}
|
||||
@ -1420,12 +1386,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* Sets the file chooser to allow multiple file selections.
|
||||
*
|
||||
* @param b true if multiple files may be selected
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* description: Sets multiple file selection mode.
|
||||
*
|
||||
* @see #isMultiSelectionEnabled
|
||||
*/
|
||||
@BeanProperty(description
|
||||
= "Sets multiple file selection mode.")
|
||||
public void setMultiSelectionEnabled(boolean b) {
|
||||
if(multiSelectionEnabled == b) {
|
||||
return;
|
||||
@ -1461,15 +1426,12 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* in the file chooser. The job of determining which files are
|
||||
* shown is done by the <code>FileView</code>.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets file hiding on or off.
|
||||
*
|
||||
* @param b the boolean value that determines whether file hiding is
|
||||
* turned on
|
||||
* @see #isFileHidingEnabled
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets file hiding on or off.")
|
||||
public void setFileHidingEnabled(boolean b) {
|
||||
// Dump showFilesListener since we'll ignore it from now on
|
||||
if (showFilesListener != null) {
|
||||
@ -1485,14 +1447,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* Sets the current file filter. The file filter is used by the
|
||||
* file chooser to filter out files from the user's view.
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets the File Filter used to filter out files of type.
|
||||
*
|
||||
* @param filter the new current file filter to use
|
||||
* @see #getFileFilter
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the File Filter used to filter out files of type.")
|
||||
public void setFileFilter(FileFilter filter) {
|
||||
FileFilter oldValue = fileFilter;
|
||||
fileFilter = filter;
|
||||
@ -1534,13 +1493,11 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* the icon that represents a file or the type description of a file.
|
||||
*
|
||||
* @param fileView a {@code FileView} to be used to retrieve UI information
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* description: Sets the File View used to get file type information.
|
||||
*
|
||||
* @see #getFileView
|
||||
*/
|
||||
@BeanProperty(preferred = true, description
|
||||
= "Sets the File View used to get file type information.")
|
||||
public void setFileView(FileView fileView) {
|
||||
FileView oldValue = this.fileView;
|
||||
this.fileView = fileView;
|
||||
@ -1704,13 +1661,10 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* the floppy drive and getting a list of root drives.
|
||||
* @param fsv the new <code>FileSystemView</code>
|
||||
*
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* bound: true
|
||||
* description: Sets the FileSytemView used to get filesystem information.
|
||||
*
|
||||
* @see FileSystemView
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "Sets the FileSytemView used to get filesystem information.")
|
||||
public void setFileSystemView(FileSystemView fsv) {
|
||||
FileSystemView oldValue = fileSystemView;
|
||||
fileSystemView = fsv;
|
||||
@ -1801,6 +1755,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public ActionListener[] getActionListeners() {
|
||||
return listenerList.getListeners(ActionListener.class);
|
||||
}
|
||||
@ -1895,10 +1850,9 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @return the string "FileChooserUI"
|
||||
* @see JComponent#getUIClassID
|
||||
* @see UIDefaults#getUI
|
||||
* @beaninfo
|
||||
* expert: true
|
||||
* description: A string that specifies the name of the L&F class.
|
||||
*/
|
||||
@BeanProperty(bound = false, expert = true, description
|
||||
= "A string that specifies the name of the L&F class.")
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -1908,6 +1862,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
*
|
||||
* @return the FileChooserUI object that implements the FileChooserUI L&F
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public FileChooserUI getUI() {
|
||||
return (FileChooserUI) ui;
|
||||
}
|
||||
@ -2070,6 +2025,7 @@ public class JFileChooser extends JComponent implements Accessible {
|
||||
* @return an AccessibleJFileChooser that serves as the
|
||||
* AccessibleContext of this JFileChooser
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public AccessibleContext getAccessibleContext() {
|
||||
if (accessibleContext == null) {
|
||||
accessibleContext = new AccessibleJFileChooser();
|
||||
|
@ -27,6 +27,8 @@ package javax.swing;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.im.InputContext;
|
||||
import java.beans.BeanProperty;
|
||||
import java.beans.JavaBean;
|
||||
import java.io.*;
|
||||
import java.text.*;
|
||||
import java.util.*;
|
||||
@ -176,6 +178,7 @@ import javax.swing.text.*;
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
@JavaBean
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JFormattedTextField extends JTextField {
|
||||
private static final String uiClassID = "FormattedTextFieldUI";
|
||||
@ -357,13 +360,13 @@ public class JFormattedTextField extends JTextField {
|
||||
* @param behavior Identifies behavior when focus is lost
|
||||
* @throws IllegalArgumentException if behavior is not one of the known
|
||||
* values
|
||||
* @beaninfo
|
||||
* enum: COMMIT JFormattedTextField.COMMIT
|
||||
* COMMIT_OR_REVERT JFormattedTextField.COMMIT_OR_REVERT
|
||||
* REVERT JFormattedTextField.REVERT
|
||||
* PERSIST JFormattedTextField.PERSIST
|
||||
* description: Behavior when component loses focus
|
||||
*/
|
||||
@BeanProperty(bound = false, enumerationValues = {
|
||||
"JFormattedTextField.COMMIT",
|
||||
"JFormattedTextField.COMMIT_OR_REVERT",
|
||||
"JFormattedTextField.REVERT",
|
||||
"JFormattedTextField.PERSIST"}, description
|
||||
= "Behavior when component loses focus")
|
||||
public void setFocusLostBehavior(int behavior) {
|
||||
if (behavior != COMMIT && behavior != COMMIT_OR_REVERT &&
|
||||
behavior != PERSIST && behavior != REVERT) {
|
||||
@ -407,12 +410,9 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @param tf <code>AbstractFormatterFactory</code> used to lookup
|
||||
* instances of <code>AbstractFormatter</code>
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: AbstractFormatterFactory, responsible for returning an
|
||||
* AbstractFormatter that can format the current value.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "AbstractFormatterFactory, responsible for returning an AbstractFormatter that can format the current value.")
|
||||
public void setFormatterFactory(AbstractFormatterFactory tf) {
|
||||
AbstractFormatterFactory oldFactory = factory;
|
||||
|
||||
@ -448,10 +448,6 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @see #setFormatterFactory
|
||||
* @param format AbstractFormatter to use for formatting
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: TextFormatter, responsible for formatting the current value
|
||||
*/
|
||||
protected void setFormatter(AbstractFormatter format) {
|
||||
AbstractFormatter oldFormat = this.format;
|
||||
@ -474,6 +470,8 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @return AbstractFormatter used for formatting
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "TextFormatter, responsible for formatting the current value")
|
||||
public AbstractFormatter getFormatter() {
|
||||
return format;
|
||||
}
|
||||
@ -490,11 +488,9 @@ public class JFormattedTextField extends JTextField {
|
||||
* This is a JavaBeans bound property.
|
||||
*
|
||||
* @param value Current value to display
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: The value to be formatted.
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "The value to be formatted.")
|
||||
public void setValue(Object value) {
|
||||
if (value != null && getFormatterFactory() == null) {
|
||||
setFormatterFactory(getDefaultFormatterFactory(value));
|
||||
@ -544,11 +540,9 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @param isValid boolean indicating if the currently edited value is
|
||||
* valid.
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* attribute: visualUpdate true
|
||||
* description: True indicates the edited value is valid
|
||||
*/
|
||||
@BeanProperty(visualUpdate = true, description
|
||||
= "True indicates the edited value is valid")
|
||||
private void setEditValid(boolean isValid) {
|
||||
if (isValid != editValid) {
|
||||
editValid = isValid;
|
||||
@ -564,6 +558,7 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @return true if the current value being edited is valid.
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public boolean isEditValid() {
|
||||
return editValid;
|
||||
}
|
||||
@ -673,6 +668,7 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @return the command list
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Action[] getActions() {
|
||||
return TextAction.augmentList(super.getActions(), defaultActions);
|
||||
}
|
||||
@ -683,6 +679,7 @@ public class JFormattedTextField extends JTextField {
|
||||
* @return the string "FormattedTextFieldUI"
|
||||
* @see JComponent#getUIClassID
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public String getUIClassID() {
|
||||
return uiClassID;
|
||||
}
|
||||
@ -695,11 +692,9 @@ public class JFormattedTextField extends JTextField {
|
||||
*
|
||||
* @param doc the document to display/edit
|
||||
* @see #getDocument
|
||||
* @beaninfo
|
||||
* description: the text document model
|
||||
* bound: true
|
||||
* expert: true
|
||||
*/
|
||||
@BeanProperty(expert = true, description
|
||||
= "the text document model")
|
||||
public void setDocument(Document doc) {
|
||||
if (documentListener != null && getDocument() != null) {
|
||||
getDocument().removeDocumentListener(documentListener);
|
||||
|
@ -36,12 +36,14 @@ import java.awt.Image;
|
||||
import java.awt.LayoutManager;
|
||||
import java.awt.event.WindowEvent;
|
||||
|
||||
import java.beans.JavaBean;
|
||||
import java.beans.BeanProperty;
|
||||
|
||||
import javax.accessibility.Accessible;
|
||||
import javax.accessibility.AccessibleContext;
|
||||
import javax.accessibility.AccessibleState;
|
||||
import javax.accessibility.AccessibleStateSet;
|
||||
|
||||
|
||||
/**
|
||||
* An extended version of <code>java.awt.Frame</code> that adds support for
|
||||
* the JFC/Swing component architecture.
|
||||
@ -111,16 +113,13 @@ import javax.accessibility.AccessibleStateSet;
|
||||
* @see java.awt.event.WindowListener#windowClosing
|
||||
* @see javax.swing.RootPaneContainer
|
||||
*
|
||||
* @beaninfo
|
||||
* attribute: isContainer true
|
||||
* attribute: containerDelegate getContentPane
|
||||
* description: A toplevel window which can be minimized to an icon.
|
||||
*
|
||||
* @author Jeff Dinkins
|
||||
* @author Georges Saab
|
||||
* @author David Kloba
|
||||
* @since 1.2
|
||||
*/
|
||||
@JavaBean(defaultProperty = "JMenuBar", description = "A toplevel window which can be minimized to an icon.")
|
||||
@SwingContainer(delegate = "getContentPane")
|
||||
@SuppressWarnings("serial") // Same-version serialization only
|
||||
public class JFrame extends Frame implements WindowConstants,
|
||||
Accessible,
|
||||
@ -368,16 +367,13 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* <code>SecurityManager</code> will
|
||||
* not allow the caller to invoke <code>System.exit</code>
|
||||
* @see java.lang.Runtime#exit(int)
|
||||
*
|
||||
* @beaninfo
|
||||
* preferred: true
|
||||
* bound: true
|
||||
* enum: DO_NOTHING_ON_CLOSE WindowConstants.DO_NOTHING_ON_CLOSE
|
||||
* HIDE_ON_CLOSE WindowConstants.HIDE_ON_CLOSE
|
||||
* DISPOSE_ON_CLOSE WindowConstants.DISPOSE_ON_CLOSE
|
||||
* EXIT_ON_CLOSE WindowConstants.EXIT_ON_CLOSE
|
||||
* description: The frame's default close operation.
|
||||
*/
|
||||
@BeanProperty(preferred = true, enumerationValues = {
|
||||
"WindowConstants.DO_NOTHING_ON_CLOSE",
|
||||
"WindowConstants.HIDE_ON_CLOSE",
|
||||
"WindowConstants.DISPOSE_ON_CLOSE",
|
||||
"WindowConstants.EXIT_ON_CLOSE"}, description
|
||||
= "The frame's default close operation.")
|
||||
public void setDefaultCloseOperation(int operation) {
|
||||
if (operation != DO_NOTHING_ON_CLOSE &&
|
||||
operation != HIDE_ON_CLOSE &&
|
||||
@ -440,12 +436,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @see #getTransferHandler
|
||||
* @see java.awt.Component#setDropTarget
|
||||
* @since 1.6
|
||||
*
|
||||
* @beaninfo
|
||||
* bound: true
|
||||
* hidden: true
|
||||
* description: Mechanism for transfer of data into the component
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Mechanism for transfer of data into the component")
|
||||
public void setTransferHandler(TransferHandler newHandler) {
|
||||
TransferHandler oldHandler = transferHandler;
|
||||
transferHandler = newHandler;
|
||||
@ -481,11 +474,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @param menubar the menubar being placed in the frame
|
||||
*
|
||||
* @see #getJMenuBar
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The menubar for accessing pulldown menus from this frame.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The menubar for accessing pulldown menus from this frame.")
|
||||
public void setJMenuBar(final JMenuBar menubar) {
|
||||
getRootPane().setJMenuBar(menubar);
|
||||
}
|
||||
@ -529,10 +520,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @see #setLayout
|
||||
* @see #isRootPaneCheckingEnabled
|
||||
* @see javax.swing.RootPaneContainer
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: Whether the add and setLayout methods are forwarded
|
||||
*/
|
||||
@BeanProperty(hidden = true, description
|
||||
= "Whether the add and setLayout methods are forwarded")
|
||||
protected void setRootPaneCheckingEnabled(boolean enabled) {
|
||||
rootPaneCheckingEnabled = enabled;
|
||||
}
|
||||
@ -616,6 +606,8 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @see #setRootPane
|
||||
* @see RootPaneContainer#getRootPane
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "the RootPane object for this frame.")
|
||||
public JRootPane getRootPane() {
|
||||
return rootPane;
|
||||
}
|
||||
@ -627,10 +619,6 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @param root the <code>rootPane</code> object for this frame
|
||||
*
|
||||
* @see #getRootPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: the RootPane object for this frame.
|
||||
*/
|
||||
protected void setRootPane(JRootPane root)
|
||||
{
|
||||
@ -684,12 +672,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* @see #getContentPane
|
||||
* @see RootPaneContainer#setContentPane
|
||||
* @see JRootPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The client area of the frame where child
|
||||
* components are normally inserted.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The client area of the frame where child components are normally inserted.")
|
||||
public void setContentPane(Container contentPane) {
|
||||
getRootPane().setContentPane(contentPane);
|
||||
}
|
||||
@ -714,11 +699,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
* exception) if the layered pane parameter is <code>null</code>
|
||||
* @see #getLayeredPane
|
||||
* @see RootPaneContainer#setLayeredPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: The pane that holds the various frame layers.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "The pane that holds the various frame layers.")
|
||||
public void setLayeredPane(JLayeredPane layeredPane) {
|
||||
getRootPane().setLayeredPane(layeredPane);
|
||||
}
|
||||
@ -741,11 +724,9 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
*
|
||||
* @see #getGlassPane
|
||||
* @see RootPaneContainer#setGlassPane
|
||||
*
|
||||
* @beaninfo
|
||||
* hidden: true
|
||||
* description: A transparent pane used for menu rendering.
|
||||
*/
|
||||
@BeanProperty(bound = false, hidden = true, description
|
||||
= "A transparent pane used for menu rendering.")
|
||||
public void setGlassPane(Component glassPane) {
|
||||
getRootPane().setGlassPane(glassPane);
|
||||
}
|
||||
@ -755,6 +736,7 @@ public class JFrame extends Frame implements WindowConstants,
|
||||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
@BeanProperty(bound = false)
|
||||
public Graphics getGraphics() {
|
||||
JComponent.getGraphicsInvoked(this);
|
||||
return super.getGraphics();
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user