
// 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:
  jboolean hasMoreElements();
  ::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__
