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

#ifndef __org_w3c_dom_DOMConfiguration__
#define __org_w3c_dom_DOMConfiguration__

#pragma interface

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

class org::w3c::dom::DOMConfiguration : public ::java::lang::Object
{

public:
  virtual void setParameter(::java::lang::String *, ::java::lang::Object *) = 0;
  virtual ::java::lang::Object * getParameter(::java::lang::String *) = 0;
  virtual jboolean canSetParameter(::java::lang::String *, ::java::lang::Object *) = 0;
  virtual ::org::w3c::dom::DOMStringList * getParameterNames() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_w3c_dom_DOMConfiguration__
