1 22 23 package org.snmp4j.agent.mo.jmx; 24 25 import javax.management.Notification ; 26 import javax.management.NotificationListener ; 27 import java.util.HashMap ; 28 import java.util.Map ; 29 import org.snmp4j.smi.OID; 30 import org.snmp4j.smi.VariableBinding; 31 import org.snmp4j.agent.NotificationOriginator; 32 33 40 public class JMXNotificationSupport implements NotificationListener { 41 42 private Map <OID,MBeanNotificationInfo> notificationInfos; 43 private NotificationOriginator notificationOriginator; 44 45 53 public JMXNotificationSupport(NotificationOriginator notificationOriginator) { 54 this.notificationOriginator = notificationOriginator; 55 notificationInfos = new HashMap <OID,MBeanNotificationInfo>(); 56 } 57 58 66 public void add(OID notificationID, MBeanNotificationInfo notificationInfo) { 67 notificationInfos.put(notificationID, notificationInfo); 68 } 69 70 78 public void addAll(Object [][] notificationDefinitions) { 79 for (Object [] tableDescr : notificationDefinitions) { 80 MBeanNotificationInfo mBeanInfo = 81 (MBeanNotificationInfo)tableDescr[1]; 82 notificationInfos.put((OID)tableDescr[0], mBeanInfo); 83 } 84 } 85 86 98 public void handleNotification(Notification notification, Object handback) { 99 MBeanNotificationInfo info = notificationInfos.get(handback); 100 if (info != null) { 101 VariableBinding[] vbs = 102 info.getNotificationPayload(notification.getUserData()); 103 notificationOriginator.notify(info.getContext(), (OID)handback, vbs); 104 } 105 } 106 } 107 | Popular Tags |