com.seeyon.ctp.common.script
类 ScriptEvaluator

java.lang.Object
  继承者 com.seeyon.ctp.common.script.ScriptEvaluator

public class ScriptEvaluator
extends java.lang.Object

Groovy脚本计算。

作者:
wangwenyou

方法摘要
 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.util.Map<java.lang.String,java.lang.Object> getContext()
           
static ScriptEvaluator getInstance()
           
static java.lang.String wrapCategory(java.lang.String script)
          为满足表单需求,重载plus操作符,禁止集合+集合,集合+对象,数值+集合。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getInstance

public static final ScriptEvaluator getInstance()

eval

public java.lang.Object eval(java.lang.String scriptText,
                             java.util.Map<java.lang.String,java.lang.Object> context)
                      throws javax.script.ScriptException
计算Groovy表达式。

参数:
scriptText - 表达式,如 "x+y"
context - 计算的上下文,如new HashMap(){{ add("x",1);add("y",2)}}
返回:
计算以后的返回值,如上例返回 3
抛出:
javax.script.ScriptException

getContext

public java.util.Map<java.lang.String,java.lang.Object> getContext()

evalString

public java.lang.Object evalString(java.lang.String scriptText,
                                   java.util.Map<java.lang.String,java.lang.Object> context)
                            throws javax.script.ScriptException
计算Groovy GString(宏替换)。

参数:
scriptText - GString字符串,如 "select * from table1 where a=$a and b=${b}",变量使用$或${}标识。
context - 计算的上下文,如new HashMap(){{ add("a",1);add("b",2)}}
返回:
计算以后的返回字符串,如上例返回 "select * from table1 where a=1 and b=2"
抛出:
javax.script.ScriptException

wrapCategory

public static java.lang.String wrapCategory(java.lang.String script)
为满足表单需求,重载plus操作符,禁止集合+集合,集合+对象,数值+集合。 要执行的脚本调用此方法包装后再送到eval方法,脚本中不能含import语句。

参数:
script - 要运算的脚本
返回:
屏蔽了集合+集合,集合+对象,数值+集合操作的脚本,遇到上述情况抛出异常。