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

#ifndef __javax_swing_text_html_HTMLDocument$LeafIterator__
#define __javax_swing_text_html_HTMLDocument$LeafIterator__

#pragma interface

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

class javax::swing::text::html::HTMLDocument$LeafIterator : public ::javax::swing::text::html::HTMLDocument$Iterator
{

public:
  HTMLDocument$LeafIterator(::javax::swing::text::html::HTMLDocument *, ::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTMLDocument *);
  virtual ::javax::swing::text::AttributeSet * getAttributes();
  virtual jint getEndOffset();
  virtual jint getStartOffset();
  virtual void next();
  virtual jboolean isValid();
  virtual ::javax::swing::text::html::HTML$Tag * getTag();
public: // actually package-private
  ::javax::swing::text::html::HTML$Tag * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLDocument$Iterator)))) tag;
  ::javax::swing::text::html::HTMLDocument * doc;
  ::javax::swing::text::ElementIterator * it;
  ::javax::swing::text::html::HTMLDocument * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_html_HTMLDocument$LeafIterator__
