class SynchronousEventHub extends EventHub<E> {

  @Override
  @SuppressWarnings("deprecation")
  public void processEvent(E event) {
    for (Map.Entry<EventListener<E>, EventFilter<E>> curEntry
             : new HashMap<>(getEventListeners()).entrySet()) {
      try {
        if (curEntry.getValue().accept(event)) {
          curEntry.getKey().processEvent(event);
        }
      }
      catch (Exception exc) {
        LOG.warn("Exception thrown by event handler", exc);
      }
    }
  }

  public  SynchronousEventHub();

}