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

#ifndef __org_omg_CORBA_OBJ_ADAPTER__
#define __org_omg_CORBA_OBJ_ADAPTER__

#pragma interface

#include <org/omg/CORBA/SystemException.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class CompletionStatus;
          class OBJ_ADAPTER;
      }
    }
  }
}

class org::omg::CORBA::OBJ_ADAPTER : public ::org::omg::CORBA::SystemException
{

public:
  OBJ_ADAPTER(::java::lang::String *);
  OBJ_ADAPTER();
  OBJ_ADAPTER(jint, ::org::omg::CORBA::CompletionStatus *);
  OBJ_ADAPTER(::java::lang::String *, jint, ::org::omg::CORBA::CompletionStatus *);
private:
  static const jlong serialVersionUID = -1516541344234786928LL;
public:
  static ::java::lang::Class class$;
};

#endif // __org_omg_CORBA_OBJ_ADAPTER__
