KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.jmx.server;
5
6 import java.lang.reflect.InvocationTargetException JavaDoc;
7 import java.lang.reflect.Method JavaDoc;
8
9 import javax.management.MBeanException JavaDoc;
10 import javax.management.Notification JavaDoc;
11 import javax.management.ReflectionException JavaDoc;
12
13 public class OperationsHandler implements InterfaceHandler {
14
15     private final Object JavaDoc target;
16     
17     public OperationsHandler(Object JavaDoc target){
18         this.target = target;
19     }
20     
21     public Object JavaDoc invoke(String JavaDoc actionName, Object JavaDoc[] params, String JavaDoc[] signature) throws MBeanException JavaDoc, ReflectionException JavaDoc {
22         Class JavaDoc[] paramTypes = new Class JavaDoc[signature.length];
23         try {
24             for (int i = 0; i < paramTypes.length; ++i) {
25                 paramTypes[i] = Class.forName(signature[i]);
26             }
27         } catch (ClassNotFoundException JavaDoc e) {
28             throw new MBeanException JavaDoc(e);
29         }
30         
31         try {
32             Method JavaDoc m = target.getClass().getMethod(actionName, paramTypes);
33             try {
34                 return m.invoke(target, params);
35             } catch (IllegalArgumentException JavaDoc e1) {
36                 throw new ReflectionException JavaDoc(e1, actionName);
37             } catch (IllegalAccessException JavaDoc e1) {
38                 throw new ReflectionException JavaDoc(e1, actionName);
39             } catch (InvocationTargetException JavaDoc e1) {
40                 throw new ReflectionException JavaDoc(e1, actionName);
41             }
42         } catch (NoSuchMethodException JavaDoc e) {
43             throw new ReflectionException JavaDoc(e, actionName);
44         }
45     }
46     
47     public Notification JavaDoc[] getLastNotifications() {
48         return null;
49     }
50     
51     public void destroy() {
52     }
53 }
54
Popular Tags