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

#ifndef __gnu_xml_libxmlj_dom_GnomeEntity__
#define __gnu_xml_libxmlj_dom_GnomeEntity__

#pragma interface

#include <gnu/xml/libxmlj/dom/GnomeNode.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace libxmlj
      {
        namespace dom
        {
            class GnomeEntity;
        }
      }
    }
  }
}

class gnu::xml::libxmlj::dom::GnomeEntity : public ::gnu::xml::libxmlj::dom::GnomeNode
{

public: // actually package-private
  GnomeEntity(::java::lang::Object *);
public:
  virtual ::java::lang::String * getPublicId();
  virtual ::java::lang::String * getSystemId();
  virtual ::java::lang::String * getNotationName();
  virtual ::java::lang::String * getInputEncoding();
  virtual ::java::lang::String * getXmlEncoding();
  virtual ::java::lang::String * getXmlVersion();
  virtual ::java::lang::String * toString();
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_libxmlj_dom_GnomeEntity__
