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

#ifndef __javax_management_MBeanConstructorInfo__
#define __javax_management_MBeanConstructorInfo__

#pragma interface

#include <javax/management/MBeanFeatureInfo.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class MBeanConstructorInfo;
        class MBeanParameterInfo;
    }
  }
}

class javax::management::MBeanConstructorInfo : public ::javax::management::MBeanFeatureInfo
{

public:
  MBeanConstructorInfo(::java::lang::String *, ::java::lang::reflect::Constructor *);
  MBeanConstructorInfo(::java::lang::String *, ::java::lang::String *, JArray< ::javax::management::MBeanParameterInfo * > *);
  virtual ::java::lang::Object * clone();
  virtual jboolean equals(::java::lang::Object *);
  virtual JArray< ::javax::management::MBeanParameterInfo * > * getSignature();
  virtual jint hashCode();
  virtual ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = 4433990064191844427LL;
  JArray< ::javax::management::MBeanParameterInfo * > * __attribute__((aligned(__alignof__( ::javax::management::MBeanFeatureInfo)))) signature;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_MBeanConstructorInfo__
