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

#ifndef __gnu_classpath_ServiceFactory__
#define __gnu_classpath_ServiceFactory__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace classpath
    {
        class ServiceFactory;
    }
  }
}

class gnu::classpath::ServiceFactory : public ::java::lang::Object
{

  ServiceFactory();
public:
  static ::java::util::Iterator * lookupProviders(::java::lang::Class *, ::java::lang::ClassLoader *);
  static ::java::util::Iterator * lookupProviders(::java::lang::Class *, ::java::lang::ClassLoader *, jboolean);
  static ::java::util::Iterator * lookupProviders(::java::lang::Class *);
public: // actually package-private
  static void log(::java::util::logging::Level *, ::java::lang::String *, ::java::lang::Object *, ::java::lang::Throwable *);
private:
  static ::java::util::logging::Logger * LOGGER;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_classpath_ServiceFactory__
