Files
auto-solution/solution-rule/src/main/java/com/solution/rule/handler/AbstractRuleChainHandler.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;
}
}