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

#ifndef __java_io_ObjectOutputStream$1__
#define __java_io_ObjectOutputStream$1__

#pragma interface

#include <java/io/ObjectOutputStream$PutField.h>
#include <gcj/array.h>


class java::io::ObjectOutputStream$1 : public ::java::io::ObjectOutputStream$PutField
{

public: // actually package-private
  ObjectOutputStream$1(::java::io::ObjectOutputStream *);
private:
  ::java::io::ObjectStreamField * getField(::java::lang::String *);
public:
  virtual void put(::java::lang::String *, jboolean);
  virtual void put(::java::lang::String *, jbyte);
  virtual void put(::java::lang::String *, jchar);
  virtual void put(::java::lang::String *, jdouble);
  virtual void put(::java::lang::String *, jfloat);
  virtual void put(::java::lang::String *, jint);
  virtual void put(::java::lang::String *, jlong);
  virtual void put(::java::lang::String *, jshort);
  virtual void put(::java::lang::String *, ::java::lang::Object *);
  virtual void write(::java::io::ObjectOutput *);
private:
  void checkType(::java::io::ObjectStreamField *, jchar);
  JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::io::ObjectOutputStream$PutField)))) prim_field_data;
  JArray< ::java::lang::Object * > * objs;
public: // actually package-private
  ::java::io::ObjectOutputStream * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_ObjectOutputStream$1__
