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

#ifndef __javax_sql_ConnectionEvent__
#define __javax_sql_ConnectionEvent__

#pragma interface

#include <java/util/EventObject.h>
extern "Java"
{
  namespace java
  {
    namespace sql
    {
        class SQLException;
    }
  }
  namespace javax
  {
    namespace sql
    {
        class ConnectionEvent;
        class PooledConnection;
    }
  }
}

class javax::sql::ConnectionEvent : public ::java::util::EventObject
{

public:
  ConnectionEvent(::javax::sql::PooledConnection *);
  ConnectionEvent(::javax::sql::PooledConnection *, ::java::sql::SQLException *);
  virtual ::java::sql::SQLException * getSQLException();
private:
  static const jlong serialVersionUID = -4843217645290030002LL;
  ::java::sql::SQLException * __attribute__((aligned(__alignof__( ::java::util::EventObject)))) ex;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_sql_ConnectionEvent__
