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

#ifndef __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__
#define __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
        namespace bootstrap
        {
            class DOMImplementationRegistry$2;
        }
      }
    }
  }
}

class org::w3c::dom::bootstrap::DOMImplementationRegistry$2 : public ::java::lang::Object
{

public: // actually package-private
  DOMImplementationRegistry$2();
public:
  ::java::lang::Object * run();
  static ::java::lang::Class class$;
};

#endif // __org_w3c_dom_bootstrap_DOMImplementationRegistry$2__
