class QueuingParameterRequestResolver implements ParameterRequestQueue {

    @Override
    public PreparedParameter resolve(String parameterName, ParameterRequest request) {
        Future<PreparedParameter> waitingRequest = currentRequests.get(parameterName);
        if (waitingRequest == null) {
            waitingRequest = executorService.submit(new ParameterResolvingCallable(parameterName, request));
            currentRequests.put(parameterName, waitingRequest);
        }
        return resolvePromise(parameterName, waitingRequest);
    }

    public  QueuingParameterRequestResolver(ExecutorService executorService);

}