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

#ifndef __gnu_xml_dom_DomCharacterData$EmptyNodeList__
#define __gnu_xml_dom_DomCharacterData$EmptyNodeList__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace dom
      {
          class DomCharacterData$EmptyNodeList;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Node;
      }
    }
  }
}

class gnu::xml::dom::DomCharacterData$EmptyNodeList : public ::java::lang::Object
{

public: // actually package-private
  DomCharacterData$EmptyNodeList();
public:
  virtual jint getLength();
  virtual ::org::w3c::dom::Node * item(jint);
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_dom_DomCharacterData$EmptyNodeList__
