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

#ifndef __gnu_xml_dom_html2_DomHTMLFrameSetElement__
#define __gnu_xml_dom_html2_DomHTMLFrameSetElement__

#pragma interface

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

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

public: // actually protected
  DomHTMLFrameSetElement(::gnu::xml::dom::html2::DomHTMLDocument *, ::java::lang::String *, ::java::lang::String *);
public:
  virtual ::java::lang::String * getCols();
  virtual void setCols(::java::lang::String *);
  virtual ::java::lang::String * getRows();
  virtual void setRows(::java::lang::String *);
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_dom_html2_DomHTMLFrameSetElement__
