| 1 52 package com.go.trove.util.plugin; 53 54 import com.go.trove.util.PropertyMap; 55 56 import java.util.ArrayList ; 57 import java.util.HashMap ; 58 import java.util.List ; 59 import java.util.Map ; 60 61 72 public class PluginContext { 73 74 private List mPluginListeners; 75 private Map mPluginMap; 76 77 public PluginContext() { 78 mPluginListeners = new ArrayList (); 79 mPluginMap = new HashMap (7); 80 } 81 82 89 public void addPluginListener(PluginListener listener) { 90 if (!mPluginListeners.contains(listener)) { 91 mPluginListeners.add(listener); 92 } 93 } 94 95 103 public void addPlugin(Plugin plugin) { 104 if (!mPluginMap.containsKey(plugin.getName())) { 105 mPluginMap.put(plugin.getName(), plugin); 106 PluginEvent event = new PluginEvent(this, plugin); 107 firePluginAddedEvent(event); 108 } 109 } 110 111 117 public Plugin getPlugin(String name) { 118 return (Plugin) mPluginMap.get(name); 119 } 120 121 126 public Map getPlugins() { 127 return new HashMap (mPluginMap); 128 } 129 130 132 protected void firePluginAddedEvent(PluginEvent event) { 133 PluginListener[] listeners = new PluginListener[mPluginListeners.size()]; 134 listeners = (PluginListener[]) mPluginListeners.toArray(listeners); 135 for (int i=0; i < listeners.length; i++) { 136 listeners[i].pluginAdded(event); 137 } 138 } 139 } 140 | Popular Tags |