@Override
 public void notifyListeners(final InteractionEvent interactionEvent) {
   final InteractionEventDispatcher dispatcher =
       dispatchersByEventClass.get(interactionEvent.getClass());
   if (dispatcher == null) {
     throw new RuntimeException("Unknown InteractionEvent - register into dispatchers map");
   }
   dispatcher.dispatch(interactionEvent);
 }
 /**
  * Convenience method that returns the {@link InteractionEvent#getIdentifier() identifier} of the
  * wrapped {@link #getInteractionEvent() interaction event}.
  *
  * @return
  */
 public Identifier getIdentifier() {
   return interactionEvent.getIdentifier();
 }
 /**
  * Convenience method that returns the {@link InteractionEvent#getAdvisorClass() advisor class} of
  * the wrapped {@link #getInteractionEvent() interaction event}.
  *
  * @return
  */
 public Class<?> getAdvisorClass() {
   return interactionEvent.getAdvisorClass();
 }
 public InteractionException(final InteractionEvent interactionEvent) {
   super(interactionEvent.getReasonMessage());
   this.interactionEvent = interactionEvent;
 }