package com.psddev.cms.db;
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
/**
* @deprecated No replacement.
*/
@Deprecated
@Operation.DisplayName("Script")
public class ScriptOperation extends Operation {
private String engine;
private String script;
public String getEngine() {
return engine;
}
public void setEngine(String engine) {
this.engine = engine;
}
public String getScript() {
return script;
}
public void setScript(String script) {
this.script = script;
}
@Override
public void evaluate(Variation variation, Profile profile, Object object) {
String engineName = getEngine();
ScriptEngine engine = ScriptUtils.getEngine(engineName);
Bindings bindings = engine.createBindings();
bindings.put("variation", variation);
bindings.put("profile", profile);
bindings.put("object", object);
try {
engine.eval(getScript(), bindings);
} catch (ScriptException ex) {
throw new RuntimeException(String.format(
"Unable to evaluate [%s] script!", engineName), ex);
}
}
}