package java.lang;
class CharacterData0E extends CharacterData {
int getProperties(int ch) {
char offset = (char)ch;
int props = A[Y[X[offset>>5]|((offset>>1)&0xF)]|(offset&0x1)];
return props;
}
int getPropertiesEx(int ch) {
char offset = (char)ch;
int props = B[Y[X[offset>>5]|((offset>>1)&0xF)]|(offset&0x1)];
return props;
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & 0x0001) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & 0x0002) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & 0x0004) != 0;
}
boolean isIdeographic(int ch) {
int props = getPropertiesEx(ch);
return (props & 0x0010) != 0;
}
int getType(int ch) {
int props = getProperties(ch);
return (props & 0x1F);
}
boolean isJavaIdentifierStart(int ch) {
int props = getProperties(ch);
return ((props & 0x00007000) >= 0x00005000);
}
boolean isJavaIdentifierPart(int ch) {
int props = getProperties(ch);
return ((props & 0x00003000) != 0);
}
boolean isUnicodeIdentifierStart(int ch) {
int props = getProperties(ch);
return ((props & 0x00007000) == 0x00007000);
}
boolean isUnicodeIdentifierPart(int ch) {
int props = getProperties(ch);
return ((props & 0x00001000) != 0);
}
boolean isIdentifierIgnorable(int ch) {
int props = getProperties(ch);
return ((props & 0x00007000) == 0x00001000);
}
int toLowerCase(int ch) {
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00020000) != 0) {
int offset = val << 5 >> (5+18);
mapChar = ch + offset;
}
return mapChar;
}
int toUpperCase(int ch) {
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00010000) != 0) {
int offset = val << 5 >> (5+18);
mapChar = ch - offset;
}
return mapChar;
}
int toTitleCase(int ch) {
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00008000) != 0) {
if ((val & 0x00010000) == 0) {
mapChar = ch + 1;
}
else if ((val & 0x00020000) == 0) {
mapChar = ch - 1;
}
}
else if ((val & 0x00010000) != 0) {
mapChar = toUpperCase(ch);
}
return mapChar;
}
int digit(int ch, int radix) {
int value = -1;
if (radix >= Character.MIN_RADIX && radix <= Character.MAX_RADIX) {
int val = getProperties(ch);
int kind = val & 0x1F;
if (kind == Character.DECIMAL_DIGIT_NUMBER) {
value = ch + ((val & 0x3E0) >> 5) & 0x1F;
}
else if ((val & 0xC00) == 0x00000C00) {
value = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10;
}
}
return (value < radix) ? value : -1;
}
int getNumericValue(int ch) {
int val = getProperties(ch);
int retval = -1;
switch (val & 0xC00) {
default:
case (0x00000000):
retval = -1;
break;
case (0x00000400):
retval = ch + ((val & 0x3E0) >> 5) & 0x1F;
break;
case (0x00000800) :
retval = -2;
break;
case (0x00000C00):
retval = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10;
break;
}
return retval;
}
boolean isWhitespace(int ch) {
int props = getProperties(ch);
return ((props & 0x00007000) == 0x00004000);
}
byte getDirectionality(int ch) {
int val = getProperties(ch);
byte directionality = (byte)((val & 0x78000000) >> 27);
if (directionality == 0xF ) {
directionality = Character.DIRECTIONALITY_UNDEFINED;
}
return directionality;
}
boolean isMirrored(int ch) {
int props = getProperties(ch);
return ((props & 0x80000000) != 0);
}
static final CharacterData instance = new CharacterData0E();
private CharacterData0E() {};
static final char X[] = (
"\000\020\020\020\040\040\040\040\060\060\060\060\060\060\060\100\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040"+
"\040\040\040\040\040\040\040\040\040\040\040\040\040\040\040").toCharArray();
static final char Y[] = (
"\000\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\004\004\004"+
"\004\004\004\004\004\004\004\004\004\004\004\004\004\002\002\002\002\002\002"+
"\002\002\002\002\002\002\002\002\002\002\006\006\006\006\006\006\006\006\006"+
"\006\006\006\006\006\006\006\006\006\006\006\006\006\006\006\002\002\002\002"+
"\002\002\002\002").toCharArray();
static final int A[] = new int[8];
static final String A_DATA =
"\u7800\000\u4800\u1010\u7800\000\u7800\000\u4800\u1010\u4800\u1010\u4000\u3006"+
"\u4000\u3006";
static final char B[] = (
"\000\000\000\000\000\000\000\000").toCharArray();
static {
{
char[] data = A_DATA.toCharArray();
assert (data.length == (8 * 2));
int i = 0, j = 0;
while (i < (8 * 2)) {
int entry = data[i++] << 16;
A[j++] = entry | data[i++];
}
}
}
}