public class ExpressRunner extends Object
| 构造器和说明 |
|---|
ExpressRunner() |
ExpressRunner(boolean aIsPrecise,
boolean aIstrace) |
ExpressRunner(boolean aIsPrecise,
boolean aIstrace,
IExpressResourceLoader aExpressResourceLoader,
NodeTypeManager aManager) |
ExpressRunner(boolean aIsPrecise,
boolean aIstrace,
NodeTypeManager aManager) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addClassField(String field,
Class<?> bindingClass,
Class<?> returnType,
Operator op)
添加类的方法
|
void |
addClassField(String field,
Class<?> bindingClass,
Operator op)
添加类的方法
|
void |
addClassMethod(String name,
Class<?> bindingClass,
OperatorBase op)
添加类的方法
|
void |
addFunction(String name,
OperatorBase op)
添加函数定义
|
void |
addFunctionAndClassMethod(String name,
Class<?> bindingClass,
OperatorBase op)
添加函数定义扩展类的方法
|
void |
addFunctionOfClassMethod(String name,
String aClassName,
String aFunctionName,
Class<?>[] aParameterClassTypes,
String errorInfo)
添加一个类的函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"
|
void |
addFunctionOfClassMethod(String name,
String aClassName,
String aFunctionName,
Class<?>[] aParameterClassTypes,
String[] aParameterDesc,
String[] aParameterAnnotation,
String errorInfo)
添加一个类的函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"
|
void |
addFunctionOfClassMethod(String name,
String aClassName,
String aFunctionName,
String[] aParameterTypes,
String errorInfo)
添加一个类的函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"
|
void |
addFunctionOfClassMethod(String name,
String aClassName,
String aFunctionName,
String[] aParameterTypes,
String[] aParameterDesc,
String[] aParameterAnnotation,
String errorInfo)
添加一个类的函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"
|
void |
addFunctionOfServiceMethod(String name,
Object aServiceObject,
String aFunctionName,
Class<?>[] aParameterClassTypes,
String errorInfo)
用于将一个用户自己定义的对象(例如Spring对象)方法转换为一个表达式计算的函数
|
void |
addFunctionOfServiceMethod(String name,
Object aServiceObject,
String aFunctionName,
Class<?>[] aParameterClassTypes,
String[] aParameterDesc,
String[] aParameterAnnotation,
String errorInfo)
用于将一个用户自己定义的对象(例如Spring对象)方法转换为一个表达式计算的函数
|
void |
addFunctionOfServiceMethod(String name,
Object aServiceObject,
String aFunctionName,
String[] aParameterTypes,
String errorInfo)
用于将一个用户自己定义的对象(例如Spring对象)方法转换为一个表达式计算的函数
|
void |
addFunctionOfServiceMethod(String name,
Object aServiceObject,
String aFunctionName,
String[] aParameterTypes,
String[] aParameterDesc,
String[] aParameterAnnotation,
String errorInfo) |
void |
addMacro(String macroName,
String express)
添加宏定义 例如: macro 玄难 { abc(userinfo.userId);}
|
void |
addOperator(String name,
Operator op)
添加操作符号,此操作符号的优先级与 "*"相同,语法形式也是 data name data
|
void |
addOperator(String name,
String aRefOpername,
Operator op)
添加操作符号,此操作符号与给定的参照操作符号在优先级别和语法形式上一致
|
void |
addOperatorWithAlias(String keyWordName,
String realKeyWordName,
String errorInfo)
添加操作符和关键字的别名,同时对操作符可以指定错误信息。
|
void |
addSystemFunctions() |
void |
clearExpressCache()
清除缓存
|
void |
createInstructionSet(ExpressNode root,
InstructionSet result) |
InstructionSet |
createInstructionSet(ExpressNode root,
String type) |
boolean |
createInstructionSetPrivate(InstructionSet result,
Stack<ForRelBreakContinue> forStack,
ExpressNode node,
boolean isRoot) |
Object |
execute(InstructionSet[] instructionSets,
IExpressContext<String,Object> context,
List<String> errorList,
boolean isTrace,
boolean isCatchException,
org.apache.commons.logging.Log aLog)
已过时。
|
Object |
execute(InstructionSet instructionSets,
IExpressContext<String,Object> context,
List<String> errorList,
boolean isTrace,
boolean isCatchException,
org.apache.commons.logging.Log aLog)
执行指令集
|
Object |
execute(String expressString,
IExpressContext<String,Object> context,
List<String> errorList,
boolean isCache,
boolean isTrace)
执行一段文本
|
Object |
execute(String expressString,
IExpressContext<String,Object> context,
List<String> errorList,
boolean isCache,
boolean isTrace,
org.apache.commons.logging.Log aLog)
执行一段文本
|
Object |
executeByExpressName(String name,
IExpressContext<String,Object> context,
List<String> errorList,
boolean isTrace,
boolean isCatchException,
org.apache.commons.logging.Log aLog)
根据表达式的名称进行执行
|
RuleResult |
executeRule(String expressString,
IExpressContext<String,Object> context,
boolean isCache,
boolean isTrace) |
AppendingClassFieldManager |
getAppendingClassFieldManager() |
AppendingClassMethodManager |
getAppendingClassMethodManager() |
ExportItem[] |
getExportInfo()
输出全局定义信息
|
IExpressResourceLoader |
getExpressResourceLoader() |
OperatorBase |
getFunciton(String name)
获取函数定义,通过函数定义可以拿到参数的说明信息
|
InstructionSet |
getInstructionSetFromLocalCache(String expressString)
优先从本地指令集缓存获取指令集,没有的话生成并且缓存在本地
|
NodeTypeManager |
getNodeTypeManager()
获取语法定义的管理器
|
IOperateDataCache |
getOperateDataCache() |
OperatorFactory |
getOperatorFactory()
获取操作符号管理器
|
String[] |
getOutFunctionNames(String express) |
String[] |
getOutVarNames(String express)
获取一个表达式需要的外部变量名称列表
|
ExpressPackage |
getRootExpressPackage() |
boolean |
isShortCircuit() |
void |
loadExpress(String expressName)
装载文件中定义的Express
|
void |
loadMutilExpress(String groupName,
String express)
装载表达式,但不执行,例如一些宏定义,或者自定义函数
|
Condition |
parseContition(String text) |
InstructionSet |
parseInstructionSet(String text)
解析一段文本,生成指令集合
|
Rule |
parseRule(String text) |
OperatorBase |
replaceOperator(String name,
OperatorBase op)
替换操作符处理
|
void |
setShortCircuit(boolean isShortCircuit) |
public ExpressRunner()
public ExpressRunner(boolean aIsPrecise,
boolean aIstrace)
aIsPrecise - 是否需要高精度计算支持aIstrace - 是否跟踪执行指令的过程public ExpressRunner(boolean aIsPrecise,
boolean aIstrace,
NodeTypeManager aManager)
public ExpressRunner(boolean aIsPrecise,
boolean aIstrace,
IExpressResourceLoader aExpressResourceLoader,
NodeTypeManager aManager)
aIsPrecise - 是否需要高精度计算支持aIstrace - 是否跟踪执行指令的过程aExpressResourceLoader - 表达式的资源装载器public AppendingClassMethodManager getAppendingClassMethodManager()
public AppendingClassFieldManager getAppendingClassFieldManager()
public IOperateDataCache getOperateDataCache()
public void addSystemFunctions()
public NodeTypeManager getNodeTypeManager()
public OperatorFactory getOperatorFactory()
public IExpressResourceLoader getExpressResourceLoader()
public void addMacro(String macroName, String express) throws Exception
macroName:玄难 - express - :abc(userinfo.userId);Exceptionpublic void loadMutilExpress(String groupName, String express) throws Exception
groupName - express - Exceptionpublic void loadExpress(String expressName) throws Exception
expressName - Exceptionpublic void addFunction(String name, OperatorBase op)
name - 函数名称op - 对应的操作实现类public void addFunctionAndClassMethod(String name, Class<?> bindingClass, OperatorBase op)
name - bindingClass - op - public void addClassField(String field, Class<?> bindingClass, Operator op)
field - bindingClass - op - public void addClassField(String field, Class<?> bindingClass, Class<?> returnType, Operator op)
field - bindingClass - returnType - op - public void addClassMethod(String name, Class<?> bindingClass, OperatorBase op)
name - bindingClass - op - public OperatorBase getFunciton(String name)
name - 函数名称public void addFunctionOfClassMethod(String name, String aClassName, String aFunctionName, Class<?>[] aParameterClassTypes, String errorInfo) throws Exception
name - 函数名称aClassName - 类名称aFunctionName - 类中的方法名称aParameterClassTypes - 方法的参数类型名称errorInfo - 如果函数执行的结果是false,需要输出的错误信息Exceptionpublic void addFunctionOfClassMethod(String name, String aClassName, String aFunctionName, Class<?>[] aParameterClassTypes, String[] aParameterDesc, String[] aParameterAnnotation, String errorInfo) throws Exception
name - 函数名称aClassName - 类名称aFunctionName - 类中的方法名称aParameterClassTypes - 方法的参数类型名称aParameterDesc - 方法的参数说明aParameterAnnotation - 方法的参数注解errorInfo - 如果函数执行的结果是false,需要输出的错误信息Exceptionpublic void addFunctionOfClassMethod(String name, String aClassName, String aFunctionName, String[] aParameterTypes, String errorInfo) throws Exception
name - 函数名称aClassName - 类名称aFunctionName - 类中的方法名称aParameterTypes - 方法的参数类型名称errorInfo - 如果函数执行的结果是false,需要输出的错误信息Exceptionpublic void addFunctionOfClassMethod(String name, String aClassName, String aFunctionName, String[] aParameterTypes, String[] aParameterDesc, String[] aParameterAnnotation, String errorInfo) throws Exception
name - 函数名称aClassName - 类名称aFunctionName - 类中的方法名称aParameterTypes - 方法的参数类型名称aParameterDesc - 方法的参数说明aParameterAnnotation - 方法的参数注解errorInfo - 如果函数执行的结果是false,需要输出的错误信息Exceptionpublic void addFunctionOfServiceMethod(String name, Object aServiceObject, String aFunctionName, Class<?>[] aParameterClassTypes, String errorInfo) throws Exception
name - aServiceObject - aFunctionName - aParameterClassTypes - errorInfo - Exceptionpublic void addFunctionOfServiceMethod(String name, Object aServiceObject, String aFunctionName, Class<?>[] aParameterClassTypes, String[] aParameterDesc, String[] aParameterAnnotation, String errorInfo) throws Exception
name - aServiceObject - aFunctionName - aParameterClassTypes - aParameterDesc - 方法的参数说明aParameterAnnotation - 方法的参数注解errorInfo - Exceptionpublic void addFunctionOfServiceMethod(String name, Object aServiceObject, String aFunctionName, String[] aParameterTypes, String errorInfo) throws Exception
name - aServiceObject - aFunctionName - aParameterTypes - errorInfo - Exceptionpublic void addFunctionOfServiceMethod(String name, Object aServiceObject, String aFunctionName, String[] aParameterTypes, String[] aParameterDesc, String[] aParameterAnnotation, String errorInfo) throws Exception
Exceptionpublic void addOperator(String name, Operator op) throws Exception
name - op - Exceptionpublic void addOperator(String name, String aRefOpername, Operator op) throws Exception
name - 操作符号名称aRefOpername - 参照的操作符号,例如 "+","--"等op - Exceptionpublic void addOperatorWithAlias(String keyWordName, String realKeyWordName, String errorInfo) throws Exception
keyWordName - realKeyWordName - errorInfo - Exceptionpublic OperatorBase replaceOperator(String name, OperatorBase op)
name - public ExpressPackage getRootExpressPackage()
public void clearExpressCache()
public Object executeByExpressName(String name, IExpressContext<String,Object> context, List<String> errorList, boolean isTrace, boolean isCatchException, org.apache.commons.logging.Log aLog) throws Exception
name - context - errorList - isTrace - isCatchException - aLog - Exception@Deprecated public Object execute(InstructionSet[] instructionSets, IExpressContext<String,Object> context, List<String> errorList, boolean isTrace, boolean isCatchException, org.apache.commons.logging.Log aLog) throws Exception
instructionSets - context - errorList - isTrace - isCatchException - aLog - Exceptionpublic Object execute(InstructionSet instructionSets, IExpressContext<String,Object> context, List<String> errorList, boolean isTrace, boolean isCatchException, org.apache.commons.logging.Log aLog) throws Exception
instructionSets - context - errorList - isTrace - isCatchException - aLog - Exceptionpublic Object execute(String expressString, IExpressContext<String,Object> context, List<String> errorList, boolean isCache, boolean isTrace) throws Exception
expressString - 程序文本context - 执行上下文errorList - 输出的错误信息ListisCache - 是否使用Cache中的指令集isTrace - 是否输出详细的执行指令信息Exceptionpublic Object execute(String expressString, IExpressContext<String,Object> context, List<String> errorList, boolean isCache, boolean isTrace, org.apache.commons.logging.Log aLog) throws Exception
expressString - 程序文本context - 执行上下文errorList - 输出的错误信息ListisCache - 是否使用Cache中的指令集isTrace - 是否输出详细的执行指令信息aLog - 输出的logExceptionpublic RuleResult executeRule(String expressString, IExpressContext<String,Object> context, boolean isCache, boolean isTrace) throws Exception
Exceptionpublic InstructionSet parseInstructionSet(String text) throws Exception
text - Exceptionpublic ExportItem[] getExportInfo()
public InstructionSet getInstructionSetFromLocalCache(String expressString) throws Exception
expressString - Exceptionpublic InstructionSet createInstructionSet(ExpressNode root, String type) throws Exception
Exceptionpublic void createInstructionSet(ExpressNode root, InstructionSet result) throws Exception
Exceptionpublic boolean createInstructionSetPrivate(InstructionSet result, Stack<ForRelBreakContinue> forStack, ExpressNode node, boolean isRoot) throws Exception
Exceptionpublic String[] getOutVarNames(String express) throws Exception
express - Exceptionpublic String[] getOutFunctionNames(String express) throws Exception
Exceptionpublic boolean isShortCircuit()
public void setShortCircuit(boolean isShortCircuit)
Copyright © 2012–2018 Alibaba Group. All rights reserved.