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

#ifndef __java_lang_reflect_Constructor__
#define __java_lang_reflect_Constructor__

#pragma interface

#include <java/lang/reflect/AccessibleObject.h>
#include <gcj/array.h>


jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);

class java::lang::reflect::Constructor : public ::java::lang::reflect::AccessibleObject
{

  Constructor();
public:
  ::java::lang::Class * getDeclaringClass();
  ::java::lang::String * getName();
private:
  jint getModifiersInternal();
public:
  jint getModifiers();
  jboolean isSynthetic();
  jboolean isVarArgs();
  JArray< ::java::lang::Class * > * getParameterTypes();
  JArray< ::java::lang::Class * > * getExceptionTypes();
  jboolean equals(::java::lang::Object *);
  jint hashCode();
  ::java::lang::String * toString();
public: // actually package-private
  static void addTypeParameters(::java::lang::StringBuilder *, JArray< ::java::lang::reflect::TypeVariable * > *);
public:
  ::java::lang::String * toGenericString();
  ::java::lang::Object * newInstance(JArray< ::java::lang::Object * > *);
  JArray< ::java::lang::reflect::TypeVariable * > * getTypeParameters();
private:
  ::java::lang::String * getSignature();
public:
  JArray< ::java::lang::reflect::Type * > * getGenericExceptionTypes();
  JArray< ::java::lang::reflect::Type * > * getGenericParameterTypes();
  ::java::lang::annotation::Annotation * getAnnotation(::java::lang::Class *);
  JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotations();
  JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotations();
private:
  JArray< ::java::lang::annotation::Annotation * > * getDeclaredAnnotationsInternal();
  JArray< JArray< ::java::lang::annotation::Annotation * > * > * getParameterAnnotationsInternal();
  void getType();
  static const jint CONSTRUCTOR_MODIFIERS = 7;
  ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::reflect::AccessibleObject)))) declaringClass;
  JArray< ::java::lang::Class * > * exception_types;
  JArray< ::java::lang::Class * > * parameter_types;
  jint offset;
public:
  static ::java::lang::Class class$;

  friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);
  friend jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
  friend class java::lang::Class;
};

#endif // __java_lang_reflect_Constructor__
