KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > soto > jmx > DynamicMBeanAdaptor


1 package org.sapia.soto.jmx;
2
3 import javax.management.Attribute JavaDoc;
4 import javax.management.AttributeList JavaDoc;
5 import javax.management.AttributeNotFoundException JavaDoc;
6 import javax.management.DynamicMBean JavaDoc;
7 import javax.management.InvalidAttributeValueException JavaDoc;
8 import javax.management.MBeanException JavaDoc;
9 import javax.management.MBeanInfo JavaDoc;
10 import javax.management.ReflectionException JavaDoc;
11
12
13 /**
14  * An instance of this class adapts a <code>MBeanDescriptor</code> to the
15  * <code>DynamicMBean</code> interface. Usage is show below:
16  *
17  * <pre>
18  * Object someJavaBean = new SomeObject();
19  * MBeanDescriptor desc = MBeanDescriptor.newInstanceFor(someJavaBean);
20  * DynamicMBeanAdaptor mbean = new DynamicMBeanAdaptor(desc);
21  * </pre>
22  *
23  * @see org.sapia.soto.jmx.MBeanDescriptor
24  *
25  * @author Yanick Duchesne
26  * <dl>
27  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2003 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
28  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
29  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
30  * </dl>
31  */

32 public class DynamicMBeanAdaptor implements DynamicMBean JavaDoc {
33   private MBeanDescriptor _desc;
34
35   /**
36    * Constructor for DynamicMBeanAdaptor.
37    *
38    * @param desc the <code>MBeanDescriptor</code> wrapped by this instance.
39    */

40   public DynamicMBeanAdaptor(MBeanDescriptor desc) {
41     _desc = desc;
42   }
43
44   /**
45    * @see javax.management.DynamicMBean#getAttribute(String)
46    */

47   public Object JavaDoc getAttribute(String JavaDoc attribute)
48     throws AttributeNotFoundException JavaDoc, MBeanException JavaDoc, ReflectionException JavaDoc {
49     return _desc.getAttribute(attribute);
50   }
51
52   /**
53    * @see javax.management.DynamicMBean#getAttributes(String[])
54    */

55   public AttributeList JavaDoc getAttributes(String JavaDoc[] names) {
56     AttributeList JavaDoc list = new AttributeList JavaDoc();
57
58     for (int i = 0; i < names.length; i++) {
59       try {
60         list.add(new Attribute JavaDoc(names[i], _desc.getAttribute(names[i])));
61       } catch (ReflectionException JavaDoc e) {
62         //noop
63
} catch (MBeanException JavaDoc e) {
64         //noop
65
} catch (AttributeNotFoundException JavaDoc e) {
66         //noop
67
}
68     }
69
70     return list;
71   }
72
73   /**
74    * @see javax.management.DynamicMBean#getMBeanInfo()
75    */

76   public MBeanInfo JavaDoc getMBeanInfo() {
77     return _desc.getMBeanInfo();
78   }
79
80   /**
81    * @see javax.management.DynamicMBean#invoke(String, Object[], String[])
82    */

83   public Object JavaDoc invoke(String JavaDoc actionName, Object JavaDoc[] params, String JavaDoc[] sig)
84     throws MBeanException JavaDoc, ReflectionException JavaDoc {
85     return _desc.invoke(actionName, params, sig);
86   }
87
88   /**
89    * @see javax.management.DynamicMBean#setAttribute(Attribute)
90    */

91   public void setAttribute(Attribute JavaDoc attr)
92     throws AttributeNotFoundException JavaDoc, InvalidAttributeValueException JavaDoc,
93       MBeanException JavaDoc, ReflectionException JavaDoc {
94     _desc.setAttribute(attr);
95   }
96
97   /**
98    * @see javax.management.DynamicMBean#setAttributes(AttributeList)
99    */

100   public AttributeList JavaDoc setAttributes(AttributeList JavaDoc attributes) {
101     AttributeList JavaDoc list = new AttributeList JavaDoc();
102     Attribute JavaDoc attr;
103
104     for (int i = 0; i < attributes.size(); i++) {
105       try {
106         attr = (Attribute JavaDoc) attributes.get(i);
107         _desc.setAttribute(attr);
108         list.add(new Attribute JavaDoc(attr.getName(), null));
109       } catch (ReflectionException JavaDoc e) {
110         //noop
111
} catch (MBeanException JavaDoc e) {
112         //noop
113
} catch (AttributeNotFoundException JavaDoc e) {
114         //noop
115
}
116     }
117
118     return list;
119   }
120 }
121
Popular Tags