package com.cab.component.rule; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.ql.util.express.ExpressRunner; import com.ql.util.express.IExpressContext; /** * 条件的集合 * @author fanhuibin * */ public class Rule { public String name; private ExpressRunner runner = new ExpressRunner(); private Map methodDescription = new HashMap(); /** * 添加一个条件判断 * @param name 函数的中文名 * @param aClassName 类名称 * @param aFunctionName 类中的方法名称 * @param aParameterTypes 参数的类型 * @param errorInfo 错误的消息 * @throws Exception */ public void addCondition(String name, String aClassName, String aFunctionName, String[] aParameterTypes, String errorInfo) throws Exception{ runner.addFunctionOfClassMethod(name, aClassName, aFunctionName, aParameterTypes, errorInfo); //从注解中获取中文描述 } /** * 执行逻辑判断 * @param expressContext * @param expression * @throws Exception */ public List validate(IExpressContext expressContext,String expression) throws Exception{ List errorInfo = new ArrayList(); Boolean result = (Boolean)runner.execute(expression, expressContext, errorInfo, true, false); return errorInfo; } }