code: protected boolean dispatchEvent (DEvent event, DObject target)
      {
          boolean notify = true; // assume always notify
          try {
              // do any internal management necessary based on this event
              EventHelper helper = _helpers.get(event.getClass());
              if (helper != null) {
                  // if helper returns false, we abort event processing
                  if (!helper.invoke(event, target)) {
                      return false;
                  }
              }
  
              // everything's good so far, apply the event to the object
              notify = event.applyToObject(target);
  
              // if the event returns false from applyToObject, this means it's a silent event and we
              // shouldn't notify the listeners
              if (notify) {
                  target.notifyListeners(event);
              }
  
          } catch (VirtualMachineError e) {
              handleFatalError(event, e);
  
          } catch (Throwable t) {
              log.warning("Failure processing event", "event", event, "target", target, t);
          }
  
          // track the number of events dispatched
          ++_eventCount;
          ++_current.eventCount;
          return true;
      }
docs: Dispatches an event after the target object has been resolved and the permissions have been
  checked. This is used by {@link #processEvent} and {@link #processCompoundEvent}.
  
  @return the value returned by {@link DEvent#applyToObject}.