code: protected void processCompoundEvent (CompoundEvent event)
      {
          List<DEvent> events = event.getEvents();
          int ecount = events.size();
  
          // look up the target object
          DObject target = _objects.get(event.getTargetOid());
          if (target == null) {
              log.debug("Compound event target no longer exists", "event", event);
              return;
          }
  
          // check the permissions on all of the events
          for (int ii = 0; ii < ecount; ii++) {
              DEvent sevent = events.get(ii);
              if (!target.checkPermissions(sevent)) {
                  log.warning("Event failed permissions check", "event", sevent, "target", target);
                  return;
              }
          }
  
          // dispatch the events
          for (int ii = 0; ii < ecount; ii++) {
              dispatchEvent(events.get(ii), target);
          }
  
          // always notify proxies of compound events
          target.notifyProxies(event);
      }
docs: Performs the processing associated with a compound event, notifying listeners and the like.