package com.constellio.model.conf.ldap;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
public class RegexFilter implements Filter {
private String acceptedRegex;
private String rejectedRegex;
private Pattern acceptedPattern;
private Pattern rejectedPattern;
public RegexFilter(String acceptedRegex, String rejectedRegex) {
this.acceptedRegex = acceptedRegex;
this.rejectedRegex = rejectedRegex;
if (acceptedRegex != null && StringUtils.isNotBlank(acceptedRegex)) {
this.acceptedPattern = Pattern.compile(acceptedRegex);
}
if (rejectedRegex != null && StringUtils.isNotBlank(rejectedRegex)) {
this.rejectedPattern = Pattern.compile(rejectedRegex);
}
}
@Override
public Boolean isAccepted(String word) {
if (accepted(word)) {
return !rejected(word);
} else {
return false;
}
}
private boolean rejected(String word) {
if (this.rejectedPattern == null) {
return false;
}
return this.rejectedPattern.matcher(word).matches();
}
private boolean accepted(String word) {
if (this.acceptedPattern == null) {
return true;
}
return this.acceptedPattern.matcher(word).matches();
}
public String getAcceptedRegex() {
return acceptedRegex;
}
public String getRejectedRegex() {
return rejectedRegex;
}
}