package org.rakam.report; import java.util.concurrent.CompletableFuture; import java.util.function.Function; public class DelegateQueryExecution implements QueryExecution { private final QueryExecution execution; private final Function<QueryResult, QueryResult> function; public DelegateQueryExecution(QueryExecution execution, Function<QueryResult, QueryResult> function) { this.execution = execution; this.function = function; } @Override public QueryStats currentStats() { return execution.currentStats(); } @Override public boolean isFinished() { return execution.isFinished(); } @Override public CompletableFuture<QueryResult> getResult() { return execution.getResult().thenApply(function); } @Override public void kill() { execution.kill(); } }