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

#ifndef __gnu_java_beans_encoder_elements_StringReference__
#define __gnu_java_beans_encoder_elements_StringReference__

#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 StringReference;
          }
        }
      }
    }
  }
}

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

public:
  StringReference(::java::lang::String *);
  virtual void writeStart(::gnu::java::beans::encoder::Writer *);
  virtual void writeEnd(::gnu::java::beans::encoder::Writer *);
public: // actually package-private
  ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::beans::encoder::elements::Element)))) string;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_beans_encoder_elements_StringReference__
