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

#ifndef __gnu_javax_management_Server__
#define __gnu_javax_management_Server__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace management
      {
          class Server;
      }
    }
  }
  namespace javax
  {
    namespace management
    {
        class Attribute;
        class AttributeList;
        class MBeanInfo;
        class MBeanServer;
        class MBeanServerDelegate;
        class NotificationFilter;
        class NotificationListener;
        class ObjectInstance;
        class ObjectName;
        class QueryExp;
      namespace loading
      {
          class ClassLoaderRepository;
      }
    }
  }
}

class gnu::javax::management::Server : public ::java::lang::Object
{

public:
  Server(::java::lang::String *, ::javax::management::MBeanServer *, ::javax::management::MBeanServerDelegate *);
private:
  void checkSecurity(::javax::management::ObjectName *, ::java::lang::String *, ::java::lang::String *);
  ::java::lang::Object * getBean(::javax::management::ObjectName *);
public:
  virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
  virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *);
  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *);
  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *);
  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *);
  virtual ::java::io::ObjectInputStream * deserialize(::javax::management::ObjectName *, JArray< jbyte > *);
  virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, JArray< jbyte > *);
  virtual ::java::io::ObjectInputStream * deserialize(::java::lang::String *, ::javax::management::ObjectName *, JArray< jbyte > *);
  virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *);
  virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *);
  virtual ::java::lang::ClassLoader * getClassLoader(::javax::management::ObjectName *);
  virtual ::java::lang::ClassLoader * getClassLoaderFor(::javax::management::ObjectName *);
  virtual ::javax::management::loading::ClassLoaderRepository * getClassLoaderRepository();
  virtual ::java::lang::String * getDefaultDomain();
  virtual JArray< ::java::lang::String * > * getDomains();
  virtual ::java::lang::Integer * getMBeanCount();
  virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *);
  virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *);
  virtual ::java::lang::Object * instantiate(::java::lang::String *);
  virtual ::java::lang::Object * instantiate(::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *);
  virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *);
  virtual ::java::lang::Object * instantiate(::java::lang::String *, ::javax::management::ObjectName *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *);
  virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, JArray< ::java::lang::Object * > *, JArray< ::java::lang::String * > *);
  virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *);
  virtual jboolean isRegistered(::javax::management::ObjectName *);
  virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::javax::management::QueryExp *);
  virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::javax::management::QueryExp *);
  virtual ::javax::management::ObjectInstance * registerMBean(::java::lang::Object *, ::javax::management::ObjectName *);
  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *);
  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::NotificationListener *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *);
  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::management::NotificationFilter *, ::java::lang::Object *);
  virtual void setAttribute(::javax::management::ObjectName *, ::javax::management::Attribute *);
  virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::javax::management::AttributeList *);
  virtual void unregisterMBean(::javax::management::ObjectName *);
private:
  void notify(::javax::management::ObjectName *, ::java::lang::String *);
  static ::javax::management::ObjectName * DELEGATE_NAME;
  ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans;
  ::java::lang::String * defaultDomain;
  ::javax::management::MBeanServer * outer;
  ::javax::management::loading::ClassLoaderRepository * repository;
  ::java::util::Map * listeners;
  ::javax::management::MBeanServerDelegate * delegate;
  static ::java::util::concurrent::atomic::AtomicLong * sequenceNumber;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_management_Server__
