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

#ifndef __gnu_gcj_runtime_ExtensionClassLoader__
#define __gnu_gcj_runtime_ExtensionClassLoader__

#pragma interface

#include <gnu/gcj/runtime/HelperClassLoader.h>
extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
      namespace runtime
      {
          class ExtensionClassLoader;
          class SystemClassLoader;
      }
    }
  }
}

class gnu::gcj::runtime::ExtensionClassLoader : public ::gnu::gcj::runtime::HelperClassLoader
{

  ExtensionClassLoader();
  void init();
public: // actually package-private
  static void initialize();
  static ::gnu::gcj::runtime::ExtensionClassLoader * instance;
  static ::gnu::gcj::runtime::SystemClassLoader * system_instance;
public:
  static ::java::lang::Class class$;

  friend class ::java::lang::ClassLoader;
};

#endif // __gnu_gcj_runtime_ExtensionClassLoader__
