01: /**
02: * The XMOJO Project 5
03: * Copyright © 2003 XMOJO.org. All rights reserved.
04:
05: * NO WARRANTY
06:
07: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
08: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
09: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
10: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
11: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
13: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
14: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
15: * REPAIR OR CORRECTION.
16:
17: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
18: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
19: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
20: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
21: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
22: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
23: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
24: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
25: * SUCH DAMAGES.
26: **/package com.adventnet.jmx;
27:
28: import java.util.ArrayList;
29: import java.util.Hashtable;
30: import java.util.Vector;
31: import javax.management.monitor.Monitor;
32:
33: public class NotificationThread implements Runnable {
34: public Vector notifList = null;
35: public Hashtable info = null;
36:
37: public NotificationThread(Vector notifList, Hashtable info) {
38: this .notifList = notifList;
39: this .info = info;
40: }
41:
42: public void run() {
43: try {
44: if (notifList.size() == 0)
45: Thread.sleep(100);
46: else {
47: NotificationHandler hdlr = (NotificationHandler) notifList
48: .elementAt(0);
49:
50: if ((hdlr.nf == null)
51: || hdlr.nf.isNotificationEnabled(hdlr.notif)) {
52: hdlr.nl.handleNotification(hdlr.notif,
53: hdlr.handback);
54:
55: String name = hdlr.notif.getClass().getName();
56: ArrayList alist = (ArrayList) info.get(name);
57:
58: if (alist == null) {
59: alist = new ArrayList();
60: alist.add(hdlr.notif.getType());
61:
62: info.put(name, alist);
63: } else
64: alist.add(hdlr.notif.getType());
65: }
66: notifList.removeElementAt(0);
67: }
68: } catch (Exception e) {
69: //e.printStackTrace();
70: }
71:
72: this.notifList = null;
73: this.info = null;
74: }
75: }
|