package com.zerohighdef.hush; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; public class WatchCategory { private final String categoryName; private final List patterns; private final List commands; private final boolean cancelMsg; public WatchCategory(String categoryName, List patterns, List commands, boolean cancelMsg) { this.categoryName = categoryName; this.patterns = buildPattern(patterns); this.commands = commands; this.cancelMsg = cancelMsg; } private static List buildPattern(List patternList) { return patternList .stream() .map(p -> Pattern.compile(String.format("(%s)", p))) .collect(Collectors.toList()); } public Matcher checkPatterns(String string) { for (Pattern p: patterns) { Matcher matcher = p.matcher(string); if (matcher.find()) { return matcher; } } return null; } public String getCategoryName() { return categoryName; } public List getCommands() { return commands; } public boolean getCancelMsg() { return cancelMsg; } }