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

#ifndef __gnu_xml_stream_XMLParser$ContentParticle__
#define __gnu_xml_stream_XMLParser$ContentParticle__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace stream
      {
          class XMLParser;
          class XMLParser$ContentParticle;
      }
    }
  }
}

class gnu::xml::stream::XMLParser$ContentParticle : public ::java::lang::Object
{

public: // actually package-private
  XMLParser$ContentParticle(::gnu::xml::stream::XMLParser *);
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) min;
  jint max;
  ::java::lang::Object * content;
  ::gnu::xml::stream::XMLParser * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_stream_XMLParser$ContentParticle__
