com.supermap.dtf.expression
类 ExpressionManager
- java.lang.Object
-
- com.supermap.dtf.expression.ExpressionManager
-
-
字段概要
字段 限定符和类型 字段和说明 static String
CUSTOM_TAG
自定义标签,如果存进来的函数没有标签的话,就会存到这个标签下static String
EXPRESSION_TAG
表达式字符串有这个参数才会对整个字符串做计算static String
FUNCTION_PREFIX
命名的函数必须要带有此标识static String
OPERATOR_TAG
操作符标签
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 void
addFunctionOfClassStaticMethod(String functionTag, String name, String className, String functionName, String[] parameterTypes, String errorInfo)
添加一个类的静态函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"void
addFunctionOfServiceMethod(String functionTag, String name, Object serviceObject, String functionName, Class<?>[] parameterClassTypes, String errorInfo)
用于将一个用户自己定义的对象(例如Spring对象)方法转换为一个表达式计算的函数void
addOperatorFunction(String tag, String name, com.ql.util.express.instruction.op.OperatorBase op)
添加操作符函数boolean
checkSyntax(String text)
提供简答的语法检查,保证可以在运行期本地环境编译成指令Object
execute(String expressString)
Object
execute(String expressString, com.ql.util.express.IExpressContext<String,Object> context)
执行表达式String
executeFunctionExpression(String expression, com.ql.util.express.IExpressContext expressContext)
计算表达式里边的函数,并将真正的值替换到原表达式中返回,过程中抛出异常则返回原表达式List<String>
getAllFunctionTags()
获取所有的函数标签,可以通过这些标签来获取所对应的函数com.ql.util.express.instruction.op.OperatorBase
getFunction(String name)
获取函数定义,通过函数定义可以拿到参数的说明信息List<String>
getFunctionNameByTag(String tag)
static ExpressionManager
getInstance()
Class<?>[]
getParamsTypes(String name)
获取这个函数的参数类型com.ql.util.express.ExpressRunner
getRunner()
boolean
isFunctionName(String name)
是否存在此函数com.ql.util.express.instruction.op.OperatorBase
replaceOperator(String name, com.ql.util.express.instruction.op.OperatorBase operatorBase)
替换操作符处理Object
updateFunctionAndExecute(String name, com.ql.util.express.instruction.op.OperatorBase operatorBase, String expressString, com.ql.util.express.IExpressContext<String,Object> context)
提供替换函数的操作,并执行表达式 源于可能存在一些取值操作,但是取值取决于另外个对象,而另外个对象是常变化的,所以需要每次替换下函数
-
-
-
方法详细资料
-
getRunner
public com.ql.util.express.ExpressRunner getRunner()
-
getInstance
public static ExpressionManager getInstance()
-
addOperatorFunction
public void addOperatorFunction(String tag, String name, com.ql.util.express.instruction.op.OperatorBase op)
添加操作符函数- 参数:
name
- 函数名op
- 函数
-
addFunctionOfClassStaticMethod
public void addFunctionOfClassStaticMethod(String functionTag, String name, String className, String functionName, String[] parameterTypes, String errorInfo)
添加一个类的静态函数定义,例如:Math.abs(double) 映射为表达式中的 "取绝对值(-5.0)"- 参数:
functionTag
- 函数标签,如是String 或者 Maths,用于分类,则默认归于自定义标签中name
- 函数名称, 以@开头className
- 类名称functionName
- 类中的方法名称parameterTypes
- 方法的参数类型名称errorInfo
- 如果函数执行的结果是false,需要输出的错误信息
-
addFunctionOfServiceMethod
public void addFunctionOfServiceMethod(String functionTag, String name, Object serviceObject, String functionName, Class<?>[] parameterClassTypes, String errorInfo)
用于将一个用户自己定义的对象(例如Spring对象)方法转换为一个表达式计算的函数- 参数:
functionTag
- 函数标签,如是 String 或者 Maths,用于分类,如果为null,则默认归于自定义标签中name
- 函数名,以@开头serviceObject
- 对象functionName
- 对象中的方法名称parameterClassTypes
- 参数类型数组errorInfo
- 错误信息
-
execute
public Object execute(String expressString, com.ql.util.express.IExpressContext<String,Object> context)
执行表达式- 参数:
expressString
- 表达式字符串context
- 上下文信息- 返回:
- 返回表达式结果,如果执行失败,直接返回表达式字符串
-
updateFunctionAndExecute
public Object updateFunctionAndExecute(String name, com.ql.util.express.instruction.op.OperatorBase operatorBase, String expressString, com.ql.util.express.IExpressContext<String,Object> context)
提供替换函数的操作,并执行表达式 源于可能存在一些取值操作,但是取值取决于另外个对象,而另外个对象是常变化的,所以需要每次替换下函数- 参数:
name
- 函数名operatorBase
- 函数expressString
- 表达式context
- 上下文- 返回:
- 返回表达式结果,如果执行失败,直接返回表达式字符串
-
getFunction
public com.ql.util.express.instruction.op.OperatorBase getFunction(String name)
获取函数定义,通过函数定义可以拿到参数的说明信息- 参数:
name
- 函数名称- 返回:
-
replaceOperator
public com.ql.util.express.instruction.op.OperatorBase replaceOperator(String name, com.ql.util.express.instruction.op.OperatorBase operatorBase)
替换操作符处理- 参数:
name
- 操作符名operatorBase
- 新的操作符对象
-
checkSyntax
public boolean checkSyntax(String text)
提供简答的语法检查,保证可以在运行期本地环境编译成指令- 参数:
text
- 表达式字符串- 返回:
- 是否符合表达式规范
-
isFunctionName
public boolean isFunctionName(String name)
是否存在此函数- 参数:
name
- 函数名- 返回:
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.