package mireka.filter.local.table;
import java.util.regex.Pattern;
import mireka.address.LocalPart;
/**
* RegexLocalPart compares the local part of an address with the specified
* regular expression.
*/
public class RegexLocalPart implements LocalPartSpecification {
private String regex;
private Pattern pattern;
@Override
public boolean isSatisfiedBy(LocalPart localPart) {
return pattern.matcher(localPart.displayableName()).matches();
}
@Override
public String toString() {
return "localPart=regex:" + regex;
}
/**
* @x.category GETSET
*/
public String getRegex() {
return regex;
}
/**
* @x.category GETSET
*/
public void setRegex(String regex) {
this.regex = regex;
this.pattern =
Pattern.compile(regex, Pattern.CASE_INSENSITIVE
| Pattern.UNICODE_CASE);
}
}