From 1ce00a4e7098a4c1dc84718bf4e1a6d6a153f0c6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Tue, 21 Jan 2014 07:22:42 +0100 Subject: [PATCH] Only create the search parameters once per search. --- src/main/java/net/pterodactylus/xdcc/ui/stdin/SearchCommand.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/pterodactylus/xdcc/ui/stdin/SearchCommand.java b/src/main/java/net/pterodactylus/xdcc/ui/stdin/SearchCommand.java index 170365a..0ae1b15 100644 --- a/src/main/java/net/pterodactylus/xdcc/ui/stdin/SearchCommand.java +++ b/src/main/java/net/pterodactylus/xdcc/ui/stdin/SearchCommand.java @@ -22,6 +22,7 @@ import static java.util.Arrays.asList; import static java.util.regex.Pattern.CASE_INSENSITIVE; import static java.util.regex.Pattern.UNICODE_CASE; import static java.util.regex.Pattern.compile; +import static java.util.stream.Collectors.toList; import java.io.IOException; import java.io.Writer; @@ -72,9 +73,10 @@ public class SearchCommand implements Command { @Override public State execute(State state, List parameters, Writer outputWriter) throws IOException { List lastResult = newArrayList(); + List searchParameters = parameters.stream().map(SearchParameter::from).collect(toList()); for (Bot bot : newArrayList(core.bots())) { for (Pack pack : newArrayList(bot)) { - if (parameters.stream().map(SearchParameter::from).allMatch((parameter) -> parameter.matches(pack.name()))) { + if (searchParameters.stream().allMatch((parameter) -> parameter.matches(pack.name()))) { lastResult.add(new Result(core, bot, pack)); } } -- 2.7.4