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

#ifndef __javax_swing_text_html_HTMLDocument$HTMLReader__
#define __javax_swing_text_html_HTMLDocument$HTMLReader__

#pragma interface

#include <javax/swing/text/html/HTMLEditorKit$ParserCallback.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class MutableAttributeSet;
        namespace html
        {
            class HTML$Tag;
            class HTMLDocument;
            class HTMLDocument$HTMLReader;
            class HTMLDocument$HTMLReader$TagAction;
            class Option;
            class ResetablePlainDocument;
        }
      }
    }
  }
}

class javax::swing::text::html::HTMLDocument$HTMLReader : public ::javax::swing::text::html::HTMLEditorKit$ParserCallback
{

public:
  HTMLDocument$HTMLReader(::javax::swing::text::html::HTMLDocument *, jint);
  HTMLDocument$HTMLReader(::javax::swing::text::html::HTMLDocument *, jint, jint, jint, ::javax::swing::text::html::HTML$Tag *);
public: // actually package-private
  virtual void initTags();
public: // actually protected
  virtual void pushCharacterStyle();
  virtual void popCharacterStyle();
  virtual void registerTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::html::HTMLDocument$HTMLReader$TagAction *);
public:
  virtual void flush();
private:
  void flushImpl();
public:
  virtual void handleText(JArray< jchar > *, jint);
private:
  jboolean shouldInsert();
public:
  virtual void handleStartTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint);
  virtual void handleComment(JArray< jchar > *, jint);
  virtual void handleEndTag(::javax::swing::text::html::HTML$Tag *, jint);
  virtual void handleSimpleTag(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *, jint);
  virtual void handleEndOfLineString(::java::lang::String *);
public: // actually protected
  virtual void textAreaContent(JArray< jchar > *);
  virtual void preContent(JArray< jchar > *);
  virtual void blockOpen(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *);
private:
  jboolean inParagraph();
  jboolean inImpliedParagraph();
public: // actually protected
  virtual void blockClose(::javax::swing::text::html::HTML$Tag *);
  virtual void addContent(JArray< jchar > *, jint, jint);
  virtual void addContent(JArray< jchar > *, jint, jint, jboolean);
  virtual void addSpecialElement(::javax::swing::text::html::HTML$Tag *, ::javax::swing::text::MutableAttributeSet *);
public: // actually package-private
  static ::javax::swing::text::html::HTMLDocument * access$0(::javax::swing::text::html::HTMLDocument$HTMLReader *);
private:
  static const jint MAX_THRESHOLD = 10000;
  static const jint GROW_THRESHOLD = 5;
public: // actually protected
  ::javax::swing::text::MutableAttributeSet * __attribute__((aligned(__alignof__( ::javax::swing::text::html::HTMLEditorKit$ParserCallback)))) charAttr;
  ::java::util::Vector * parseBuffer;
private:
  ::java::util::Stack * parseStack;
public: // actually package-private
  ::java::util::Stack * charAttrStack;
  ::java::util::HashMap * tagToAction;
  jboolean endHTMLEncountered;
  jint popDepth;
  jint pushDepth;
  jint offset;
  ::javax::swing::text::html::HTML$Tag * insertTag;
  jboolean insertTagEncountered;
  jboolean debug;
  jboolean inPreTag;
  jboolean inStyleTag;
  jboolean inTextArea;
  ::java::util::ArrayList * styles;
  ::javax::swing::text::html::ResetablePlainDocument * textAreaDocument;
  ::java::lang::Object * selectModel;
  ::javax::swing::text::html::Option * option;
  jint numOptions;
  ::java::util::HashMap * buttonGroups;
private:
  jint threshold;
public: // actually package-private
  ::javax::swing::text::html::HTMLDocument * this$0;
  static jboolean $assertionsDisabled;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_html_HTMLDocument$HTMLReader__
