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

#ifndef __javax_swing_text_html_HTMLDocument$Iterator__
#define __javax_swing_text_html_HTMLDocument$Iterator__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class AttributeSet;
        namespace html
        {
            class HTML$Tag;
            class HTMLDocument$Iterator;
        }
      }
    }
  }
}

class javax::swing::text::html::HTMLDocument$Iterator : public ::java::lang::Object
{

public:
  HTMLDocument$Iterator();
  virtual ::javax::swing::text::AttributeSet * getAttributes() = 0;
  virtual jint getEndOffset() = 0;
  virtual jint getStartOffset() = 0;
  virtual void next() = 0;
  virtual jboolean isValid() = 0;
  virtual ::javax::swing::text::html::HTML$Tag * getTag() = 0;
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_html_HTMLDocument$Iterator__
