code: public static boolean applyFilters(Object event, Set<EventFilter> filters, StatsTimer filterStats,
                                         String invokerDesc, Logger logger) {
          if (filters.isEmpty()) {
              return true;
          }
          Stopwatch filterStart = filterStats.start();
          try {
              for (EventFilter filter : filters) {
                  if (!filter.apply(event)) {
                      logger.debug(
                              "Event: " + event + " filtered out for : " + invokerDesc + " due to the filter: " + filter);
                      return false;
                  }
              }
              return true;
          } finally {
              filterStart.stop();
          }
      }
docs: Utility method to apply filters for an event, this can be used both by publisher & subscriber code.
  
  @param event The event to apply filter on.
  @param filters Filters to apply.
  @param filterStats Stats timer for applying the filter.
  @param invokerDesc A string description for the invoker, this is required just for logging.
  @param logger Logger instance to use for logging.
  
  @return <code>true</code> if the event should be processed, <code>false</code> if the event should not be
  processed any further i.e. it is filtered out. This will log a debug message when the event is filtered.