
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_lang_Character__
#define __java_lang_Character__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::lang::Character : public ::java::lang::Object
{

  static jchar readChar(jchar);
  static jchar readCodePoint(jint);
public:
  Character(jchar);
  jchar charValue();
  jint hashCode();
  jboolean equals(::java::lang::Object *);
  ::java::lang::String * toString();
  static ::java::lang::String * toString(jchar);
  static jboolean isLowerCase(jchar);
  static jboolean isLowerCase(jint);
  static jboolean isUpperCase(jchar);
  static jboolean isUpperCase(jint);
  static jboolean isTitleCase(jchar);
  static jboolean isTitleCase(jint);
  static jboolean isDigit(jchar);
  static jboolean isDigit(jint);
  static jboolean isDefined(jchar);
  static jboolean isDefined(jint);
  static jboolean isLetter(jchar);
  static jboolean isLetter(jint);
  static jint offsetByCodePoints(::java::lang::CharSequence *, jint, jint);
  static jint offsetByCodePoints(JArray< jchar > *, jint, jint, jint, jint);
  static jint codePointCount(::java::lang::CharSequence *, jint, jint);
  static jint codePointCount(JArray< jchar > *, jint, jint);
  static jboolean isLetterOrDigit(jchar);
  static jboolean isLetterOrDigit(jint);
  static jboolean isJavaLetter(jchar);
  static jboolean isJavaIdentifierStart(jint);
  static jboolean isJavaLetterOrDigit(jchar);
  static jboolean isJavaIdentifierStart(jchar);
  static jboolean isJavaIdentifierPart(jchar);
  static jboolean isJavaIdentifierPart(jint);
  static jboolean isUnicodeIdentifierStart(jchar);
  static jboolean isUnicodeIdentifierStart(jint);
  static jboolean isUnicodeIdentifierPart(jchar);
  static jboolean isUnicodeIdentifierPart(jint);
  static jboolean isIdentifierIgnorable(jchar);
  static jboolean isIdentifierIgnorable(jint);
  static jchar toLowerCase(jchar);
  static jint toLowerCase(jint);
  static jchar toUpperCase(jchar);
  static jint toUpperCase(jint);
  static jchar toTitleCase(jchar);
  static jint toTitleCase(jint);
  static jint digit(jchar, jint);
  static jint digit(jint, jint);
  static jint getNumericValue(jchar);
  static jint getNumericValue(jint);
  static jboolean isSpace(jchar);
  static jboolean isSpaceChar(jchar);
  static jboolean isSpaceChar(jint);
  static jboolean isWhitespace(jchar);
  static jboolean isWhitespace(jint);
  static jboolean isISOControl(jchar);
  static jboolean isISOControl(jint);
  static jint getType(jchar);
  static jint getType(jint);
  static jchar forDigit(jint, jint);
  static jbyte getDirectionality(jchar);
  static jbyte getDirectionality(jint);
  static jboolean isMirrored(jchar);
  static jboolean isMirrored(jint);
  jint Character$compareTo(::java::lang::Character *);
  static ::java::lang::Character * valueOf(jchar);
  static jchar reverseBytes(jchar);
  static JArray< jchar > * toChars(jint);
  static jint toChars(jint, JArray< jchar > *, jint);
  static jint charCount(jint);
  static jboolean isSupplementaryCodePoint(jint);
  static jboolean isValidCodePoint(jint);
  static jboolean isHighSurrogate(jchar);
  static jboolean isLowSurrogate(jchar);
  static jboolean isSurrogatePair(jchar, jchar);
  static jint toCodePoint(jchar, jchar);
  static jint codePointAt(::java::lang::CharSequence *, jint);
  static jint codePointAt(JArray< jchar > *, jint);
  static jint codePointAt(JArray< jchar > *, jint, jint);
  static jint codePointBefore(JArray< jchar > *, jint);
  static jint codePointBefore(JArray< jchar > *, jint, jint);
  static jint codePointBefore(::java::lang::CharSequence *, jint);
  jint compareTo(::java::lang::Object *);
private:
  jchar __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
  static const jlong serialVersionUID = 3786198910865385080LL;
public:
  static const jint MIN_RADIX = 2;
  static const jint MAX_RADIX = 36;
  static const jchar MIN_VALUE = 0;
  static const jchar MAX_VALUE = 65535;
  static const jint MIN_CODE_POINT = 0;
  static const jint MAX_CODE_POINT = 1114111;
  static const jchar MIN_HIGH_SURROGATE = 55296;
  static const jchar MAX_HIGH_SURROGATE = 56319;
  static const jchar MIN_LOW_SURROGATE = 56320;
  static const jchar MAX_LOW_SURROGATE = 57343;
  static const jchar MIN_SURROGATE = 55296;
  static const jchar MAX_SURROGATE = 57343;
  static const jint MIN_SUPPLEMENTARY_CODE_POINT = 65536;
  static ::java::lang::Class * TYPE;
  static const jint SIZE = 16;
private:
  static const jint MAX_CACHE = 127;
  static JArray< ::java::lang::Character * > * charCache;
public:
  static const jbyte UPPERCASE_LETTER = 1;
  static const jbyte LOWERCASE_LETTER = 2;
  static const jbyte TITLECASE_LETTER = 3;
  static const jbyte NON_SPACING_MARK = 6;
  static const jbyte COMBINING_SPACING_MARK = 8;
  static const jbyte ENCLOSING_MARK = 7;
  static const jbyte DECIMAL_DIGIT_NUMBER = 9;
  static const jbyte LETTER_NUMBER = 10;
  static const jbyte OTHER_NUMBER = 11;
  static const jbyte SPACE_SEPARATOR = 12;
  static const jbyte LINE_SEPARATOR = 13;
  static const jbyte PARAGRAPH_SEPARATOR = 14;
  static const jbyte CONTROL = 15;
  static const jbyte FORMAT = 16;
  static const jbyte SURROGATE = 19;
  static const jbyte PRIVATE_USE = 18;
  static const jbyte UNASSIGNED = 0;
  static const jbyte MODIFIER_LETTER = 4;
  static const jbyte OTHER_LETTER = 5;
  static const jbyte CONNECTOR_PUNCTUATION = 23;
  static const jbyte DASH_PUNCTUATION = 20;
  static const jbyte START_PUNCTUATION = 21;
  static const jbyte END_PUNCTUATION = 22;
  static const jbyte INITIAL_QUOTE_PUNCTUATION = 29;
  static const jbyte FINAL_QUOTE_PUNCTUATION = 30;
  static const jbyte OTHER_PUNCTUATION = 24;
  static const jbyte MATH_SYMBOL = 25;
  static const jbyte CURRENCY_SYMBOL = 26;
  static const jbyte MODIFIER_SYMBOL = 27;
  static const jbyte OTHER_SYMBOL = 28;
  static const jbyte DIRECTIONALITY_UNDEFINED = -1;
  static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT = 0;
  static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT = 1;
  static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2;
  static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER = 3;
  static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4;
  static const jbyte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5;
  static const jbyte DIRECTIONALITY_ARABIC_NUMBER = 6;
  static const jbyte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7;
  static const jbyte DIRECTIONALITY_NONSPACING_MARK = 8;
  static const jbyte DIRECTIONALITY_BOUNDARY_NEUTRAL = 9;
  static const jbyte DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10;
  static const jbyte DIRECTIONALITY_SEGMENT_SEPARATOR = 11;
  static const jbyte DIRECTIONALITY_WHITESPACE = 12;
  static const jbyte DIRECTIONALITY_OTHER_NEUTRALS = 13;
  static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14;
  static const jbyte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15;
  static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16;
  static const jbyte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17;
  static const jbyte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18;
private:
  static const jint TYPE_MASK = 31;
  static const jint NO_BREAK_MASK = 32;
  static const jint MIRROR_MASK = 64;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_Character__
