KickJava   Java API By Example, From Geeks To Geeks.

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


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

4 package org.oddjob.jmx.server;
5
6 import java.util.ArrayList JavaDoc;
7 import java.util.HashSet JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import java.util.List JavaDoc;
10 import java.util.Set JavaDoc;
11
12
13 public class InterfaceManagerFactory {
14     
15     private Set JavaDoc interfaceHandlers = new HashSet JavaDoc();
16     
17     
18     public void addInterfaceInfo(InterfaceInfo interfaceHandler) {
19         interfaceHandlers.add(interfaceHandler);
20     }
21     
22     
23     public InterfaceManager create(Object JavaDoc target, OddjobMBean ojmb) {
24         List JavaDoc handlers = new ArrayList JavaDoc();
25         // build up a list of supported interfaces
26
for (Iterator JavaDoc it = interfaceHandlers.iterator(); it.hasNext(); ) {
27             InterfaceInfo interfaceHandler = (InterfaceInfo) it.next();
28             Class JavaDoc handles = interfaceHandler.interfaceClass();
29             if (handles.isInstance(target)) {
30                 handlers.add(interfaceHandler);
31             }
32         }
33         // hardwire DynaBean handling
34
handlers.add(new DynaBeanInfo());
35         handlers.add(new ObjectInterfaceInfo());
36         handlers.add(new DescribeableInfo());
37         handlers.add(new RemoteOddjobInfo());
38
39         // create the implementation
40
InterfaceManagerImpl imImpl = new InterfaceManagerImpl(target,
41                 ojmb,
42                 (InterfaceInfo[]) handlers.toArray(new InterfaceInfo[0]));
43         return imImpl;
44     }
45 }
46
Popular Tags