/** * */ package jframe.core.plugin; import java.util.Collection; import java.util.Comparator; import jframe.core.conf.Config; /** * <p> * 插件间共享对象 * <li></li> * </p> * * @ThreadSafe * @author dzh * @date Sep 12, 2013 2:48:10 PM * @since 1.0 */ public interface PluginContext { void initContext(Config config); PluginRef getPlugin(int id); PluginRef getPlugin(String name); Collection<PluginRef> getPlugins(); PluginRef regPlugin(Plugin plugin); void regPlugins(Collection<Plugin> plugins, Comparator<? super Plugin> comparator); void unregPlugins(Collection<PluginRef> refs, Comparator<? super Plugin> comparator); /** * use unregPlugin(PluginRef) * * @param plugin * @return */ @Deprecated PluginRef unregPlugin(Plugin plugin); void unregPlugin(PluginRef ref); Config getConfig(); void dispose(); void regPluginListener(PluginListener l); void unregPluginListener(PluginListener l); void notifyPluginEvent(PluginEvent event); }