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

#ifndef __java_net_URLClassLoader$2__
#define __java_net_URLClassLoader$2__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class URLClassLoader;
        class URLClassLoader$2;
    }
  }
}

class java::net::URLClassLoader$2 : public ::java::lang::Object
{

public: // actually package-private
  URLClassLoader$2(::java::lang::ClassLoader *, ::java::lang::Object *);
public:
  ::java::net::URLClassLoader * URLClassLoader$2$run();
  ::java::lang::Object * run();
private:
  ::java::lang::ClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$parent;
  ::java::lang::Object * val$securityContext;
public:
  static ::java::lang::Class class$;
};

#endif // __java_net_URLClassLoader$2__
