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

#ifndef __gnu_java_beans_encoder_elements_NullObject__
#define __gnu_java_beans_encoder_elements_NullObject__

#pragma interface

#include <gnu/java/beans/encoder/elements/Element.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace beans
      {
        namespace encoder
        {
            class Writer;
          namespace elements
          {
              class NullObject;
          }
        }
      }
    }
  }
}

class gnu::java::beans::encoder::elements::NullObject : public ::gnu::java::beans::encoder::elements::Element
{

public:
  NullObject();
  virtual void writeStart(::gnu::java::beans::encoder::Writer *);
  virtual void writeEnd(::gnu::java::beans::encoder::Writer *);
  static ::java::lang::Class class$;
};

#endif // __gnu_java_beans_encoder_elements_NullObject__
