From dc44f817837dc830c2fb421f256cbfc4adccd089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Sun, 31 Mar 2019 14:52:08 +0200 Subject: [PATCH] 5: Create PluginExecutor --- .../esa/core/executor/PluginExecutor.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/bartek/esa/core/executor/PluginExecutor.java diff --git a/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java b/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java new file mode 100644 index 0000000..0c3c8f9 --- /dev/null +++ b/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java @@ -0,0 +1,35 @@ +package com.bartek.esa.core.executor; + +import com.bartek.esa.core.archetype.BasePlugin; +import com.bartek.esa.core.model.Issue; + +import javax.inject.Inject; +import java.io.File; +import java.util.List; + +import static java.util.stream.Collectors.toList; + +public class PluginExecutor { + + @Inject + public PluginExecutor() { + + } + + public List executeForFiles(List files, List plugins) { + return files.stream() + .map(file -> executeForFile(file, plugins)) + .flatMap(List::stream) + .collect(toList()); + } + + private List executeForFile(File file, List plugins) { + return plugins.stream() + .map(plugin -> { + plugin.update(file); + return plugin.runForIssues(); + }) + .flatMap(List::stream) + .collect(toList()); + } +}