code: public void publish(final Notification notification) {
          LOGGER.debug("Dispatching notification: " + notification.getClass().toString());
          final ArrayList<Subscription> subscriptions = SUBSCRIPTION_MAP.get(notification.getClass());
          if (subscriptions == null) {
              LOGGER.debug("No subscribers to inform from notification: " + notification.getClass().getName());
              return;
          }
          for (final Subscription subscription: subscriptions) {
              if (subscription.getScope() != null && subscription.getGroup() != null && subscription.getLevel() != null) { // subscription was the most specific
                  if (subscription.getScope().equals(notification.getScope()) && subscription.getGroup().equals(notification.getGroup()) && subscription.getLevel() == notification.getLevel()) {
                      alertSubscriber(notification, subscription.getSubscriber());
                  }
              } else if (subscription.getGroup() != null && subscription.getLevel() != null) { // subscription was very specific
                  if (subscription.getGroup().equals(notification.getGroup()) && subscription.getLevel() == notification.getLevel()) {
                      alertSubscriber(notification, subscription.getSubscriber());
                  }
              } else if (subscription.getGroup() != null) { // subscription was somewhat specific
                  if (subscription.getGroup().equals(notification.getGroup())) {
                      alertSubscriber(notification, subscription.getSubscriber());
                  }
              } else if (subscription.getLevel() != null) { // subscription was somewhat specific
                  if (subscription.getLevel() == notification.getLevel()) {
                      alertSubscriber(notification, subscription.getSubscriber());
                  }
              } else { // subscription was not specific
                  alertSubscriber(notification, subscription.getSubscriber());
              }
          }
      }
docs: {@inheritDoc}
  @since 1.3.0