// 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>

class java::lang::reflect::Field : public ::java::lang::reflect::AccessibleObject
{
public: // actually package-private
  Field ();
public:
  jboolean equals (::java::lang::Object *);
  ::java::lang::Class *getDeclaringClass () { return declaringClass; }
  ::java::lang::String *getName ();
  ::java::lang::Class *getType ();
  jint getModifiers ();
  jint hashCode ();
  jboolean getBoolean (::java::lang::Object *);
  jchar getChar (::java::lang::Object *);
  jbyte getByte (::java::lang::Object *);
  jshort getShort (::java::lang::Object *);
  jint getInt (::java::lang::Object *);
  jlong getLong (::java::lang::Object *);
  jfloat getFloat (::java::lang::Object *);
  jdouble getDouble (::java::lang::Object *);
  ::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:
  void setByte (::java::lang::Object *, jbyte);
  void setShort (::java::lang::Object *, jshort);
  void setInt (::java::lang::Object *, jint);
  void setLong (::java::lang::Object *, jlong);
  void setFloat (::java::lang::Object *, jfloat);
  void setDouble (::java::lang::Object *, jdouble);
  void setChar (::java::lang::Object *, jchar);
  void setBoolean (::java::lang::Object *, jboolean);
private:
  void setByte (::java::lang::Class *, ::java::lang::Object *, jbyte);
  void setShort (::java::lang::Class *, ::java::lang::Object *, jshort);
  void setInt (::java::lang::Class *, ::java::lang::Object *, jint);
  void setLong (::java::lang::Class *, ::java::lang::Object *, jlong);
  void setFloat (::java::lang::Class *, ::java::lang::Object *, jfloat);
  void setDouble (::java::lang::Class *, ::java::lang::Object *, jdouble);
  void setChar (::java::lang::Class *, ::java::lang::Object *, jchar);
  void setBoolean (::java::lang::Class *, ::java::lang::Object *, jboolean);
  void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Class *);
public:
  void set (::java::lang::Object *, ::java::lang::Object *);
private:
  void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *);
public:
  ::java::lang::String *toString ();
private:
  ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject )))) declaringClass;
  ::java::lang::String *name;
  jint offset;
  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__ */
