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

#ifndef __javax_management_MBeanServerInvocationHandler__
#define __javax_management_MBeanServerInvocationHandler__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class MBeanServerConnection;
        class MBeanServerInvocationHandler;
        class ObjectName;
    }
  }
}

class javax::management::MBeanServerInvocationHandler : public ::java::lang::Object
{

public:
  MBeanServerInvocationHandler(::javax::management::MBeanServerConnection *, ::javax::management::ObjectName *);
  MBeanServerInvocationHandler(::javax::management::MBeanServerConnection *, ::javax::management::ObjectName *, jboolean);
  virtual ::javax::management::MBeanServerConnection * getMBeanServerConnection();
  virtual ::javax::management::ObjectName * getObjectName();
  virtual ::java::lang::Object * invoke(::java::lang::Object *, ::java::lang::reflect::Method *, JArray< ::java::lang::Object * > *);
  virtual jboolean isMXBean();
  static ::java::lang::Object * newProxyInstance(::javax::management::MBeanServerConnection *, ::javax::management::ObjectName *, ::java::lang::Class *, jboolean);
private:
  jboolean inInterface(::java::lang::String *, ::java::lang::Class *, JArray< ::java::lang::Class * > *);
  ::javax::management::MBeanServerConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) conn;
  ::javax::management::ObjectName * name;
  jboolean mxBean;
  ::java::lang::Class * iface;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_MBeanServerInvocationHandler__