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

#ifndef __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__
#define __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__

#pragma interface

#include <org/omg/CORBA/UserException.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace PortableServer
      {
        namespace POAPackage
        {
            class AdapterAlreadyExists;
        }
      }
    }
  }
}

class org::omg::PortableServer::POAPackage::AdapterAlreadyExists : public ::org::omg::CORBA::UserException
{

public:
  AdapterAlreadyExists();
  AdapterAlreadyExists(::java::lang::String *);
private:
  static const jlong serialVersionUID = -2678288222917790041LL;
public:
  static ::java::lang::Class class$;
};

#endif // __org_omg_PortableServer_POAPackage_AdapterAlreadyExists__
