}
@SuppressWarnings({"unchecked"})
public boolean match(MatcherContext<?> context) {
Matcher matcher = context.getMatcher();
boolean matched = matcher.match(context);
if (filter.apply(new Tuple2<Context<?>, Boolean>(context, matched))) {
print(context, matched);
}
return matched;
}