KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > mx > server > NotificationListenerProxy


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.mx.server;
23
24 import javax.management.Notification JavaDoc;
25 import javax.management.NotificationListener JavaDoc;
26 import javax.management.ObjectName JavaDoc;
27
28 /**
29  * A notification listener used to forward notifications to listeners
30  * added through the mbean server.<p>
31  *
32  * The original source is replaced with the object name.
33  *
34  * @author <a HREF="mailto:Adrian.Brock@HappeningTimes.com">Adrian Brock</a>.
35  * @version $Revision: 37459 $
36  */

37 public class NotificationListenerProxy
38    implements NotificationListener JavaDoc
39 {
40    // Constants ---------------------------------------------------
41

42    // Attributes --------------------------------------------------
43

44    /**
45     * The original listener
46     */

47    private NotificationListener JavaDoc listener;
48
49    /**
50     * The object name we are proxying
51     */

52    private ObjectName JavaDoc name;
53
54    // Static ------------------------------------------------------
55

56    // Constructors ------------------------------------------------
57

58    /**
59     * Create a new Notification Listener Proxy
60     *
61     * @param name the object name
62     * @param listener the original listener
63     */

64    public NotificationListenerProxy(ObjectName JavaDoc name,
65                                     NotificationListener JavaDoc listener)
66    {
67       this.name = name;
68       this.listener = listener;
69    }
70
71    // Public ------------------------------------------------------
72

73    // implementation NotificationListener -------------------------
74

75    public void handleNotification(Notification JavaDoc notification, Object JavaDoc handback)
76    {
77       if (notification == null)
78          return;
79
80       // Forward the notification with the object name as source
81
// FIXME: This overwrites the original source, there is no way
82
// to put it back with the current spec
83
notification.setSource(name);
84       listener.handleNotification(notification, handback);
85    }
86
87    // overrides ---------------------------------------------------
88

89    // Protected ---------------------------------------------------
90

91    // Private -----------------------------------------------------
92

93    // Inner classes -----------------------------------------------
94
}
95
Popular Tags