All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edi.rule.work.interfaces.IJSRuleAssertModel Maven / Gradle / Ivy

package edi.rule.work.interfaces;

import edi.rule.core.JSRuleArgsVessel;
import edi.rule.extend.interfaces.IJSRuleAssert;
import edi.rule.extend.interfaces.IJSRuleModel;
import edi.rule.util.ZSObject;
import edi.rule.util.ZSRule;
import edi.rule.util.ZSString;

/**
 * @author 摩拉克斯
 * @date 2023年7月28日 下午3:11:58
 * 

断言器模型接口,用于框架内置断言器模型的统一处理接口 *

当子节点的name,path,value任何一个属性为空时,则默认从父节点那里继承对应的属性,依此往复 */ public interface IJSRuleAssertModel extends IJSRuleAssert,IJSRuleModel{ /** *

获取执行后的action结果的名字 * */ String getName(); /** *

设置执行后的action结果的名字 * */ void setName(String name); /** *

表示action结果中取值的路径,因此仅当name属性不为空时才有效,其语法如/nodeA/0/nodeC,0表示数组第几个元素,nodeA,nodeC表示属性名称 *

path获取到的数据类型暂时仅支持String,int,double,boolean,当path从name对应的action结果中获取不到相应属性时则默认使用当前的value值 * */ String getPath(); /** *

设置action结果中取值的路径 * */ void setPath(String path); /** *

value为实际的值,当name不为空时则直接取action的执行结果进行覆盖,如果path也不为空时,将会从action结果的path路径中取属性的值进行覆盖 *

注意:如果name,path,value均为空时,则value为空,将不参与范围比较器的判断,如gt,lt,ge,le * */ Object getValue(); /** *

设置实际值的默认值 * */ void setValue(Object value); /** *

如果name不为空,则初始化value的值,将action的结果直接赋值给value,如果path也不为空,那么将会从name对应的action结果中解析path得到的结果来初始化value * @param fName 父节点的name属性,如果当前节点的name为空,则默认从父节点那里继承对应的属性,依此往复 * @param fPath 父节点的path属性,如果当前节点的path为空,则默认从父节点那里继承对应的属性,依此往复 * @param fValue 父节点的value属性,如果当前节点的value为空,则默认从父节点那里继承对应的属性,依此往复 * @param vessel 线程全局变量,spring bean的类中可通过@Autowired方式注入该参数用于获取json请求参数,model类可通过@JSRuleInject注解方式获取 * @see IJSRuleAssertModel#getPath() * */ default void init(String fName, String fPath, Object fValue, JSRuleArgsVessel vessel) { if (ZSString.isBlank(getName())) { setName(fName); } if (ZSString.isBlank(getPath())) { setPath(fPath); } if (ZSObject.isBlank(getValue())) { setValue(fValue); } setValue(ZSRule.parseResult(getName(),getPath(),getValue(),vessel)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy