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

cn.featherfly.common.policy.WhiteBlackListPolicy Maven / Gradle / Ivy


package cn.featherfly.common.policy;

import java.util.ArrayList;
import java.util.List;

/**
 * 

* 白黑名单上传策略,白名单优先级更高 *

* @param 需要判断的类型 * @author 钟冀 */ public abstract class WhiteBlackListPolicy implements WhiteListPolicy, BlackListPolicy{ /** */ public WhiteBlackListPolicy() { } private List blackList = new ArrayList(); private List whiteList = new ArrayList(); /** * {@inheritDoc} */ @Override public void setBlackList(List policys) { this.blackList = policys; } /** * {@inheritDoc} */ @Override public void setWhiteList(List policys) { this.whiteList = policys; } /** * 返回blackList * @return blackList */ public List getBlackList() { return blackList; } /** * 返回whiteList * @return whiteList */ public List getWhiteList() { return whiteList; } /** * {@inheritDoc} */ @Override public boolean isAllow(T target) { if (isInBlackList(target)) { return false; } return isInWhiteList(target); } /** *

* 判断传入目标是否一致 *

* @param target1 target1 * @param target2 target2 * @return 传入目标是否一致 */ protected abstract boolean isEquals(T target1, T target2); /** *

* 判断传入目标是否在黑名单中 *

* @param target target * @return 是否在黑名单 */ protected boolean isInBlackList(T target) { for (T t : blackList) { if (isEquals(target, t)) { return true; } } return false; } /** *

* 判断传入目标是否在白名单中 *

* @param target target * @return 是否在白名单 */ protected boolean isInWhiteList(T target) { for (T t : whiteList) { if (isEquals(target, t)) { return true; } } return false; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy