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

#ifndef __javax_management_RuntimeMBeanException__
#define __javax_management_RuntimeMBeanException__

#pragma interface

#include <javax/management/JMRuntimeException.h>
extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class RuntimeMBeanException;
    }
  }
}

class javax::management::RuntimeMBeanException : public ::javax::management::JMRuntimeException
{

public:
  RuntimeMBeanException(::java::lang::RuntimeException *);
  RuntimeMBeanException(::java::lang::RuntimeException *, ::java::lang::String *);
  virtual ::java::lang::Throwable * getCause();
  virtual ::java::lang::RuntimeException * getTargetException();
private:
  static const jlong serialVersionUID = 5274912751982730171LL;
  ::java::lang::RuntimeException * __attribute__((aligned(__alignof__( ::javax::management::JMRuntimeException)))) runtimeException;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_RuntimeMBeanException__
