package com.traxel.lumbermill.filter;
import com.traxel.lumbermill.event.Event;
import java.util.regex.Pattern;
public class Regex implements Filter {
public static final int MESSAGE = 0;
private final FilterNotifier FILTER_NOTIFIER;
private Pattern _pattern;
private boolean active = true;
{
FILTER_NOTIFIER = new FilterNotifier(this);
}
}
public Regex(
final int field) {
}
public void setRegex(String regex)
throws Exception {
if ((regex == null) || "".equals(regex)) {
_pattern = null;
} else {
regex = ".*" + regex + ".*";
regex = regex.replaceAll("(\\.\\*)+", ".*");
_pattern = Pattern.compile(regex, Pattern.DOTALL);
}
FILTER_NOTIFIER.fireFilterChange();
}
return _pattern;
}
@Override
return active;
}
@Override
public void setActive(
final boolean active) {
this.active = active;
}
@Override
FILTER_NOTIFIER.addFilterListener(listener);
}
@Override
FILTER_NOTIFIER.addFilterListener(listener);
}
@Override
public boolean isVisible(
final Event event) {
if (getPattern() == null) {
return true;
}
if (event.getMessage() == null) {
return false;
}
return getPattern().matcher(event.getMessage()).matches();
}
@Override
return "Regex";
}
}