package org.webpieces.webserver.filters.app; import java.util.concurrent.CompletableFuture; import javax.inject.Inject; import org.webpieces.router.api.actions.Action; import org.webpieces.router.api.dto.MethodMeta; import org.webpieces.router.api.routing.RouteFilter; import org.webpieces.util.filters.Service; public class StatefulFilter extends RouteFilter<Integer> { private Integer initialConfig; private Remote svc; @Inject public StatefulFilter(Remote svc) { this.svc = svc; } @Override public void initialize(Integer initialConfig) { this.initialConfig = initialConfig; } @Override public CompletableFuture<Action> filter(MethodMeta meta, Service<MethodMeta, Action> nextFilter) { svc.record(initialConfig); return nextFilter.invoke(meta); } }