/** * Invoke the callback instances where the callback method returns a result. * @param invoker the invoker used to invoke the callback * @param <R> the result type * @return the results of the invocation (may be an empty stream if no callbacks * could be called) */ public <R> Stream<R> invokeAnd(Function<C, R> invoker) { Function<C, InvocationResult<R>> mapper = (callbackInstance) -> invoke( callbackInstance, () -> invoker.apply(callbackInstance)); return this.callbackInstances.stream().map(mapper) .filter(InvocationResult::hasResult).map(InvocationResult::get); }
/** * Invoke the callback instances where the callback method returns void. * @param invoker the invoker used to invoke the callback */ public void invoke(Consumer<C> invoker) { this.callbackInstances.forEach((callbackInstance) -> { invoke(callbackInstance, () -> { invoker.accept(callbackInstance); return null; }); }); }
@SuppressWarnings("unchecked") private void customize(MeterRegistry registry) { LambdaSafe .callbacks(MeterRegistryCustomizer.class, asOrderedList(this.customizers), registry) .withLogger(MeterRegistryConfigurer.class) .invoke((customizer) -> customizer.customize(registry)); }
@SuppressWarnings("unchecked") private void invokeCustomizers(T factory, List<WebServerFactoryCustomizer<?>> customizers) { LambdaSafe.callbacks(WebServerFactoryCustomizer.class, customizers, factory) .invoke((customizer) -> customizer.customize(factory)); }
@SuppressWarnings("unchecked") private void postProcessBeforeInitialization(WebServerFactory webServerFactory) { LambdaSafe .callbacks(WebServerFactoryCustomizer.class, getCustomizers(), webServerFactory) .withLogger(WebServerFactoryCustomizerBeanPostProcessor.class) .invoke((customizer) -> customizer.customize(webServerFactory)); }