package YalpServer; import java.util.ArrayList; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import YalpInterfaces.*; public class InputPluginHandler { private ArrayList plugins; private static int inputIds = 0; private String log4jFile = "log4j_server.conf"; private static Logger logger = Logger.getLogger("Yalp.Server.InputPluginHandler"); public InputPluginHandler() { PropertyConfigurator.configureAndWatch(log4jFile); logger.debug("InputPluginHandler()"); plugins = new ArrayList(); } public PluginInfo addPlugin(InputPlugin plugin) { logger.debug("addPlugin("+plugin.info.name+")"); plugin.info.id = inputIds++; plugins.add(plugin); return plugin.info; } /* * @todo sort / priorization of search results * * @todo maybe each request in own thread * timeouts, maximum number of results ... */ public void search( String str, MediaType[] types, MediasHolder result, YalpErrorHolder err ) { logger.debug("search("+str+")"); for( InputPlugin plugin : plugins ) { logger.debug("search for: \""+str+"\" @ plugin: "+plugin.info.name); plugin.itf.search(str, types, result, err); } } }