class SecurityAnalysisExecutionHandlers {

    public static ExecutionHandler<SecurityAnalysisResultWithLog> distributedWithLog(SecurityAnalysisExecutionInput input, int subtaskCount) {
        Preconditions.checkArgument(subtaskCount >= 1, TASK_COUNT_ERROR_MESSAGE, subtaskCount);
        return new SecurityAnalysisExecutionHandler<>(workingDir -> readResultsWithLogs(workingDir, subtaskCount),
            (workingDir, options) -> distributedWithLogsOptions(workingDir, options, subtaskCount),
            (workingDir, cause) -> generateExceptionWithLogs(workingDir, cause, subtaskCount),
            subtaskCount,
            input);
    }

    private  SecurityAnalysisExecutionHandlers();

}