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

#ifndef __java_lang_ClassLoader$AnnotationsKey__
#define __java_lang_ClassLoader$AnnotationsKey__

#pragma interface

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


class java::lang::ClassLoader$AnnotationsKey : public ::java::lang::Object
{

public:
  ClassLoader$AnnotationsKey(::java::lang::Class *, jint, jint, jint);
  jboolean equals(::java::lang::Object *);
  jint hashCode();
public: // actually package-private
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) member_type;
  jint member_index;
  jint kind_req;
  ::java::lang::Class * declaringClass;
  jint hashCode__;
public:
  static JArray< ::java::lang::annotation::Annotation * > * NIL;
  static ::java::lang::Class class$;
};

#endif // __java_lang_ClassLoader$AnnotationsKey__
