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

#ifndef __javax_imageio_metadata_IIOMetadataNode__
#define __javax_imageio_metadata_IIOMetadataNode__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace imageio
    {
      namespace metadata
      {
          class IIOMetadataNode;
          class IIOMetadataNode$IIONodeList;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Attr;
          class Document;
          class NamedNodeMap;
          class Node;
          class NodeList;
          class TypeInfo;
          class UserDataHandler;
      }
    }
  }
}

class javax::imageio::metadata::IIOMetadataNode : public ::java::lang::Object
{

public:
  IIOMetadataNode();
  IIOMetadataNode(::java::lang::String *);
  virtual ::java::lang::Object * getUserObject();
  virtual void setUserObject(::java::lang::Object *);
  virtual jshort compareDocumentPosition(::org::w3c::dom::Node *);
  virtual ::java::lang::String * getAttribute(::java::lang::String *);
  virtual ::org::w3c::dom::Attr * getAttributeNode(::java::lang::String *);
  virtual ::org::w3c::dom::Attr * getAttributeNodeNS(::java::lang::String *, ::java::lang::String *);
  virtual ::java::lang::String * getAttributeNS(::java::lang::String *, ::java::lang::String *);
  virtual ::java::lang::String * getBaseURI();
private:
  void getElementsRecurse(::javax::imageio::metadata::IIOMetadataNode$IIONodeList *, ::java::lang::String *);
public:
  virtual ::org::w3c::dom::NodeList * getElementsByTagName(::java::lang::String *);
  virtual ::org::w3c::dom::NodeList * getElementsByTagNameNS(::java::lang::String *, ::java::lang::String *);
  virtual ::java::lang::String * getTagName();
  virtual jboolean hasAttribute(::java::lang::String *);
  virtual jboolean hasAttributeNS(::java::lang::String *, ::java::lang::String *);
  virtual void removeAttribute(::java::lang::String *);
  virtual ::org::w3c::dom::Attr * removeAttributeNode(::org::w3c::dom::Attr *);
  virtual void removeAttributeNS(::java::lang::String *, ::java::lang::String *);
  virtual void setAttribute(::java::lang::String *, ::java::lang::String *);
  virtual ::org::w3c::dom::Attr * setAttributeNode(::org::w3c::dom::Attr *);
  virtual ::org::w3c::dom::Attr * setAttributeNodeNS(::org::w3c::dom::Attr *);
  virtual void setAttributeNS(::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  virtual jint getLength();
  virtual ::org::w3c::dom::Node * item(jint);
  virtual ::org::w3c::dom::Node * appendChild(::org::w3c::dom::Node *);
  virtual ::org::w3c::dom::Node * cloneNode(jboolean);
  virtual ::org::w3c::dom::NamedNodeMap * getAttributes();
  virtual ::org::w3c::dom::NodeList * getChildNodes();
  virtual ::java::lang::Object * getFeature(::java::lang::String *, ::java::lang::String *);
  virtual ::org::w3c::dom::Node * getFirstChild();
  virtual ::org::w3c::dom::Node * getLastChild();
  virtual ::java::lang::String * getLocalName();
  virtual ::java::lang::String * getNamespaceURI();
  virtual ::org::w3c::dom::Node * getNextSibling();
  virtual ::java::lang::String * getNodeName();
  virtual jshort getNodeType();
  virtual ::java::lang::String * getNodeValue();
  virtual ::org::w3c::dom::Document * getOwnerDocument();
  virtual ::org::w3c::dom::Node * getParentNode();
  virtual ::java::lang::String * getPrefix();
  virtual ::org::w3c::dom::Node * getPreviousSibling();
  virtual ::org::w3c::dom::TypeInfo * getSchemaTypeInfo();
  virtual ::java::lang::String * getTextContent();
  virtual ::java::lang::Object * getUserData(::java::lang::String *);
  virtual jboolean hasAttributes();
  virtual jboolean hasChildNodes();
  virtual ::org::w3c::dom::Node * insertBefore(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
  virtual jboolean isDefaultNamespace(::java::lang::String *);
  virtual jboolean isEqualNode(::org::w3c::dom::Node *);
  virtual jboolean isSameNode(::org::w3c::dom::Node *);
  virtual jboolean isSupported(::java::lang::String *, ::java::lang::String *);
  virtual ::java::lang::String * lookupNamespaceURI(::java::lang::String *);
  virtual ::java::lang::String * lookupPrefix(::java::lang::String *);
  virtual void normalize();
  virtual ::org::w3c::dom::Node * removeChild(::org::w3c::dom::Node *);
  virtual ::org::w3c::dom::Node * replaceChild(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
  virtual void setIdAttribute(::java::lang::String *, jboolean);
  virtual void setIdAttributeNode(::org::w3c::dom::Attr *, jboolean);
  virtual void setIdAttributeNS(::java::lang::String *, ::java::lang::String *, jboolean);
  virtual void setNodeValue(::java::lang::String *);
  virtual void setPrefix(::java::lang::String *);
  virtual void setTextContent(::java::lang::String *);
  virtual ::java::lang::Object * setUserData(::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::UserDataHandler *);
private:
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
  ::java::util::HashMap * attrs;
  ::java::util::List * children;
  ::javax::imageio::metadata::IIOMetadataNode * parent;
  ::java::lang::Object * obj;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_imageio_metadata_IIOMetadataNode__
