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

#ifndef __java_lang_reflect_Field__
#define __java_lang_reflect_Field__

#pragma interface

#include <java/lang/reflect/AccessibleObject.h>

jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);

class java::lang::reflect::Field : public ::java::lang::reflect::AccessibleObject
{
public: // actually package-private
  Field ();
public:
  virtual jboolean equals (::java::lang::Object *);
  virtual ::java::lang::Class *getDeclaringClass () { return declaringClass; }
  virtual ::java::lang::String *getName ();
  virtual ::java::lang::Class *getType ();
  virtual jint getModifiers ();
  virtual jint hashCode ();
  virtual jboolean getBoolean (::java::lang::Object *);
  virtual jchar getChar (::java::lang::Object *);
  virtual jbyte getByte (::java::lang::Object *);
  virtual jshort getShort (::java::lang::Object *);
  virtual jint getInt (::java::lang::Object *);
  virtual jlong getLong (::java::lang::Object *);
  virtual jfloat getFloat (::java::lang::Object *);
  virtual jdouble getDouble (::java::lang::Object *);
  virtual ::java::lang::Object *get (::java::lang::Object *);
private:
  jboolean getBoolean (::java::lang::Class *, ::java::lang::Object *);
  jchar getChar (::java::lang::Class *, ::java::lang::Object *);
  jbyte getByte (::java::lang::Class *, ::java::lang::Object *);
  jshort getShort (::java::lang::Class *, ::java::lang::Object *);
  jint getInt (::java::lang::Class *, ::java::lang::Object *);
  jlong getLong (::java::lang::Class *, ::java::lang::Object *);
  jfloat getFloat (::java::lang::Class *, ::java::lang::Object *);
  jdouble getDouble (::java::lang::Class *, ::java::lang::Object *);
  ::java::lang::Object *get (::java::lang::Class *, ::java::lang::Object *);
public:
  virtual void setByte (::java::lang::Object *, jbyte);
  virtual void setShort (::java::lang::Object *, jshort);
  virtual void setInt (::java::lang::Object *, jint);
  virtual void setLong (::java::lang::Object *, jlong);
  virtual void setFloat (::java::lang::Object *, jfloat);
  virtual void setDouble (::java::lang::Object *, jdouble);
  virtual void setChar (::java::lang::Object *, jchar);
  virtual void setBoolean (::java::lang::Object *, jboolean);
public: // actually package-private
  virtual void setByte (::java::lang::Class *, ::java::lang::Object *, jbyte, jboolean);
  virtual void setShort (::java::lang::Class *, ::java::lang::Object *, jshort, jboolean);
  virtual void setInt (::java::lang::Class *, ::java::lang::Object *, jint, jboolean);
  virtual void setLong (::java::lang::Class *, ::java::lang::Object *, jlong, jboolean);
  virtual void setFloat (::java::lang::Class *, ::java::lang::Object *, jfloat, jboolean);
  virtual void setDouble (::java::lang::Class *, ::java::lang::Object *, jdouble, jboolean);
  virtual void setChar (::java::lang::Class *, ::java::lang::Object *, jchar, jboolean);
  virtual void setBoolean (::java::lang::Class *, ::java::lang::Object *, jboolean, jboolean);
  virtual void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Class *, jboolean);
public:
  virtual void set (::java::lang::Object *, ::java::lang::Object *);
private:
  void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *);
public:
  virtual ::java::lang::String *toString ();
private:
  ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject )))) declaringClass;
  ::java::lang::String *name;
  jint offset;
  ::java::lang::Class *type;
  friend jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);
  friend jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
  friend class java::lang::Class;
public:

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

#endif /* __java_lang_reflect_Field__ */
