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

#ifndef __gnu_java_beans_encoder_Root$RootElement__
#define __gnu_java_beans_encoder_Root$RootElement__

#pragma interface

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

class gnu::java::beans::encoder::Root$RootElement : public ::gnu::java::beans::encoder::elements::Element
{

public: // actually package-private
  Root$RootElement();
public:
  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_Root$RootElement__
