code: protected <E> void dispatchEvent(E event, Collection<Throwable> errors) {
  
      @SuppressWarnings({ "unchecked", "rawtypes" })
      Class<E> eventType = (Class) event.getClass();
      EventDispatcher<? super E> eventDispatcher = getEventDispatcherOptional(eventType);
      boolean dispatched = false;
      if (eventDispatcher != null) {
        dispatched = eventDispatcher.handleEvent(event, errors);
      }
      if (!dispatched) {
        handleUndispatchedEvent(event);
      }
    }
docs: Dispatches the given {@link net.sf.mmm.util.event.api.Event}.
  
  @param <E> is the generic type of {@code event}.
  @param event is the {@link net.sf.mmm.util.event.api.Event} to dispatch.
  @param errors is a {@link Collection} where errors are collected.