package tech.powerjob.server.core.evaluator;
|
|
import lombok.SneakyThrows;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.script.Bindings;
|
import javax.script.ScriptEngine;
|
import javax.script.ScriptEngineManager;
|
|
/**
|
* @author Echo009
|
* @since 2021/12/10
|
*/
|
@Slf4j
|
@Component
|
public class GroovyEvaluator implements Evaluator {
|
|
private static final ScriptEngine ENGINE = new ScriptEngineManager().getEngineByName("groovy");
|
|
|
@Override
|
@SneakyThrows
|
public Object evaluate(String expression, Object input) {
|
Bindings bindings = ENGINE.createBindings();
|
bindings.put("context", input);
|
return ENGINE.eval(expression, bindings);
|
}
|
|
}
|