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

#ifndef __gnu_java_lang_CharData__
#define __gnu_java_lang_CharData__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace lang
      {
          class CharData;
      }
    }
  }
}

class gnu::java::lang::CharData : public ::java::lang::Object
{

public:
  static ::java::lang::String * SOURCE;
  static JArray< jint > * SHIFT;
  static JArray< ::java::lang::String * > * BLOCKS;
  static JArray< jint > * LARGENUMS;
  static JArray< ::java::lang::String * > * DATA;
  static JArray< ::java::lang::String * > * NUM_VALUE;
  static JArray< ::java::lang::String * > * UPPER;
  static JArray< ::java::lang::String * > * LOWER;
  static JArray< ::java::lang::String * > * DIRECTION;
  static ::java::lang::String * TITLE;
  static ::java::lang::String * UPPER_SPECIAL;
  static ::java::lang::String * UPPER_EXPAND;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __gnu_java_lang_CharData__
