// 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
{
private:
  static jchar readChar (jchar);
  static jchar readCodePoint (jint);
public:
  Character (jchar);
  virtual jchar charValue () { return value; }
  virtual jint hashCode () { return value; }
  virtual jboolean equals (::java::lang::Object *);
  virtual ::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 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);
  virtual jint compareTo (::java::lang::Character *);
  virtual jint compareTo (::java::lang::Object *);
  static ::java::lang::Character *valueOf (jchar);
  static jchar reverseBytes (jchar);
  static jcharArray toChars (jint);
  static jint toChars (jint, jcharArray, 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 (jcharArray, jint);
  static jint codePointAt (jcharArray, jint, jint);
  static jint codePointBefore (jcharArray, jint);
  static jint codePointBefore (jcharArray, jint, jint);
  static jint codePointBefore (::java::lang::CharSequence *, jint);
private:
  jchar __attribute__((aligned(__alignof__( ::java::lang::Object ))))  value;
  static const jlong serialVersionUID = 3786198910865385080LL;
public:
  static const jint MIN_RADIX = 2L;
  static const jint MAX_RADIX = 36L;
  static const jint MIN_VALUE = 0L;
  static const jint MAX_VALUE = 65535L;
  static ::java::lang::Class *TYPE;
  static const jint SIZE = 16L;
private:
  static const jint MAX_CACHE = 127L;
  static JArray< ::java::lang::Character *> *charCache;
public:
  static const jint UPPERCASE_LETTER = 1L;
  static const jint LOWERCASE_LETTER = 2L;
  static const jint TITLECASE_LETTER = 3L;
  static const jint NON_SPACING_MARK = 6L;
  static const jint COMBINING_SPACING_MARK = 8L;
  static const jint ENCLOSING_MARK = 7L;
  static const jint DECIMAL_DIGIT_NUMBER = 9L;
  static const jint LETTER_NUMBER = 10L;
  static const jint OTHER_NUMBER = 11L;
  static const jint SPACE_SEPARATOR = 12L;
  static const jint LINE_SEPARATOR = 13L;
  static const jint PARAGRAPH_SEPARATOR = 14L;
  static const jint CONTROL = 15L;
  static const jint FORMAT = 16L;
  static const jint SURROGATE = 19L;
  static const jint PRIVATE_USE = 18L;
  static const jint UNASSIGNED = 0L;
  static const jint MODIFIER_LETTER = 4L;
  static const jint OTHER_LETTER = 5L;
  static const jint CONNECTOR_PUNCTUATION = 23L;
  static const jint DASH_PUNCTUATION = 20L;
  static const jint START_PUNCTUATION = 21L;
  static const jint END_PUNCTUATION = 22L;
  static const jint INITIAL_QUOTE_PUNCTUATION = 29L;
  static const jint FINAL_QUOTE_PUNCTUATION = 30L;
  static const jint OTHER_PUNCTUATION = 24L;
  static const jint MATH_SYMBOL = 25L;
  static const jint CURRENCY_SYMBOL = 26L;
  static const jint MODIFIER_SYMBOL = 27L;
  static const jint OTHER_SYMBOL = 28L;
  static const jint DIRECTIONALITY_UNDEFINED = -1L;
  static const jint DIRECTIONALITY_LEFT_TO_RIGHT = 0L;
  static const jint DIRECTIONALITY_RIGHT_TO_LEFT = 1L;
  static const jint DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = 2L;
  static const jint DIRECTIONALITY_EUROPEAN_NUMBER = 3L;
  static const jint DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = 4L;
  static const jint DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = 5L;
  static const jint DIRECTIONALITY_ARABIC_NUMBER = 6L;
  static const jint DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = 7L;
  static const jint DIRECTIONALITY_NONSPACING_MARK = 8L;
  static const jint DIRECTIONALITY_BOUNDARY_NEUTRAL = 9L;
  static const jint DIRECTIONALITY_PARAGRAPH_SEPARATOR = 10L;
  static const jint DIRECTIONALITY_SEGMENT_SEPARATOR = 11L;
  static const jint DIRECTIONALITY_WHITESPACE = 12L;
  static const jint DIRECTIONALITY_OTHER_NEUTRALS = 13L;
  static const jint DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = 14L;
  static const jint DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = 15L;
  static const jint DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = 16L;
  static const jint DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = 17L;
  static const jint DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = 18L;
private:
  static const jint TYPE_MASK = 31L;
  static const jint NO_BREAK_MASK = 32L;
  static const jint MIRROR_MASK = 64L;
public:
  static const jint MIN_SUPPLEMENTARY_CODE_POINT = 65536L;
  static const jint MIN_CODE_POINT = 0L;
  static const jint MAX_CODE_POINT = 1114111L;
  static const jint MIN_HIGH_SURROGATE = 55296L;
  static const jint MAX_HIGH_SURROGATE = 56319L;
  static const jint MIN_LOW_SURROGATE = 56320L;
  static const jint MAX_LOW_SURROGATE = 57343L;
  static const jint MIN_SURROGATE = 55296L;
  static const jint MAX_SURROGATE = 57343L;

  friend class java_lang_Character$UnicodeBlock;
  friend class java_lang_Character$Subset;

  static ::java::lang::Class class$;
};

#endif /* __java_lang_Character__ */
