class QueryExecutor {

    public <T extends ActionRequest> Action resolve(T request) {
        Action action;
        action = analyticsLoader.getAction(request);
        if(null == action) {
            throw FoxtrotExceptions.createUnresolvableActionException(request);
        }
        return action;
    }

    @Inject public  QueryExecutor(
            AnalyticsLoader analyticsLoader,
            ExecutorService executorService,
            List<ActionExecutionObserver> executionObservers);

}