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

#ifndef __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__
#define __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__

#pragma interface

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

class java::beans::beancontext::BeanContextServicesSupport$ServiceLease : public ::java::beans::beancontext::BeanContextServicesSupport$Request
{

public:
  BeanContextServicesSupport$ServiceLease(::java::lang::Object *, ::java::lang::Object *);
  virtual jboolean equals(::java::lang::Object *);
  virtual ::java::lang::Object * getService();
private:
  ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::beans::beancontext::BeanContextServicesSupport$Request)))) service;
public:
  static ::java::lang::Class class$;
};

#endif // __java_beans_beancontext_BeanContextServicesSupport$ServiceLease__
