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;
|
|
}
|
|
|
|
}
|