package com.easyooo.framework.rule; /** *规则执行器接口定义,所有的脚本内容都会间接实现该类,动态编译成Class字节码文件, *在执行的过程中脚本引擎将利用Java多态的特性执行接口函数 * *除了<code>Rhino</code> 实现的JS Engine,它不会实现该接口, *而是直接以脚本的方式执行 * * @author Killer */ public interface RuleExecutor { /** * 在脚本中都可以使用global以及local两个内置参数引用, * 具体的值依赖于系统业务实现,在脚本中使用的过程中,global与local的作用是一致的。 * 只是分别属于两个作用域的参数,与<code>Http Request</code> * <code>Http Session</code>有着异曲同工之处 * * <p> 在脚本中可直接使用: </p> * <ul> * <li>global.get("xxx")</li> * <li>local.get("xxx")</li> * </ul> * * 这种用法取决于脚本引擎的实现 * 在<b>Rhino</b>引擎中,可以直接使用如 <code>global.xxx</code> * * @param global * @param local * @return * @throws RuleException */ Object eval(RuleContext global, RuleContext local)throws RuleException; }