diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-07-04 14:50:13 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-07-04 14:54:52 +0200 |
commit | efd87445594729b4ae9658567c7af22caa7387e6 (patch) | |
tree | 03864ca6733b932e25f4fb027234cc6746645c39 /sonar-server/src/main/java | |
parent | ee0c3738e9b83bea8358d289bed9a2b1cb3fdfdd (diff) | |
download | sonarqube-efd87445594729b4ae9658567c7af22caa7387e6.tar.gz sonarqube-efd87445594729b4ae9658567c7af22caa7387e6.zip |
Add the possibility to search for all rules (used by SQALE Sunbirst widget)
Diffstat (limited to 'sonar-server/src/main/java')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java b/sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java index 5ea09af178c..c276aa55d7b 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java @@ -69,9 +69,10 @@ public class RubyRuleService implements ServerComponent, Startable { /** * Used in SQALE + * If 'pageSize' params is set no -1, all rules are returned (using scrolling) */ public PagedResult<Rule> find(Map<String, Object> params) { - RuleQuery query = service.newRuleQuery(); + RuleQuery query = new RuleQuery(); query.setQueryText(Strings.emptyToNull((String) params.get("searchQuery"))); query.setKey(Strings.emptyToNull((String) params.get("key"))); query.setLanguages(RubyUtils.toStrings(params.get("languages"))); @@ -84,13 +85,19 @@ public class RubyRuleService implements ServerComponent, Startable { query.setSortField(RuleNormalizer.RuleField.NAME); QueryOptions options = new QueryOptions(); - Integer page = RubyUtils.toInteger(params.get("p")); - int pageIndex = page != null ? page : 1; Integer pageSize = RubyUtils.toInteger(params.get("pageSize")); - options.setPage(pageIndex, pageSize != null ? pageSize : 50); - - Result<Rule> result = service.search(query, options); - return new PagedResult<Rule>(result.getHits(), PagingResult.create(options.getLimit(), pageIndex, result.getTotal())); + int size = pageSize != null ? pageSize : 50; + if (size > -1) { + Integer page = RubyUtils.toInteger(params.get("p")); + int pageIndex = page != null ? page : 1; + options.setPage(pageIndex, size); + Result<Rule> result = service.search(query, options); + return new PagedResult<Rule>(result.getHits(), PagingResult.create(options.getLimit(), pageIndex, result.getTotal())); + } else { + options = new QueryOptions().setScroll(true); + List<Rule> rules = newArrayList(service.search(query, options).scroll()); + return new PagedResult<Rule>(rules, PagingResult.create(Integer.MAX_VALUE, 1, rules.size())); + } } /** |