// Returns a boolean expression that should be used to check whether to invoke the given event
// handler, based on the filters applied to it
private String getFilter(JMethod method) throws UnableToCompleteException {
StringBuilder predicate = new StringBuilder();
When annotation = method.getAnnotation(When.class);
boolean first = true;
for (Class<?> filter : annotation.value()) {
if (!classHasZeroArgConstructor(filter)) {
logger.log(Type.ERROR, String.format(
"Class %s extending EventFilter must define a public zero-argument constructor.",
filter.getSimpleName()));
throw new UnableToCompleteException();