44 lines
907 B
Java
44 lines
907 B
Java
|
|
package com.solution.rule.handler;
|
||
|
|
|
||
|
|
import cn.hutool.core.util.ObjectUtil;
|
||
|
|
import com.solution.rule.domain.RuleParam;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 规则链抽象类
|
||
|
|
*/
|
||
|
|
public abstract class AbstractRuleChainHandler {
|
||
|
|
|
||
|
|
|
||
|
|
private AbstractRuleChainHandler nextHandler;
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 执行过滤方法
|
||
|
|
* @param ruleParam
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
public abstract RuleParam doHandler(RuleParam ruleParam);
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 执行下一个处理器
|
||
|
|
* @param ruleParam
|
||
|
|
* @return
|
||
|
|
*/
|
||
|
|
public RuleParam doNextHandler(RuleParam ruleParam){
|
||
|
|
if(ObjectUtil.isEmpty(nextHandler) || ObjectUtil.isNotEmpty(ruleParam)){
|
||
|
|
return ruleParam;
|
||
|
|
}
|
||
|
|
return nextHandler.doHandler(ruleParam);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 设置下游handler
|
||
|
|
* @param nextHandler
|
||
|
|
*/
|
||
|
|
public void setNextHandler(AbstractRuleChainHandler nextHandler) {
|
||
|
|
this.nextHandler = nextHandler;
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|