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

#ifndef __org_w3c_dom_html2_HTMLOptionsCollection__
#define __org_w3c_dom_html2_HTMLOptionsCollection__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Node;
        namespace html2
        {
            class HTMLOptionsCollection;
        }
      }
    }
  }
}

class org::w3c::dom::html2::HTMLOptionsCollection : public ::java::lang::Object
{

public:
  virtual jint getLength() = 0;
  virtual void setLength(jint) = 0;
  virtual ::org::w3c::dom::Node * item(jint) = 0;
  virtual ::org::w3c::dom::Node * namedItem(::java::lang::String *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_w3c_dom_html2_HTMLOptionsCollection__
