final Set<EventRegistration> registrationsWithValue = new HashSet<EventRegistration>();
final Set<EventRegistration> registrationsWithoutValue = new HashSet<EventRegistration>();
// iterate on candidates.
for (final EventRegistration candidate : candidates) {
Result result = Result.NONE;
final EventFilter filter = candidate.getFilter();
if (emptyFilter(filter)) {
result = processEmptyFilter();
} else if (queryEventFilter(filter)) {
result = processQueryEventFilter(filter, eventType, dataKey, dataOldValue, dataValue);
} else if (filter.eval(dataKey)) {
result = processEntryEventFilter(filter);
}
registerCandidate(result, candidate, registrationsWithValue, registrationsWithoutValue);
}
if (registrationsWithValue.isEmpty() && registrationsWithoutValue.isEmpty()) {