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

#ifndef __org_omg_CosNaming_NamingContextPackage_NotEmpty__
#define __org_omg_CosNaming_NamingContextPackage_NotEmpty__

#pragma interface

#include <org/omg/CORBA/UserException.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CosNaming
      {
        namespace NamingContextPackage
        {
            class NotEmpty;
        }
      }
    }
  }
}

class org::omg::CosNaming::NamingContextPackage::NotEmpty : public ::org::omg::CORBA::UserException
{

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

#endif // __org_omg_CosNaming_NamingContextPackage_NotEmpty__
