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

#ifndef __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__
#define __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__

#pragma interface

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

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

public: // actually package-private
  GnomeProcessingInstruction(::java::lang::Object *);
public:
  virtual ::java::lang::String * getTarget();
  virtual ::java::lang::String * getData();
  virtual void setData(::java::lang::String *);
  virtual ::java::lang::String * toString();
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__
