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

#ifndef __java_security_GeneralSecurityException__
#define __java_security_GeneralSecurityException__

#pragma interface

#include <java/lang/Exception.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
        class GeneralSecurityException;
    }
  }
}

class java::security::GeneralSecurityException : public ::java::lang::Exception
{

public:
  GeneralSecurityException();
  GeneralSecurityException(::java::lang::String *);
  GeneralSecurityException(::java::lang::String *, ::java::lang::Throwable *);
  GeneralSecurityException(::java::lang::Throwable *);
private:
  static const jlong serialVersionUID = 894798122053539237LL;
public:
  static ::java::lang::Class class$;
};

#endif // __java_security_GeneralSecurityException__
