package org.gcube.data.spd.plugin; import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.gcube.data.spd.model.service.exceptions.UnsupportedCapabilityException; import org.gcube.data.spd.model.service.exceptions.UnsupportedPluginException; import org.gcube.data.spd.plugin.fwk.AbstractPlugin; public class PluginUtils { public static Collection getPluginsSubList(Collection pluginsName, Map plugins) throws UnsupportedPluginException{ Set selectedPlugins = new HashSet(); for (String pluginName: pluginsName) if (plugins.containsKey(pluginName)) selectedPlugins.add(plugins.get(pluginName)); else throw new UnsupportedPluginException(); return selectedPlugins; } public static Collection getExtenderPlugins(Collection plugins) throws UnsupportedCapabilityException{ Set selectedPlugins = new HashSet(); for (AbstractPlugin plugin: plugins) if (plugin.getExpansionInterface()!=null) selectedPlugins.add(plugin); if (selectedPlugins.size()==0) throw new UnsupportedCapabilityException(); return selectedPlugins; } public static Collection getResolverPlugins(Collection plugins) throws UnsupportedCapabilityException{ Set selectedPlugins = new HashSet(); for (AbstractPlugin plugin: plugins) if (plugin.getMappingInterface()!=null) selectedPlugins.add(plugin); if (selectedPlugins.size()==0) throw new UnsupportedCapabilityException(); return selectedPlugins; } }