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

#ifndef __gnu_gcj_runtime_HelperClassLoader$1__
#define __gnu_gcj_runtime_HelperClassLoader$1__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
      namespace runtime
      {
          class HelperClassLoader;
          class HelperClassLoader$1;
      }
    }
  }
}

class gnu::gcj::runtime::HelperClassLoader$1 : public ::java::lang::Object
{

public: // actually package-private
  HelperClassLoader$1(::gnu::gcj::runtime::HelperClassLoader *);
public:
  virtual jboolean accept(::java::io::File *, ::java::lang::String *);
public: // actually package-private
  ::gnu::gcj::runtime::HelperClassLoader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_gcj_runtime_HelperClassLoader$1__
