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

#ifndef __java_io_ObjectStreamField__
#define __java_io_ObjectStreamField__

#pragma interface

#include <java/lang/Object.h>

class java::io::ObjectStreamField : public ::java::lang::Object
{
public: // actually package-private
  ObjectStreamField (::java::lang::reflect::Field *);
public:
  ObjectStreamField (::java::lang::String *, ::java::lang::Class *);
  ObjectStreamField (::java::lang::String *, ::java::lang::Class *, jboolean);
public: // actually package-private
  ObjectStreamField (::java::lang::String *, ::java::lang::String *);
  ObjectStreamField (::java::lang::String *, ::java::lang::String *, ::java::lang::ClassLoader *);
public:
  virtual ::java::lang::String *getName () { return name; }
  virtual ::java::lang::Class *getType () { return type; }
  virtual jchar getTypeCode ();
  virtual ::java::lang::String *getTypeString ();
  virtual jint getOffset () { return offset; }
public:  // actually protected
  virtual void setOffset (jint);
public:
  virtual jboolean isUnshared () { return unshared; }
  virtual jboolean isPrimitive ();
  virtual jint compareTo (::java::lang::Object *);
public: // actually package-private
  virtual void setPersistent (jboolean);
  virtual jboolean isPersistent () { return persistent; }
  virtual void setToSet (jboolean);
  virtual jboolean isToSet () { return toset; }
  virtual void lookupField (::java::lang::Class *);
  virtual void checkFieldType ();
public:
  virtual ::java::lang::String *toString ();
public: // actually package-private
  virtual void setBooleanField (::java::lang::Object *, jboolean);
  virtual void setByteField (::java::lang::Object *, jbyte);
  virtual void setCharField (::java::lang::Object *, jchar);
  virtual void setShortField (::java::lang::Object *, jshort);
  virtual void setIntField (::java::lang::Object *, jint);
  virtual void setLongField (::java::lang::Object *, jlong);
  virtual void setFloatField (::java::lang::Object *, jfloat);
  virtual void setDoubleField (::java::lang::Object *, jdouble);
  virtual void setObjectField (::java::lang::Object *, ::java::lang::Object *);
private:
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object )))) name;
  ::java::lang::Class *type;
  ::java::lang::String *typename$;
  jint offset;
  jboolean unshared;
  jboolean persistent;
  jboolean toset;
  ::java::lang::reflect::Field *field;

  friend class java_io_ObjectStreamField$1;
public:

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

#endif /* __java_io_ObjectStreamField__ */
