diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2011-02-08 13:00:34 +0100 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2011-02-08 13:55:30 +0100 |
commit | c3268ec885e30f9e4953d7178419870589e3484d (patch) | |
tree | 1affa090f2102b9caa3faea3ae0e2a9be7b327ba /sonar-server/src/main/java | |
parent | 9314e5f83a4f1cb4025cc7fc552cba773b6f1155 (diff) | |
download | sonarqube-c3268ec885e30f9e4953d7178419870589e3484d.tar.gz sonarqube-c3268ec885e30f9e4953d7178419870589e3484d.zip |
SONAR-2078 Do not show duplicated repositories in rules search engine
Diffstat (limited to 'sonar-server/src/main/java')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/rules/RulesConsole.java | 15 | ||||
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java | 3 |
2 files changed, 11 insertions, 7 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rules/RulesConsole.java b/sonar-server/src/main/java/org/sonar/server/rules/RulesConsole.java index a7ed65b5e7c..4204a17919d 100644 --- a/sonar-server/src/main/java/org/sonar/server/rules/RulesConsole.java +++ b/sonar-server/src/main/java/org/sonar/server/rules/RulesConsole.java @@ -19,22 +19,23 @@ */ package org.sonar.server.rules; -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.ListMultimap; +import com.google.common.collect.HashMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.collect.SetMultimap; import org.sonar.api.ServerComponent; import org.sonar.api.rules.RuleRepository; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.Set; public final class RulesConsole implements ServerComponent { private List<RuleRepository> repositories = Lists.newArrayList(); private Map<String, RuleRepository> repositoryByKey = Maps.newHashMap(); - private ListMultimap<String, RuleRepository> repositoriesByLanguage = ArrayListMultimap.create(); + private SetMultimap<String, RuleRepository> repositoriesByLanguage = HashMultimap.create(); public RulesConsole(RuleRepository[] repositories, DeprecatedRuleRepositories deprecatedRuleRepositories) { @@ -47,12 +48,14 @@ public final class RulesConsole implements ServerComponent { this.repositories.addAll(deprecatedBridge.create()); } for (RuleRepository repository : this.repositories) { - repositoriesByLanguage.put(repository.getLanguage(), repository); - repositoryByKey.put(repository.getKey(), repository); + if (!repositoryByKey.containsKey(repository.getKey())) { + repositoriesByLanguage.put(repository.getLanguage(), repository); + repositoryByKey.put(repository.getKey(), repository); + } } } - public List<RuleRepository> getRepositoriesByLanguage(String language) { + public Set<RuleRepository> getRepositoriesByLanguage(String language) { return repositoriesByLanguage.get(language); } diff --git a/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java b/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java index f540eda5a93..309694c2466 100644 --- a/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java +++ b/sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java @@ -49,6 +49,7 @@ import org.sonar.updatecenter.common.Version; import java.util.Collection; import java.util.List; +import java.util.Set; public final class JRubyFacade implements ServerComponent { @@ -157,7 +158,7 @@ public final class JRubyFacade implements ServerComponent { return getContainer().getComponent(RulesConsole.class).getRepository(repositoryKey); } - public List<RuleRepository> getRuleRepositoriesByLanguage(String languageKey) { + public Set<RuleRepository> getRuleRepositoriesByLanguage(String languageKey) { return getContainer().getComponent(RulesConsole.class).getRepositoriesByLanguage(languageKey); } |