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

#ifndef __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__
#define __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace swing
      {
        namespace text
        {
          namespace html
          {
            namespace parser
            {
                class SmallHtmlAttributeSet;
                class SmallHtmlAttributeSet$1;
            }
          }
        }
      }
    }
  }
}

class gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet$1 : public ::java::lang::Object
{

public: // actually package-private
  SmallHtmlAttributeSet$1(::gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet *);
public:
  virtual jboolean hasMoreElements();
  virtual ::java::lang::Object * nextElement();
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
  ::gnu::javax::swing::text::html::parser::SmallHtmlAttributeSet * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_swing_text_html_parser_SmallHtmlAttributeSet$1__
