package com.ctrip.framework.apollo.biz.grayReleaseRule; import com.ctrip.framework.apollo.common.dto.GrayReleaseRuleItemDTO; import java.util.Set; /** * @author Jason Song(song_s@ctrip.com) */ public class GrayReleaseRuleCache { private long ruleId; private String branchName; private String namespaceName; private long releaseId; private long loadVersion; private int branchStatus; private Set<GrayReleaseRuleItemDTO> ruleItems; public GrayReleaseRuleCache(long ruleId, String branchName, String namespaceName, long releaseId, int branchStatus, long loadVersion, Set<GrayReleaseRuleItemDTO> ruleItems) { this.ruleId = ruleId; this.branchName = branchName; this.namespaceName = namespaceName; this.releaseId = releaseId; this.branchStatus = branchStatus; this.loadVersion = loadVersion; this.ruleItems = ruleItems; } public long getRuleId() { return ruleId; } public Set<GrayReleaseRuleItemDTO> getRuleItems() { return ruleItems; } public String getBranchName() { return branchName; } public int getBranchStatus() { return branchStatus; } public long getReleaseId() { return releaseId; } public long getLoadVersion() { return loadVersion; } public void setLoadVersion(long loadVersion) { this.loadVersion = loadVersion; } public String getNamespaceName() { return namespaceName; } public boolean matches(String clientAppId, String clientIp) { for (GrayReleaseRuleItemDTO ruleItem : ruleItems) { if (ruleItem.matches(clientAppId, clientIp)) { return true; } } return false; } }