5: Create PluginExecutor
This commit is contained in:
@@ -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<Issue> executeForFiles(List<File> files, List<BasePlugin> plugins) {
|
||||
return files.stream()
|
||||
.map(file -> executeForFile(file, plugins))
|
||||
.flatMap(List::stream)
|
||||
.collect(toList());
|
||||
}
|
||||
|
||||
private List<Issue> executeForFile(File file, List<BasePlugin> plugins) {
|
||||
return plugins.stream()
|
||||
.map(plugin -> {
|
||||
plugin.update(file);
|
||||
return plugin.runForIssues();
|
||||
})
|
||||
.flatMap(List::stream)
|
||||
.collect(toList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user