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

#ifndef __javax_naming_OperationNotSupportedException__
#define __javax_naming_OperationNotSupportedException__

#pragma interface

#include <javax/naming/NamingException.h>
extern "Java"
{
  namespace javax
  {
    namespace naming
    {
        class OperationNotSupportedException;
    }
  }
}

class javax::naming::OperationNotSupportedException : public ::javax::naming::NamingException
{

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

#endif // __javax_naming_OperationNotSupportedException__
