public <PluginInterfaceType> Iterable<PluginInterfaceType> getRegisteredLocalPlugins(Class<PluginInterfaceType> pluginInterfaceClass) { return getRegisteredPlugins(pluginInterfaceClass, localPluginsProvider); }// END Method getRegisteredLocalPlugins
public <PluginInterfaceType> Iterable<PluginInterfaceType> getRegisteredRemotePlugins(Class<PluginInterfaceType> pluginInterfaceClass) { Collection<PluginInterfaceType> rslt = new ArrayList<PluginInterfaceType>(); if (pluginInterfaceClass != IPluginsProvider.class) for (IPluginsProvider pluginsProvider : getRegisteredPlugins(IPluginsProvider.class, localPluginsProvider)) if (!(pluginsProvider instanceof IPluginsProvider.LocalPluginsProvider)) for (PluginInterfaceType plugin : getRegisteredPlugins(pluginInterfaceClass, pluginsProvider)) rslt.add(plugin); return rslt; }// END Method getRegisteredLocalPlugins
public <PluginInterfaceType> PluginInterfaceType getRegisteredSingletonPlugin(Class<PluginInterfaceType> pluginInterfaceClass) { Iterator<PluginInterfaceType> iterator = getRegisteredPlugins(pluginInterfaceClass).iterator(); return iterator.hasNext() ? iterator.next() : null; }// END Method getRegisteredSingletonPlugin
public <PluginInterfaceType> Iterable<PluginInterfaceType> getRegisteredPlugins(Class<PluginInterfaceType> pluginInterfaceClass) { ArrayList<PluginInterfaceType> rslt = new ArrayList<PluginInterfaceType>(); synchronized (this) { if (pluginInterfaceClass != IPluginsProvider.class) for (IPluginsProvider pluginsProvider : getRegisteredLocalPlugins(IPluginsProvider.class)) for (PluginInterfaceType plugin : getRegisteredPlugins(pluginInterfaceClass, pluginsProvider)) rslt.add(plugin); for (PluginInterfaceType plugin : getRegisteredPlugins(pluginInterfaceClass, localPluginsProvider)) rslt.add(plugin); } return rslt; }// END Method getRegisteredPlugins
public static void main(String... args){ for(IPlugin myPlugin : PluginsManager.getSingleton().getRegisteredPlugins(IPlugin.class)) System.out.println(myPlugin.getMessage()); }// END Method main
public static synchronized PluginsManager getSingleton() { if (defaultInstance == null) { defaultInstance = new PluginsManager(); for (IAstennFirstUseListener astennFirstUseListener : defaultInstance.getRegisteredPlugins(IAstennFirstUseListener.class)) astennFirstUseListener.astennInstanceStarting(); } return defaultInstance; }// END Method getSingleton