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