1 /*
   2  * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 /*
  27  * Created on Apr 28, 2005
  28  */
  29 package javax.sql;
  30 
  31 import java.sql.PreparedStatement;
  32 import java.sql.SQLException;
  33 import java.util.EventObject;
  34 
  35 /**
  36  * A <code>StatementEvent</code> is sent to all <code>StatementEventListener</code>s which were
  37  * registered with a <code>PooledConnection</code>. This occurs when the driver determines that a
  38  * <code>PreparedStatement</code> that is associated with the <code>PooledConnection</code> has been closed or the driver determines
  39  * is invalid.
  40  * <p>
  41  * @since 1.6
  42  */
  43 public class StatementEvent extends EventObject {
  44 
  45         static final long serialVersionUID = -8089573731826608315L;
  46         private SQLException            exception;
  47         private PreparedStatement       statement;
  48 
  49         /**
  50          * Constructs a <code>StatementEvent</code> with the specified <code>PooledConnection</code> and
  51          * <code>PreparedStatement</code>.  The <code>SQLException</code> contained in the event defaults to
  52          * null.
  53          * <p>
  54          * @param con                   The <code>PooledConnection</code> that the closed or invalid
  55          * <code>PreparedStatement</code>is associated with.
  56          * @param statement             The <code>PreparedStatement</code> that is being closed or is invalid
  57          * <p>
  58          * @throws IllegalArgumentException if <code>con</code> is null.
  59          *
  60          * @since 1.6
  61          */
  62         public StatementEvent(PooledConnection con,
  63                                                   PreparedStatement statement) {
  64 
  65                 super(con);
  66 
  67                 this.statement = statement;
  68                 this.exception = null;
  69         }
  70 
  71         /**
  72          * Constructs a <code>StatementEvent</code> with the specified <code>PooledConnection</code>,
  73          * <code>PreparedStatement</code> and <code>SQLException</code>
  74          * <p>
  75          * @param con                   The <code>PooledConnection</code> that the closed or invalid <code>PreparedStatement</code>
  76          * is associated with.
  77          * @param statement             The <code>PreparedStatement</code> that is being closed or is invalid
  78          * @param exception             The <code>SQLException </code>the driver is about to throw to
  79          *                                              the application
  80          *
  81          * @throws IllegalArgumentException if <code>con</code> is null.
  82          * <p>
  83          * @since 1.6
  84          */
  85         public StatementEvent(PooledConnection con,
  86                                                   PreparedStatement statement,
  87                                                   SQLException exception) {
  88 
  89                 super(con);
  90 
  91                 this.statement = statement;
  92                 this.exception = exception;
  93         }
  94 
  95         /**
  96          * Returns the <code>PreparedStatement</code> that is being closed or is invalid
  97          * <p>
  98          * @return      The <code>PreparedStatement</code> that is being closed or is invalid
  99          * <p>
 100          * @since 1.6
 101          */
 102         public PreparedStatement getStatement() {
 103 
 104                 return this.statement;
 105         }
 106 
 107         /**
 108          * Returns the <code>SQLException</code> the driver is about to throw
 109          * <p>
 110          * @return      The <code>SQLException</code> the driver is about to throw
 111          * <p>
 112          * @since 1.6
 113          */
 114         public SQLException getSQLException() {
 115 
 116                 return this.exception;
 117         }
 118 }