KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > jmx > server > DescribeableInfo


1 package org.oddjob.jmx.server;
2
3 import java.util.Map JavaDoc;
4
5 import javax.management.MBeanAttributeInfo JavaDoc;
6 import javax.management.MBeanException JavaDoc;
7 import javax.management.MBeanNotificationInfo JavaDoc;
8 import javax.management.MBeanOperationInfo JavaDoc;
9 import javax.management.MBeanParameterInfo JavaDoc;
10 import javax.management.Notification JavaDoc;
11 import javax.management.ReflectionException JavaDoc;
12
13 import org.oddjob.jmx.client.Describeable;
14 import org.oddjob.monitor.model.Describer;
15
16 /**
17  */

18 public class DescribeableInfo implements InterfaceInfo {
19     
20     public Class JavaDoc interfaceClass() {
21         return Describeable.class;
22     }
23     
24     public MBeanAttributeInfo JavaDoc[] getMBeanAttributeInfo() {
25         return new MBeanAttributeInfo JavaDoc[0];
26     }
27
28     public MBeanOperationInfo JavaDoc[] getMBeanOperationInfo() {
29         return new MBeanOperationInfo JavaDoc[] {
30             new MBeanOperationInfo JavaDoc("describe", "Describe properties.",
31                         new MBeanParameterInfo JavaDoc[0], Map JavaDoc.class.getName(),
32                         MBeanOperationInfo.INFO)
33             };
34     }
35     
36     public MBeanNotificationInfo JavaDoc[] getMBeanNotificationInfo() {
37         return new MBeanNotificationInfo JavaDoc[0];
38     }
39     
40     
41     public InterfaceHandler attach(Object JavaDoc target, OddjobMBean ojmb) {
42         return new ObjectInterfaceHandler(target);
43     }
44
45     class ObjectInterfaceHandler implements InterfaceHandler {
46     
47         private final Object JavaDoc object;
48         
49         ObjectInterfaceHandler(Object JavaDoc object) {
50             this.object = object;
51         }
52         
53         public Object JavaDoc invoke(String JavaDoc actionName, Object JavaDoc[] params, String JavaDoc[] signature) throws MBeanException JavaDoc, ReflectionException JavaDoc {
54             if ("describe".equals(actionName)
55                     && signature.length == 0) {
56                 return Describer.describe(object);
57             }
58             else {
59                 throw new ReflectionException JavaDoc(
60                         new IllegalStateException JavaDoc("invoked for an unknown method."),
61                                 actionName);
62             }
63         }
64         
65         public Notification JavaDoc[] getLastNotifications() {
66             return null;
67         }
68         
69         public void destroy() {
70         }
71     }
72 }
Popular Tags