package de.flower.common.ui.serialize;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author flowerrrr
*/
public class Filter {
public enum MatchType {
WHITELIST,
BLACKLIST,
NOMATCH;
}
private List<String> whiteList = new ArrayList<String>();
private List<String> blackList = new ArrayList<String>();
public Filter() {
}
public List<String> getWhiteList() {
return whiteList;
}
public void setWhiteList(final List<String> whiteList) {
this.whiteList = whiteList;
}
public List<String> getBlackList() {
return blackList;
}
public void setBlackList(final List<String> blackList) {
this.blackList = blackList;
}
public MatchType matches(final String string) {
if (!matches(blackList, string).isEmpty()) {
return MatchType.BLACKLIST;
} else if (!matches(whiteList, string).isEmpty()) {
return MatchType.WHITELIST;
} else {
return MatchType.NOMATCH;
}
}
public static List<String> matches(List<String> patterns, String string) {
List<String> matches = new ArrayList<String>();
for (String pattern : patterns) {
Matcher m = Pattern.compile(pattern).matcher(string);
while (m.find()) {
final String match = m.group();
matches.add(match);
}
}
return matches;
}
}