package org.safehaus.penrose.studio.plugin; import java.util.Map; import java.util.HashMap; /** * @author Endi S. Dewata */ public class PluginManager { public final static Plugin DEFAULT_PLUGIN = new Plugin(); public Map<String,Plugin> plugins = new HashMap<String,Plugin>(); public void init(PluginConfig pluginConfig) throws Exception { Plugin plugin = plugins.get(pluginConfig.getName()); if (plugin != null) return; String className = pluginConfig.getClassName(); Class clazz = Class.forName(className); plugin = (Plugin)clazz.newInstance(); plugin.setPluginConfig(pluginConfig); addPlugin(plugin); } public void addPlugin(Plugin plugin) { plugins.put(plugin.getName(), plugin); } public Plugin getPlugin(String name) { Plugin plugin = plugins.get(name); if (plugin == null) return DEFAULT_PLUGIN; return plugin; } }