@Override public void search(Input input, Results results, int runNumber, String runId) { Result result = new Result(rules, input, this, runNumber, runId); result.start(); int n = input.getLength(); List<Runnable> runnables = new ArrayList<>(); rules.forEach( rule -> { Runnable runnable = new RaitaRunnable(input, result, n, rule); runnables.add(runnable); }); executeSearch(runnables); result.end(); results.addResult(result); }