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

#ifndef __java_lang_reflect_Proxy$ClassFactory__
#define __java_lang_reflect_Proxy$ClassFactory__

#pragma interface

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


class java::lang::reflect::Proxy$ClassFactory : public ::java::lang::Object
{

public: // actually package-private
  Proxy$ClassFactory(::java::lang::reflect::Proxy$ProxyData *);
private:
  void emitMethod(jint, JArray< ::java::lang::Class * > *);
public: // actually package-private
  ::java::lang::Class * generate(::java::lang::ClassLoader *);
private:
  void putU1(jint);
  void putU2(jint);
  void putU4(jint);
  void putConst(jint);
  void putLoad(jint, ::java::lang::Class *);
  ::java::lang::String * wrapper(::java::lang::Class *);
  jchar utf8Info(::java::lang::String *);
  jchar classInfo(::java::lang::String *);
  jchar classInfo(::java::lang::Class *);
  jchar refInfo(jbyte, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  jchar nameAndTypeInfo(::java::lang::String *, ::java::lang::String *);
  ::java::lang::String * toUtf8(::java::lang::String *);
  jchar poolIndex(::java::lang::String *);
  static const jbyte FIELD = 1;
  static const jbyte METHOD = 2;
  static const jbyte INTERFACE = 3;
  static ::java::lang::String * CTOR_SIG;
  static ::java::lang::String * INVOKE_SIG;
  static const jchar ACONST_NULL = 1;
  static const jchar ICONST_0 = 3;
  static const jchar BIPUSH = 16;
  static const jchar SIPUSH = 17;
  static const jchar ILOAD = 21;
  static const jchar ILOAD_0 = 26;
  static const jchar ALOAD_0 = 42;
  static const jchar ALOAD_1 = 43;
  static const jchar AALOAD = 50;
  static const jchar AASTORE = 83;
  static const jchar DUP = 89;
  static const jchar DUP_X1 = 90;
  static const jchar SWAP = 95;
  static const jchar IRETURN = 172;
  static const jchar LRETURN = 173;
  static const jchar FRETURN = 174;
  static const jchar DRETURN = 175;
  static const jchar ARETURN = 176;
  static const jchar RETURN = 177;
  static const jchar GETSTATIC = 178;
  static const jchar GETFIELD = 180;
  static const jchar INVOKEVIRTUAL = 182;
  static const jchar INVOKESPECIAL = 183;
  static const jchar INVOKEINTERFACE = 185;
  static const jchar NEW = 187;
  static const jchar ANEWARRAY = 189;
  static const jchar ATHROW = 191;
  static const jchar CHECKCAST = 192;
  ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pool;
  ::java::lang::StringBuffer * stream;
  ::java::util::Map * poolEntries;
  ::java::lang::String * qualName;
  JArray< ::java::lang::reflect::Method * > * methods;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_reflect_Proxy$ClassFactory__