public Map<String, Object> eval(Map<String, Object> inputMap, Set<String> outputNames) {
Map<String, Object> outputMap = new HashMap<String, Object>();
try {
log.debug("script input: " + inputMap);
Interpreter interpreter = new Interpreter();
for (Map.Entry<String, Object> entry : inputMap.entrySet()) {
String inputName = entry.getKey();
Object inputValue = entry.getValue();
interpreter.set(inputName, inputValue);
}
interpreter.eval(expression);
for (String outputName : outputNames) {
Object outputValue = interpreter.get(outputName);
outputMap.put(outputName, outputValue);
}
log.debug("script output: " + outputMap);
}
catch (ParseException e) {