@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(); } } }
public Optional<String> read(final Target target, final String key) { final String prefix = target.getId(); final String mostSpecific = prefix + "." + key; if (storage.containsKey(mostSpecific)) { return Optional.of(storage.getProperty(mostSpecific)); } else { return Optional.ofNullable(storage.getProperty(key)); } }
@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(); } } }
public Optional<String> read(final Target target, final String key) { final String prefix = target.getId(); final String mostSpecific = prefix + "." + key; if (storage.containsKey(mostSpecific)) { return Optional.of(storage.getProperty(mostSpecific)); } else { return Optional.ofNullable(storage.getProperty(key)); } }
@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); }
private String toId(final Investment investment) { return target.getId() + "-" + investment.getLoanId(); }
private String toId(final Investment investment) { return target.getId() + "-" + investment.getLoanId(); }
public Optional<BigDecimal> getLastKnownBalance(final SessionInfo sessionInfo) { return TenantState.of(sessionInfo) .in(BalanceTracker.class) .getValue(target.getId()) .map(BigDecimal::new); }
public Optional<BigDecimal> getLastKnownBalance(final SessionInfo sessionInfo) { return TenantState.of(sessionInfo) .in(BalanceTracker.class) .getValue(target.getId()) .map(BigDecimal::new); }
public void setLastKnownBalance(final SessionInfo sessionInfo, final BigDecimal newBalance) { TenantState.of(sessionInfo) .in(BalanceTracker.class) .update(b -> b.put(target.getId(), String.valueOf(newBalance))); }
public void setLastKnownBalance(final SessionInfo sessionInfo, final BigDecimal newBalance) { TenantState.of(sessionInfo) .in(BalanceTracker.class) .update(b -> b.put(target.getId(), String.valueOf(newBalance))); }