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

#ifndef __java_beans_beancontext_BeanContextServicesSupport$Request__
#define __java_beans_beancontext_BeanContextServicesSupport$Request__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
      namespace beancontext
      {
          class BeanContextServicesSupport$Request;
      }
    }
  }
}

class java::beans::beancontext::BeanContextServicesSupport$Request : public ::java::lang::Object
{

public:
  BeanContextServicesSupport$Request(::java::lang::Object *);
  virtual jboolean equals(::java::lang::Object *);
  virtual ::java::lang::Object * getRequestor();
private:
  ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) requestor;
public:
  static ::java::lang::Class class$;
};

#endif // __java_beans_beancontext_BeanContextServicesSupport$Request__
