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

#ifndef __java_rmi_activation_UnknownObjectException__
#define __java_rmi_activation_UnknownObjectException__

#pragma interface

#include <java/rmi/activation/ActivationException.h>
extern "Java"
{
  namespace java
  {
    namespace rmi
    {
      namespace activation
      {
          class UnknownObjectException;
      }
    }
  }
}

class java::rmi::activation::UnknownObjectException : public ::java::rmi::activation::ActivationException
{

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

#endif // __java_rmi_activation_UnknownObjectException__
