From 290a3e0f3de3b9906ca1943feef8272781aa3f11 Mon Sep 17 00:00:00 2001 From: Michael Keppler Date: Tue, 17 Sep 2019 10:46:22 +0200 Subject: Improve performance of command parameter completion * check for accessible first before trying to get the team provider * use parallel streams Bug:551149 Change-Id: Id0def461db3d4f96732f5d0ff129db111935ec8f Signed-off-by: Michael Keppler --- .../internal/commands/ProjectNameParameterValues.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'org.eclipse.egit.ui') diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/ProjectNameParameterValues.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/ProjectNameParameterValues.java index c3abf50fcf..ee49cb9fb3 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/ProjectNameParameterValues.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/ProjectNameParameterValues.java @@ -10,8 +10,9 @@ *******************************************************************************/ package org.eclipse.egit.ui.internal.commands; -import java.util.HashMap; import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.eclipse.core.commands.IParameterValues; import org.eclipse.core.resources.IProject; @@ -31,14 +32,13 @@ public class ProjectNameParameterValues implements IParameterValues { public Map getParameterValues() { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IProject[] projects = root.getProjects(); - Map paramValues = new HashMap<>(); - for (IProject project : projects) { - final boolean notAlreadyShared = RepositoryProvider - .getProvider(project) == null; - if (project.isAccessible() && notAlreadyShared) - paramValues.put(project.getName(), project.getName()); - } - return paramValues; + return Stream.of(projects) + .parallel() + .filter(IProject::isAccessible) + .filter(project -> RepositoryProvider + .getProvider(project) == null) + .collect( + Collectors.toMap(IProject::getName, IProject::getName)); } } -- cgit v1.2.3