public class ScriptEvaluator
extends java.lang.Object
| 限定符和类型 | 方法和说明 |
|---|---|
void |
clear() |
void |
compile(java.lang.String script) |
java.lang.Object |
eval(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
计算Groovy表达式。
|
java.lang.Object |
evalString(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
计算Groovy GString(宏替换)。
|
java.lang.Object |
evalThrowException(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
执行脚本
如果发生异常则抛出异常 .
|
static ScriptEvaluator |
getInstance() |
static ScriptEvaluator |
getInstance(boolean sandboxEnabled) |
java.util.Map |
getScriptCache() |
ScriptCacheHelper |
getScriptCacheHelper() |
java.lang.String |
getScriptKey(java.lang.String script)
根据脚本内容生成脚本标识key
|
boolean |
needRecompile(java.lang.String scriptText)
判断计算公式是否需要重新编译
|
void |
notifyRecompile(java.lang.String scriptText,
java.lang.Long time)
更新groovy脚本重新编译的时间记录
|
void |
precompile(java.lang.String script) |
void |
updateFormulas(java.lang.String funcName,
java.lang.Long time)
更新了函数,通知groovy计算公式下次重新编译
|
static java.lang.String |
wrapCategory(java.lang.String script)
为满足表单需求,重载plus操作符,禁止集合+集合,集合+对象,数值+集合。
|
public static final ScriptEvaluator getInstance()
public static final ScriptEvaluator getInstance(boolean sandboxEnabled)
public void clear()
public java.lang.Object eval(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
throws javax.script.ScriptException
scriptText - 表达式,如 "x+y"context - 计算的上下文,如new HashMap(){{ add("x",1);add("y",2)}}javax.script.ScriptExceptionpublic java.lang.Object evalThrowException(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
throws javax.script.ScriptException
scriptText - context - javax.script.ScriptExceptionpublic java.lang.Object evalString(java.lang.String scriptText,
java.util.Map<java.lang.String,java.lang.Object> context)
throws javax.script.ScriptException
scriptText - GString字符串,如 "select * from table1 where a=$a and b=${b}",变量使用$或${}标识。context - 计算的上下文,如new HashMap(){{ add("a",1);add("b",2)}}javax.script.ScriptExceptionpublic static java.lang.String wrapCategory(java.lang.String script)
script - 要运算的脚本public java.util.Map getScriptCache()
public void updateFormulas(java.lang.String funcName,
java.lang.Long time)
funcName - 函数名称time - 更新时间,新增为-1public boolean needRecompile(java.lang.String scriptText)
scriptText - public void notifyRecompile(java.lang.String scriptText,
java.lang.Long time)
scriptText - time - public void compile(java.lang.String script)
public void precompile(java.lang.String script)
@param - scriptpublic java.lang.String getScriptKey(java.lang.String script)
script - public ScriptCacheHelper getScriptCacheHelper()