package org.aperteworkflow.scripting;
import pl.net.bluesoft.rnd.util.func.Func;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: zmalinowski
* Date: 2/23/12
* Time: 5:32 PM
*/
public class ScriptProcessorRegistry {
private final Map<String,Func<ScriptProcessor>> processorMap = new HashMap<String,Func<ScriptProcessor>>();
public Collection<String> getRegisteredProcessors() {
return processorMap.keySet();
}
public void registerProcessor(String name, Func<ScriptProcessor> processor){
processorMap.put(name, processor);
}
public void unregisterProcessor(String name){
processorMap.remove(name);
}
public ScriptProcessor getScriptProcessor(String name){
if(processorMap.get(name) == null)
return null;
ScriptProcessor processor = processorMap.get(name).invoke();
return processor;
}
}