// 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 BeanContextServicesSupport;
        class BeanContextServiceRevokedListener;
        class BeanContextChild;
        class BeanContextServiceRevokedEvent;
        class BeanContextServiceAvailableEvent;
        class BeanContextServicesSupport$BCSSServiceProvider;
        class BeanContextSupport$BCSChild;
        class BeanContextServiceProvider;
        class BeanContextServicesListener;
        class BeanContextServices;
        class BeanContextServicesSupport$BCSSProxyServiceProvider;
      }
    }
  }
}

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 *);
  void fireServiceAdded (::java::beans::beancontext::BeanContextServiceAvailableEvent *);
  void fireServiceAdded (::java::lang::Class *);
  void fireServiceRevoked (::java::beans::beancontext::BeanContextServiceRevokedEvent *);
  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;

  friend class java_beans_beancontext_BeanContextServicesSupport$BCSSServiceProvider;
  friend class java_beans_beancontext_BeanContextServicesSupport$BCSSProxyServiceProvider;
  friend class java_beans_beancontext_BeanContextServicesSupport$BCSSChild;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_beans_beancontext_BeanContextServicesSupport__ */
