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

#ifndef __javax_management_MBeanServerDelegateMBean__
#define __javax_management_MBeanServerDelegateMBean__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class MBeanServerDelegateMBean;
    }
  }
}

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

public:
  virtual ::java::lang::String * getImplementationName() = 0;
  virtual ::java::lang::String * getImplementationVendor() = 0;
  virtual ::java::lang::String * getImplementationVersion() = 0;
  virtual ::java::lang::String * getMBeanServerId() = 0;
  virtual ::java::lang::String * getSpecificationName() = 0;
  virtual ::java::lang::String * getSpecificationVendor() = 0;
  virtual ::java::lang::String * getSpecificationVersion() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_management_MBeanServerDelegateMBean__
