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

#ifndef __java_rmi_server_ServerCloneException__
#define __java_rmi_server_ServerCloneException__

#pragma interface

#include <java/lang/CloneNotSupportedException.h>
extern "Java"
{
  namespace java
  {
    namespace rmi
    {
      namespace server
      {
          class ServerCloneException;
      }
    }
  }
}

class java::rmi::server::ServerCloneException : public ::java::lang::CloneNotSupportedException
{

public:
  ServerCloneException(::java::lang::String *);
  ServerCloneException(::java::lang::String *, ::java::lang::Exception *);
  virtual ::java::lang::String * getMessage();
  virtual ::java::lang::Throwable * getCause();
private:
  static const jlong serialVersionUID = 6617456357664815945LL;
public:
  ::java::lang::Exception * __attribute__((aligned(__alignof__( ::java::lang::CloneNotSupportedException)))) detail;
  static ::java::lang::Class class$;
};

#endif // __java_rmi_server_ServerCloneException__
