KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > agent > mo > jmx > MBeanNotificationObjectInfo


1 /*_############################################################################
2   _##
3   _## SNMP4J-AgentJMX - MBeanNotificationObjectInfo.java
4   _##
5   _## Copyright (C) 2006-2007 Frank Fock (SNMP4J.org)
6   _##
7   _## This program is free software; you can redistribute it and/or modify
8   _## it under the terms of the GNU General Public License version 2 as
9   _## published by the Free Software Foundation.
10   _##
11   _## This program is distributed in the hope that it will be useful,
12   _## but WITHOUT ANY WARRANTY; without even the implied warranty of
13   _## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   _## GNU General Public License for more details.
15   _##
16   _## You should have received a copy of the GNU General Public License
17   _## along with this program; if not, write to the Free Software
18   _## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19   _## MA 02110-1301 USA
20   _##
21   _##########################################################################*/

22
23 package org.snmp4j.agent.mo.jmx;
24
25 import org.snmp4j.agent.mo.jmx.types.TypedAttribute;
26 import org.snmp4j.smi.OID;
27 import org.snmp4j.smi.VariableBinding;
28 import javax.management.openmbean.CompositeDataSupport JavaDoc;
29 import org.snmp4j.agent.mo.jmx.types.SMIVariant;
30 import org.snmp4j.smi.Variable;
31
32 /**
33  * The <code>MBeanNotificationObjectInfo</code> maps a SNMP object class OID
34  * and value type to a MBean attribute.
35  *
36  * @author Frank Fock
37  * @version 1.0
38  */

39 public class MBeanNotificationObjectInfo {
40
41   private OID classID;
42   private Variable valueType;
43   private TypedAttribute attribute;
44
45   public MBeanNotificationObjectInfo(OID classID,
46                                      Variable valueType,
47                                      TypedAttribute attribute) {
48     this.classID = classID;
49     this.valueType = valueType;
50     this.attribute = attribute;
51   }
52
53   public VariableBinding getVariableBinding(Object JavaDoc mBeanNotifyUserObject,
54                                             OID index) {
55     Object JavaDoc value;
56     if (mBeanNotifyUserObject instanceof CompositeDataSupport JavaDoc) {
57       CompositeDataSupport JavaDoc data = (CompositeDataSupport JavaDoc)mBeanNotifyUserObject;
58       value = data.get(attribute.getName());
59     }
60     else {
61       value = mBeanNotifyUserObject;
62     }
63     Variable smiValue = (Variable) valueType.clone();
64     SMIVariant smiVariant = new SMIVariant(smiValue);
65     value = attribute.transformFromNative(value, null);
66     smiVariant.setValue(value);
67     OID oid = new OID(classID);
68     if (index != null) {
69       oid.append(index);
70     }
71     return new VariableBinding(oid, smiValue);
72   }
73
74 }
75
Popular Tags