KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > monitoring > MonitoringContainer


1 package jfun.yan.monitoring;
2
3 import jfun.yan.Component;
4 import jfun.yan.Registrar;
5 import jfun.yan.containers.SimpleContainer;
6 import jfun.yan.containers.SimpleRegistrar;
7
8 /**
9  * <p>
10  * A container implementation that adds monitoring support
11  * for constructors and methods registered using
12  * registerConstructor(), registerStaticMethod() and registerMethod().
13  * </p>
14  * <p>
15  * Components registered with registerComponent() are not automatically
16  * monitored.
17  * </p>
18  * <p>
19  * Only components directly registerd with the registerConstructor(),
20  * registerMethod(), registerStaticMethod() are monitored.
21  * Parameters of the components are not monitored.<br>
22  * Use {@link Monitors} to add monitoring support.
23  * </p>
24  * @author Michelle Lei
25  *
26  */

27 public class MonitoringContainer extends SimpleContainer {
28   private final Monitors mon;
29   private void defaultRegister(Object JavaDoc key, Component c){
30     registerComponent(key, defaultTransform(c));
31   }
32   private void defaultRegister(Component c){
33     registerComponent(defaultTransform(c));
34   }
35   /**
36    * To create a MonitoringContainer object.
37    * @param target the Registrar object that does the registration.
38    * @param mon the ComponentMonitor object.
39    */

40   public MonitoringContainer(Registrar target, ComponentMonitor mon) {
41     super(target);
42     this.mon = new Monitors(mon);
43   }
44   /**
45    * To create a MonitoringContainer object.
46    * @param mon the ComponentMonitor object.
47    */

48   public MonitoringContainer(ComponentMonitor mon){
49     this(new SimpleRegistrar(), mon);
50   }
51   public void registerConstructor(Object JavaDoc key, Class JavaDoc c, Class JavaDoc[] param_types) {
52     defaultRegister(key, mon.ctor(c, param_types));
53   }
54
55   public void registerConstructor(Object JavaDoc key, Class JavaDoc c) {
56     defaultRegister(key, mon.ctor(c));
57   }
58
59   public void registerStaticMethod(Class JavaDoc c, String JavaDoc name, Class JavaDoc[] param_types) {
60     defaultRegister(mon.static_method(c, name, param_types));
61   }
62
63   public void registerStaticMethod(Class JavaDoc c, String JavaDoc name) {
64     defaultRegister(mon.static_method(c, name));
65   }
66
67   public void registerStaticMethod(Object JavaDoc key, Class JavaDoc c, String JavaDoc name, Class JavaDoc[] param_types) {
68     defaultRegister(key, mon.static_method(c, name, param_types));
69   }
70
71   public void registerStaticMethod(Object JavaDoc key, Class JavaDoc c, String JavaDoc name) {
72     defaultRegister(key, mon.static_method(c, name));
73   }
74   public void registerMethod(Object JavaDoc key, Object JavaDoc obj, String JavaDoc name, Class JavaDoc[] param_types){
75     defaultRegister(key, mon.method(obj, name, param_types));
76   }
77   public void registerMethod(Object JavaDoc key, Object JavaDoc obj, String JavaDoc name){
78     defaultRegister(key, mon.method(obj, name));
79   }
80   public void registerMethod(Object JavaDoc obj, String JavaDoc name, Class JavaDoc[] param_types){
81     defaultRegister(mon.method(obj, name, param_types));
82   }
83   public void registerMethod(Object JavaDoc obj, String JavaDoc name){
84     defaultRegister(mon.method(obj, name));
85   }
86 }
87
Popular Tags