in dubbo-admin-server/src/main/java/org/apache/dubbo/admin/common/util/RouteUtils.java [408:465]
static Map<String, MatchPair> parseNameAndValueListString2Condition(Map<String, String> params, Map<String, String> notParams) {
Map<String, MatchPair> condition = new HashMap<String, MatchPair>();
for (Entry<String, String> entry : params.entrySet()) {
String valueListString = entry.getValue();
if (StringUtils.isBlank(valueListString)) {
continue;
}
String[] list = VALUE_LIST_SEPARATOR.split(valueListString);
Set<String> set = new HashSet<String>();
for (String item : list) {
if (StringUtils.isBlank(item)) {
continue;
}
set.add(item.trim());
}
if (set.isEmpty()) {
continue;
}
String key = entry.getKey();
MatchPair matchPair = condition.get(key);
if (null == matchPair) {
matchPair = new MatchPair();
condition.put(key, matchPair);
}
matchPair.matches = set;
}
for (Entry<String, String> entry : notParams.entrySet()) {
String valueListString = entry.getValue();
if (StringUtils.isBlank(valueListString)) {
continue;
}
String[] list = VALUE_LIST_SEPARATOR.split(valueListString);
Set<String> set = new HashSet<String>();
for (String item : list) {
if (StringUtils.isBlank(item)) {
continue;
}
set.add(item.trim());
}
if (set.isEmpty()) {
continue;
}
String key = entry.getKey();
MatchPair matchPair = condition.get(key);
if (null == matchPair) {
matchPair = new MatchPair();
condition.put(key, matchPair);
}
matchPair.unmatches = set;
}
return condition;
}