@Override public <T extends Event> Stream<EventListenerSupplier<T>> findListeners(final Class<T> eventType) { final NotificationEventListenerSupplier<T> l = new NotificationEventListenerSupplier<>(eventType); final long tenants = getTenantConfigurations() .peek(config -> config.registerListener(l)) .count(); if (tenants > 0) { return Stream.of(Target.values()).map(e -> () -> l.apply(e)); } else { return Stream.empty(); } } }
@Override public void valueSet(final ConfigStorage newValue) { final Map<Target, EventListener<T>> result = new EnumMap<>(Target.class); for (final Target target : Target.values()) { final AbstractTargetHandler handler = getTargetHandler(newValue, target); if (!handler.isEnabledInSettings()) { LOGGER.debug("Notifications are disabled: {}.", target.getId()); continue; } final Optional<EventListener<T>> maybe = findListener(handler); maybe.ifPresent(listener -> result.put(target, listener)); } value.set(result); }
@Override public <T extends Event> Stream<EventListenerSupplier<T>> findListeners(final Class<T> eventType) { final NotificationEventListenerSupplier<T> l = new NotificationEventListenerSupplier<>(eventType); final long tenants = getTenantConfigurations() .peek(config -> config.registerListener(l)) .count(); if (tenants > 0) { return Stream.of(Target.values()).map(e -> () -> l.apply(e)); } else { return Stream.empty(); } } }
@Override public void valueSet(final ConfigStorage newValue) { final Map<Target, EventListener<T>> result = new EnumMap<>(Target.class); for (final Target target : Target.values()) { final AbstractTargetHandler handler = getTargetHandler(newValue, target); if (!handler.isEnabledInSettings()) { LOGGER.debug("Notifications are disabled: {}.", target.getId()); continue; } final Optional<EventListener<T>> maybe = findListener(handler); maybe.ifPresent(listener -> result.put(target, listener)); } value.set(result); }