code: public void invokeCallbacks(String eventName, T eventData) {
          String name = eventName;
          
          while (!StringUtils.isEmpty(name)) {
              Iterable<IGenericEvent<T>> subscribers = getSubscribers(name);
              
              if (subscribers != null) {
                  for (IGenericEvent<T> subscriber : subscribers) {
                      try {
                          if (log.isDebugEnabled()) {
                              log.debug(String.format("Firing local Event[name=%s,data=%s]", eventName, eventData));
                          }
                          subscriber.eventCallback(eventName, eventData);
                      } catch (Throwable e) {
                          log.error("Error during local event callback.", e);
                      }
                  }
              }
              
              name = stripLevel(name);
          }
      }
docs: Invokes callbacks on all subscribers of this and parent events.
  
  @param eventName Name of the event.
  @param eventData The associated event data.