KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exolab > jms > net > connector > AbstractManagedConnection


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "Exolab" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of Exoffice Technologies. For written permission,
18  * please contact info@exolab.org.
19  *
20  * 4. Products derived from this Software may not be called "Exolab"
21  * nor may "Exolab" appear in their names without prior written
22  * permission of Exoffice Technologies. Exolab is a registered
23  * trademark of Exoffice Technologies.
24  *
25  * 5. Due credit should be given to the Exolab Project
26  * (http://www.exolab.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 2004-2005 (C) Exoffice Technologies Inc. All Rights Reserved.
42  *
43  * $Id: AbstractManagedConnection.java,v 1.4 2005/06/04 14:28:52 tanderson Exp $
44  */

45 package org.exolab.jms.net.connector;
46
47
48 /**
49  * Abstract implementation of the {@link ManagedConnection} interface.
50  *
51  * @author <a HREF="mailto:tma@netspace.net.au">Tim Anderson</a>
52  * @version $Revision: 1.4 $ $Date: 2005/06/04 14:28:52 $
53  */

54 public abstract class AbstractManagedConnection implements ManagedConnection {
55
56     /**
57      * The event listener for connection events.
58      */

59     private ManagedConnectionListener _listener;
60
61
62     /**
63      * Construct a new <code>AbstractManagedConnection</code>.
64      */

65     public AbstractManagedConnection() {
66     }
67
68     /**
69      * Registers a connection event listener.
70      *
71      * @param listener the connection event listener
72      * @throws ResourceException for any error
73      */

74     public synchronized void setConnectionEventListener(
75             ManagedConnectionListener listener)
76             throws ResourceException {
77         _listener = listener;
78     }
79
80     /**
81      * Notifies when the peer closes the physical connection.
82      */

83     protected void notifyClosed() {
84         ManagedConnectionListener listener = getConnectionEventListener();
85         if (listener != null) {
86             listener.closed(this);
87         }
88     }
89
90     /**
91      * Notifies of an error on the physical connection.
92      *
93      * @param error the error
94      */

95     protected void notifyError(Throwable JavaDoc error) {
96         ManagedConnectionListener listener = getConnectionEventListener();
97         if (listener != null) {
98             listener.error(this, error);
99         }
100     }
101
102     /**
103      * Returns the connection event listener.
104      *
105      * @return the connection event listener, or <code>null</code> if no
106      * listener is registered
107      */

108     protected synchronized ManagedConnectionListener
109             getConnectionEventListener() {
110         return _listener;
111     }
112 }
113
Popular Tags