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

#ifndef __java_net_URLClassLoader$1__
#define __java_net_URLClassLoader$1__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace net
    {
        class URLClassLoader;
        class URLClassLoader$1;
    }
    namespace security
    {
        class CodeSource;
    }
  }
}

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

public: // actually package-private
  URLClassLoader$1(::java::net::URLClassLoader *, ::java::lang::String *, JArray< jbyte > *, ::java::security::CodeSource *);
public:
  virtual ::java::lang::Class * URLClassLoader$1$run();
  virtual ::java::lang::Object * run();
public: // actually package-private
  ::java::net::URLClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
private:
  ::java::lang::String * val$className;
  JArray< jbyte > * val$classData;
  ::java::security::CodeSource * val$source;
public:
  static ::java::lang::Class class$;
};

#endif // __java_net_URLClassLoader$1__
