From da0efe2a9eeb1fabd3d57bffc4d15e45018b84ea Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 21 Apr 2014 16:47:12 +0400 Subject: [PATCH] Refactoring: rename method and optimize cycles in methods --- .../ConfigureKotlinInProjectAction.java | 2 +- .../ConfigureKotlinInProjectUtils.java | 23 ++++++++++++------- .../ConfigureKotlinNotification.java | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/actions/ConfigureKotlinInProjectAction.java b/idea/src/org/jetbrains/jet/plugin/actions/ConfigureKotlinInProjectAction.java index afcd11ec869..71b47163ed0 100644 --- a/idea/src/org/jetbrains/jet/plugin/actions/ConfigureKotlinInProjectAction.java +++ b/idea/src/org/jetbrains/jet/plugin/actions/ConfigureKotlinInProjectAction.java @@ -28,7 +28,7 @@ public class ConfigureKotlinInProjectAction extends AnAction { } Collection configurators = - Collections2.filter(ConfigureKotlinInProjectUtils.getApplicableConfigurators(project), new Predicate() { + Collections2.filter(ConfigureKotlinInProjectUtils.getAbleToRunConfigurators(project), new Predicate() { @Override public boolean apply(KotlinProjectConfigurator input) { return !input.getName().equals(KotlinJsModuleConfigurator.NAME); diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java b/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java index ee36d05d09b..6ffee7ba104 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/ConfigureKotlinInProjectUtils.java @@ -98,16 +98,20 @@ public class ConfigureKotlinInProjectUtils { } @NotNull - public static Collection getApplicableConfigurators(@NotNull Project project) { - Set applicableConfigurators = Sets.newHashSet(); + public static Collection getAbleToRunConfigurators(@NotNull Project project) { + Collection modules = getModulesWithKotlinFiles(project); + + Set canRunConfigurators = Sets.newHashSet(); for (KotlinProjectConfigurator configurator : Extensions.getExtensions(KotlinProjectConfigurator.EP_NAME)) { - for (Module module : getNonConfiguredModules(project, configurator)) { - if (configurator.isApplicable(module)) { - applicableConfigurators.add(configurator); + for (Module module : modules) { + if (configurator.isApplicable(module) && !configurator.isConfigured(module)) { + canRunConfigurators.add(configurator); + break; } } } - return applicableConfigurators; + + return canRunConfigurators; } @NotNull @@ -145,13 +149,16 @@ public class ConfigureKotlinInProjectUtils { @NotNull public static Collection getNonConfiguredModules(@NotNull Project project) { Set modules = Sets.newHashSet(); - for (KotlinProjectConfigurator configurator : getApplicableConfigurators(project)) { - for (Module module : getModulesWithKotlinFiles(project)) { + Collection modulesWithKotlinFiles = getModulesWithKotlinFiles(project); + + for (KotlinProjectConfigurator configurator : getAbleToRunConfigurators(project)) { + for (Module module : modulesWithKotlinFiles) { if (!configurator.isConfigured(module)) { modules.add(module); } } } + return modules; } diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/ui/notifications/ConfigureKotlinNotification.java b/idea/src/org/jetbrains/jet/plugin/configuration/ui/notifications/ConfigureKotlinNotification.java index 48ceec7394b..63a584fc961 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/ui/notifications/ConfigureKotlinNotification.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/ui/notifications/ConfigureKotlinNotification.java @@ -73,7 +73,7 @@ public class ConfigureKotlinNotification extends Notification { builder.append(" in '").append(project.getName()).append("' project"); builder.append("
"); - String links = StringUtil.join(ConfigureKotlinInProjectUtils.getApplicableConfigurators(project), new Function() { + String links = StringUtil.join(ConfigureKotlinInProjectUtils.getAbleToRunConfigurators(project), new Function() { @Override public String fun(KotlinProjectConfigurator configurator) { return getLink(configurator, isOnlyOneModule);