From 7358569eab83960ff00550f7b2369f22df50f2a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Thu, 4 Apr 2019 10:18:45 +0200 Subject: [PATCH] 9: Replace all Lists with Sets --- src/main/java/com/bartek/esa/EsaMain.java | 6 +++--- .../com/bartek/esa/analyser/core/Analyser.java | 5 ++--- .../com/bartek/esa/core/archetype/BasePlugin.java | 8 ++++---- .../com/bartek/esa/core/archetype/Plugin.java | 4 ++-- .../bartek/esa/core/executor/PluginExecutor.java | 15 +++++++-------- .../dispatcher/dispatcher/MethodDispatcher.java | 6 +++--- .../com/bartek/esa/dispatcher/model/Action.java | 3 +-- .../bartek/esa/formatter/archetype/Formatter.java | 4 ++-- .../esa/formatter/formatter/ColorFormatter.java | 4 ++-- .../esa/formatter/formatter/SimpleFormatter.java | 4 ++-- 10 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/bartek/esa/EsaMain.java b/src/main/java/com/bartek/esa/EsaMain.java index c9ea10c..96fffa8 100644 --- a/src/main/java/com/bartek/esa/EsaMain.java +++ b/src/main/java/com/bartek/esa/EsaMain.java @@ -12,7 +12,7 @@ import com.bartek.esa.dispatcher.model.DispatcherActions; import com.bartek.esa.formatter.provider.FormatterProvider; import javax.inject.Inject; -import java.util.List; +import java.util.Set; public class EsaMain { private final CliArgsParser cliArgsParser; @@ -37,13 +37,13 @@ public class EsaMain { .build(); CliArgsOptions options = cliArgsParser.parse(args); - List issues = methodDispatcher.dispatchMethod(options, dispatcherActions); + Set issues = methodDispatcher.dispatchMethod(options, dispatcherActions); formatterProvider.provide(options).format(issues); exitWithErrorIfAnyIssueIsAnError(issues); } - private void exitWithErrorIfAnyIssueIsAnError(List issues) { + private void exitWithErrorIfAnyIssueIsAnError(Set issues) { if(issues.stream().anyMatch(i -> i.getSeverity() == Severity.ERROR)) { System.exit(1); } diff --git a/src/main/java/com/bartek/esa/analyser/core/Analyser.java b/src/main/java/com/bartek/esa/analyser/core/Analyser.java index 9848f87..a4ba6b6 100644 --- a/src/main/java/com/bartek/esa/analyser/core/Analyser.java +++ b/src/main/java/com/bartek/esa/analyser/core/Analyser.java @@ -8,7 +8,6 @@ import com.bartek.esa.file.provider.FileProvider; import java.io.File; import java.util.Collections; -import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -25,13 +24,13 @@ public abstract class Analyser { this.fileProvider = fileProvider; } - public List analyse(String source, Set pluginCodes, Set excludeCodes) { + public Set analyse(String source, Set pluginCodes, Set excludeCodes) { String newSource = prepareSources(source); File manifest = getManifest(newSource); Set files = getFiles(newSource); Set selectedPlugins = getPlugins(pluginCodes, excludeCodes); - List issues = pluginExecutor.executeForFiles(manifest, files, selectedPlugins); + Set issues = pluginExecutor.executeForFiles(manifest, files, selectedPlugins); performCleaning(newSource); return issues; } diff --git a/src/main/java/com/bartek/esa/core/archetype/BasePlugin.java b/src/main/java/com/bartek/esa/core/archetype/BasePlugin.java index 391ac16..5b0db77 100644 --- a/src/main/java/com/bartek/esa/core/archetype/BasePlugin.java +++ b/src/main/java/com/bartek/esa/core/archetype/BasePlugin.java @@ -5,11 +5,11 @@ import com.bartek.esa.core.model.object.Issue; import org.w3c.dom.Document; import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.HashSet; +import java.util.Set; public abstract class BasePlugin implements Plugin { - private List issues = new ArrayList<>(); + private Set issues = new HashSet<>(); private Document manifest; private File file; @@ -21,7 +21,7 @@ public abstract class BasePlugin implements Plugin { } @Override - public List runForIssues() { + public Set runForIssues() { run(file); return issues; } diff --git a/src/main/java/com/bartek/esa/core/archetype/Plugin.java b/src/main/java/com/bartek/esa/core/archetype/Plugin.java index ddbf1d4..ffbd990 100644 --- a/src/main/java/com/bartek/esa/core/archetype/Plugin.java +++ b/src/main/java/com/bartek/esa/core/archetype/Plugin.java @@ -4,10 +4,10 @@ import com.bartek.esa.core.model.object.Issue; import org.w3c.dom.Document; import java.io.File; -import java.util.List; +import java.util.Set; public interface Plugin { boolean supports(File file); void update(File file, Document manifest); - List runForIssues(); + Set runForIssues(); } diff --git a/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java b/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java index 10d0041..3560e12 100644 --- a/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java +++ b/src/main/java/com/bartek/esa/core/executor/PluginExecutor.java @@ -7,10 +7,9 @@ import org.w3c.dom.Document; import javax.inject.Inject; import java.io.File; -import java.util.List; import java.util.Set; -import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toSet; public class PluginExecutor { private final XmlHelper xmlHelper; @@ -20,20 +19,20 @@ public class PluginExecutor { this.xmlHelper = xmlHelper; } - public List executeForFiles(File manifest, Set files, Set plugins) { + public Set executeForFiles(File manifest, Set files, Set plugins) { return files.stream() .map(file -> executeForFile(manifest, file, plugins)) - .flatMap(List::stream) - .collect(toList()); + .flatMap(Set::stream) + .collect(toSet()); } - private List executeForFile(File manifest, File file, Set plugins) { + private Set executeForFile(File manifest, File file, Set plugins) { Document xmlManifest = xmlHelper.parseXml(manifest); return plugins.stream() .peek(plugin -> plugin.update(file, xmlManifest)) .filter(plugin -> plugin.supports(file)) .map(Plugin::runForIssues) - .flatMap(List::stream) - .collect(toList()); + .flatMap(Set::stream) + .collect(toSet()); } } diff --git a/src/main/java/com/bartek/esa/dispatcher/dispatcher/MethodDispatcher.java b/src/main/java/com/bartek/esa/dispatcher/dispatcher/MethodDispatcher.java index 3dc20b4..5b00209 100644 --- a/src/main/java/com/bartek/esa/dispatcher/dispatcher/MethodDispatcher.java +++ b/src/main/java/com/bartek/esa/dispatcher/dispatcher/MethodDispatcher.java @@ -6,7 +6,7 @@ import com.bartek.esa.dispatcher.model.DispatcherActions; import javax.inject.Inject; import java.util.Collections; -import java.util.List; +import java.util.Set; public class MethodDispatcher { @@ -15,7 +15,7 @@ public class MethodDispatcher { } - public List dispatchMethod(CliArgsOptions options, DispatcherActions actions) { + public Set dispatchMethod(CliArgsOptions options, DispatcherActions actions) { if(options.isSourceAnalysis()) { return actions.getSourceAnalysis().perform( options.getSourceAnalysisDirectory(), @@ -32,6 +32,6 @@ public class MethodDispatcher { ); } - return Collections.emptyList(); + return Collections.emptySet(); } } diff --git a/src/main/java/com/bartek/esa/dispatcher/model/Action.java b/src/main/java/com/bartek/esa/dispatcher/model/Action.java index b7ba664..cf5af89 100644 --- a/src/main/java/com/bartek/esa/dispatcher/model/Action.java +++ b/src/main/java/com/bartek/esa/dispatcher/model/Action.java @@ -2,11 +2,10 @@ package com.bartek.esa.dispatcher.model; import com.bartek.esa.core.model.object.Issue; -import java.util.List; import java.util.Set; @FunctionalInterface public interface Action { - List perform(String source, Set plugins, Set excludes); + Set perform(String source, Set plugins, Set excludes); } diff --git a/src/main/java/com/bartek/esa/formatter/archetype/Formatter.java b/src/main/java/com/bartek/esa/formatter/archetype/Formatter.java index cac7e43..a84e644 100644 --- a/src/main/java/com/bartek/esa/formatter/archetype/Formatter.java +++ b/src/main/java/com/bartek/esa/formatter/archetype/Formatter.java @@ -2,8 +2,8 @@ package com.bartek.esa.formatter.archetype; import com.bartek.esa.core.model.object.Issue; -import java.util.List; +import java.util.Set; public interface Formatter { - void format(List issues); + void format(Set issues); } diff --git a/src/main/java/com/bartek/esa/formatter/formatter/ColorFormatter.java b/src/main/java/com/bartek/esa/formatter/formatter/ColorFormatter.java index fdae927..17f436d 100644 --- a/src/main/java/com/bartek/esa/formatter/formatter/ColorFormatter.java +++ b/src/main/java/com/bartek/esa/formatter/formatter/ColorFormatter.java @@ -7,8 +7,8 @@ import org.fusesource.jansi.Ansi; import org.fusesource.jansi.AnsiConsole; import javax.inject.Inject; -import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import static org.fusesource.jansi.Ansi.Color.*; @@ -24,7 +24,7 @@ public class ColorFormatter implements Formatter { } @Override - public void format(List issues) { + public void format(Set issues) { AnsiConsole.systemInstall(); if(issues.isEmpty()) { Ansi noIssuesFound = ansi().fg(GREEN).a("No issues found.").reset(); diff --git a/src/main/java/com/bartek/esa/formatter/formatter/SimpleFormatter.java b/src/main/java/com/bartek/esa/formatter/formatter/SimpleFormatter.java index 606da51..cba9e73 100644 --- a/src/main/java/com/bartek/esa/formatter/formatter/SimpleFormatter.java +++ b/src/main/java/com/bartek/esa/formatter/formatter/SimpleFormatter.java @@ -5,8 +5,8 @@ import com.bartek.esa.core.model.object.Issue; import com.bartek.esa.formatter.archetype.Formatter; import javax.inject.Inject; -import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; public class SimpleFormatter implements Formatter { @@ -18,7 +18,7 @@ public class SimpleFormatter implements Formatter { } @Override - public void format(List issues) { + public void format(Set issues) { if(issues.isEmpty()) { System.out.println("No issues found."); return;