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

#ifndef __gnu_java_rmi_server_CombinedClassLoader__
#define __gnu_java_rmi_server_CombinedClassLoader__

#pragma interface

#include <java/lang/ClassLoader.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace rmi
      {
        namespace server
        {
            class CombinedClassLoader;
        }
      }
    }
  }
  namespace java
  {
    namespace net
    {
        class URL;
    }
  }
}

class gnu::java::rmi::server::CombinedClassLoader : public ::java::lang::ClassLoader
{

public:
  CombinedClassLoader(::java::util::Collection *);
public: // actually protected
  virtual ::java::lang::Class * findClass(::java::lang::String *);
  virtual ::java::net::URL * findResource(::java::lang::String *);
  virtual ::java::util::Enumeration * findResources(::java::lang::String *);
public: // actually package-private
  JArray< ::java::lang::ClassLoader * > * __attribute__((aligned(__alignof__( ::java::lang::ClassLoader)))) loaders;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_rmi_server_CombinedClassLoader__
