增加QLExpress支持

This commit is contained in:
Looly
2022-10-12 14:14:42 +08:00
parent c12102e89b
commit 896ef4f701
6 changed files with 78 additions and 11 deletions

View File

@@ -0,0 +1,38 @@
package cn.hutool.extra.expression.engine.qlexpress;
import cn.hutool.extra.expression.ExpressionEngine;
import cn.hutool.extra.expression.ExpressionException;
import com.ql.util.express.DefaultContext;
import com.ql.util.express.ExpressRunner;
import java.util.Map;
/**
* QLExpress引擎封装<br>
* 见https://github.com/alibaba/QLExpress
*
* @author looly
* @since 5.8.9
*/
public class QLExpressEngine implements ExpressionEngine {
private final ExpressRunner engine;
/**
* 构造
*/
public QLExpressEngine() {
engine = new ExpressRunner();
}
@Override
public Object eval(final String expression, final Map<String, Object> context) {
final DefaultContext<String, Object> defaultContext = new DefaultContext<>();
defaultContext.putAll(context);
try {
return engine.execute(expression, defaultContext, null, true, false);
} catch (final Exception e) {
throw new ExpressionException(e);
}
}
}

View File

@@ -0,0 +1,7 @@
/**
* QLExpress引擎封装<br>
* 见https://github.com/alibaba/QLExpress
*
* @author looly
*/
package cn.hutool.extra.expression.engine.qlexpress;

View File

@@ -3,4 +3,5 @@ cn.hutool.extra.expression.engine.jexl.JexlEngine
cn.hutool.extra.expression.engine.mvel.MvelEngine
cn.hutool.extra.expression.engine.jfireel.JfireELEngine
cn.hutool.extra.expression.engine.spel.SpELEngine
cn.hutool.extra.expression.engine.rhino.RhinoEngine
cn.hutool.extra.expression.engine.rhino.RhinoEngine
cn.hutool.extra.expression.engine.qlexpress.QLExpressEngine