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.ScriptException
public 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.ScriptException
public 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.ScriptException
public 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()