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

#ifndef __gnu_xml_dom_html2_DomHTMLFieldSetElement__
#define __gnu_xml_dom_html2_DomHTMLFieldSetElement__

#pragma interface

#include <gnu/xml/dom/html2/DomHTMLElement.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace dom
      {
        namespace html2
        {
            class DomHTMLDocument;
            class DomHTMLFieldSetElement;
        }
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
        namespace html2
        {
            class HTMLFormElement;
        }
      }
    }
  }
}

class gnu::xml::dom::html2::DomHTMLFieldSetElement : public ::gnu::xml::dom::html2::DomHTMLElement
{

public: // actually protected
  DomHTMLFieldSetElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *);
public:
  virtual ::org::w3c::dom::html2::HTMLFormElement * getForm();
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_dom_html2_DomHTMLFieldSetElement__
