1 22 23 24 package com.mchange.v2.c3p0.util; 25 26 import java.util.*; 27 import java.sql.*; 28 import javax.sql.*; 29 30 public class ConnectionEventSupport 31 { 32 PooledConnection source; 33 HashSet mlisteners = new HashSet(); 34 35 public ConnectionEventSupport(PooledConnection source) 36 { this.source = source; } 37 38 public synchronized void addConnectionEventListener(ConnectionEventListener mlistener) 39 {mlisteners.add(mlistener);} 40 41 public synchronized void removeConnectionEventListener(ConnectionEventListener mlistener) 42 {mlisteners.remove(mlistener);} 43 44 public void fireConnectionClosed() 45 { 46 Set mlCopy; 47 48 synchronized (this) 49 { mlCopy = (Set) mlisteners.clone(); } 50 51 ConnectionEvent evt = new ConnectionEvent(source); 52 for (Iterator i = mlCopy.iterator(); i.hasNext();) 53 { 54 ConnectionEventListener cl = (ConnectionEventListener) i.next(); 55 cl.connectionClosed(evt); 56 } 57 } 58 59 public void fireConnectionErrorOccurred(SQLException error) 60 { 61 Set mlCopy; 62 63 synchronized (this) 64 { mlCopy = (Set) mlisteners.clone(); } 65 66 ConnectionEvent evt = new ConnectionEvent(source, error); 67 for (Iterator i = mlCopy.iterator(); i.hasNext();) 68 { 69 ConnectionEventListener cl = (ConnectionEventListener) i.next(); 70 cl.connectionErrorOccurred(evt); 71 } 72 } 73 } 74 75 76 77 | Popular Tags |