01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * 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.monitor;
23:
24: import javax.management.Notification;
25: import javax.management.ObjectName;
26: import java.util.Map;
27: import java.util.HashMap;
28:
29: /**
30: * Comment
31: *
32: * @author <a href="mailto:bill@jboss.org">Bill Burke</a>
33: * @version $Revision: 57210 $
34: *
35: **/
36: public class JBossMonitorNotification extends Notification {
37: public static final String NOTIFICATION_TYPE = "JBOSS_MONITOR_NOTIFICATION";
38: public static final String OBSERVED_OBJECT = "OBSERVED_OBJECT";
39: public static final String MONITOR_OBJECT_NAME = "MONITOR_OBJECT_NAME";
40: public static final String MONITOR_NAME = "MONITOR_NAME";
41: public static final String ATTRIBUTE = "ATTRIBUTE";
42:
43: protected final ObjectName observedObject;
44: protected final ObjectName monitorObjectName;
45: protected final String monitorName;
46: protected final String attribute;
47:
48: public JBossMonitorNotification(String monitorName,
49: ObjectName monitorObjectName, ObjectName observedObject,
50: String attribute, long sequenceNumber) {
51: super (NOTIFICATION_TYPE, monitorObjectName, sequenceNumber);
52: this .observedObject = observedObject;
53: this .attribute = attribute;
54: this .monitorName = monitorName;
55: this .monitorObjectName = monitorObjectName;
56: }
57:
58: public ObjectName getObservedObject() {
59: return observedObject;
60: }
61:
62: public ObjectName getMonitorObjectName() {
63: return monitorObjectName;
64: }
65:
66: public String getMonitorName() {
67: return monitorName;
68: }
69:
70: public String getAttribute() {
71: return attribute;
72: }
73:
74: /**
75: * Return a substitution map that can be used by org.jboss.util.Strings.subst
76: * to create a printable alert message.
77: *
78: * @return
79: */
80: public Map substitutionMap() {
81: HashMap map = new HashMap();
82: map.put(OBSERVED_OBJECT, observedObject.toString());
83: map.put(MONITOR_OBJECT_NAME, monitorObjectName.toString());
84: map.put(MONITOR_NAME, monitorName);
85: map.put(ATTRIBUTE, attribute);
86: return map;
87: }
88: }
|