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

#ifndef __java_beans_beancontext_BeanContextServicesSupport__
#define __java_beans_beancontext_BeanContextServicesSupport__

#pragma interface

#include <java/beans/beancontext/BeanContextSupport.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
      namespace beancontext
      {
          class BeanContextChild;
          class BeanContextServiceAvailableEvent;
          class BeanContextServiceProvider;
          class BeanContextServiceRevokedEvent;
          class BeanContextServiceRevokedListener;
          class BeanContextServices;
          class BeanContextServicesListener;
          class BeanContextServicesSupport;
          class BeanContextServicesSupport$BCSSProxyServiceProvider;
          class BeanContextServicesSupport$BCSSServiceProvider;
          class BeanContextSupport$BCSChild;
      }
    }
  }
}

class java::beans::beancontext::BeanContextServicesSupport : public ::java::beans::beancontext::BeanContextSupport
{

public:
  BeanContextServicesSupport();
  BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *);
  BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *);
  BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *, jboolean);
  BeanContextServicesSupport(::java::beans::beancontext::BeanContextServices *, ::java::util::Locale *, jboolean, jboolean);
  virtual void addBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *);
  virtual jboolean addService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *);
public: // actually protected
  virtual jboolean addService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, jboolean);
  virtual void bcsPreDeserializationHook(::java::io::ObjectInputStream *);
  virtual void bcsPreSerializationHook(::java::io::ObjectOutputStream *);
  virtual void childJustRemovedHook(::java::lang::Object *, ::java::beans::beancontext::BeanContextSupport$BCSChild *);
  virtual ::java::beans::beancontext::BeanContextSupport$BCSChild * createBCSChild(::java::lang::Object *, ::java::lang::Object *);
  virtual ::java::beans::beancontext::BeanContextServicesSupport$BCSSServiceProvider * createBCSSServiceProvider(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *);
  virtual void fireServiceAdded(::java::beans::beancontext::BeanContextServiceAvailableEvent *);
  virtual void fireServiceAdded(::java::lang::Class *);
  virtual void fireServiceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
  virtual void fireServiceRevoked(::java::lang::Class *, jboolean);
public:
  virtual ::java::beans::beancontext::BeanContextServices * getBeanContextServicesPeer();
public: // actually protected
  static ::java::beans::beancontext::BeanContextServicesListener * getChildBeanContextServicesListener(::java::lang::Object *);
public:
  virtual ::java::util::Iterator * getCurrentServiceClasses();
  virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::lang::Class *);
  virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *, ::java::beans::beancontext::BeanContextServiceRevokedListener *);
  virtual jboolean hasService(::java::lang::Class *);
  virtual void initialize();
public: // actually protected
  virtual void initializeBeanContextResources();
  virtual void releaseBeanContextResources();
public:
  virtual void releaseService(::java::beans::beancontext::BeanContextChild *, ::java::lang::Object *, ::java::lang::Object *);
  virtual void removeBeanContextServicesListener(::java::beans::beancontext::BeanContextServicesListener *);
  virtual void revokeService(::java::lang::Class *, ::java::beans::beancontext::BeanContextServiceProvider *, jboolean);
  virtual void serviceAvailable(::java::beans::beancontext::BeanContextServiceAvailableEvent *);
  virtual void serviceRevoked(::java::beans::beancontext::BeanContextServiceRevokedEvent *);
private:
  static const jlong serialVersionUID = -8494482757288719206LL;
public: // actually protected
  ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextSupport)))) bcsListeners;
  ::java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider * proxy;
  jint serializable;
  ::java::util::HashMap * services;
private:
  ::java::util::HashMap * serviceUsers;
  ::java::util::HashMap * serviceRequests;
  ::java::util::HashMap * serviceLeases;
public:
  static ::java::lang::Class class$;
};

#endif // __java_beans_beancontext_BeanContextServicesSupport__
