public String getKey() { return details.getKey(); }
private void getIncludedAndExcluded(Set<String> included, Set<String> excluded) { for (RuleDetails r : engine.getAllRuleDetails()) { boolean valueSet = currentActivationByRuleKey.get(r.getKey()); if (r.isActiveByDefault() && !valueSet) { excluded.add(r.getKey()); } else if (!r.isActiveByDefault() && valueSet) { included.add(r.getKey()); } } }
private static boolean loadRuleActivation(SonarLintGlobalSettings settings, RuleDetails ruleDetails) { if (settings.getIncludedRules().contains(ruleDetails.getKey())) { return true; } else if (settings.getExcludedRules().contains(ruleDetails.getKey())) { return false; } else { return ruleDetails.isActiveByDefault(); } }
private static void createTable(RuleDetails rule, StringBuilder builder) { // apparently some css properties are not supported String imgAttributes = "valign=\"top\" hspace=\"3\""; builder.append("<table><tr>"); if (rule.getType() != null) { builder.append("<td>").append("<img ").append(imgAttributes).append(" src=\"file:///type/").append(rule.getType()).append("\"/></td>") .append("<td class=\"pad\"><b>").append(clean(rule.getType())).append("</b></td>"); } builder.append("<td>").append("<img ").append(imgAttributes).append(" src=\"file:///severity/").append(rule.getSeverity()).append("\"/></td>") .append("<td class=\"pad\"><b>").append(clean(rule.getSeverity())).append("</b></td>") .append("<td><b>").append(rule.getKey()).append("</b></td>") .append("</tr></table>"); }
private void updateModel() { saveCurrentActivation(); Collection<RuleDetails> ruleDetails = engine.getAllRuleDetails(); Map<String, List<RulesTreeNode.Rule>> rulesByLanguage = ruleDetails.stream() .map(r -> new RulesTreeNode.Rule(r, currentActivationByRuleKey.get(r.getKey()))) .filter(filterModel::filter) .collect(Collectors.groupingBy(RulesTreeNode.Rule::language)); RulesTreeNode rootNode = (RulesTreeNode) model.getRoot(); rootNode.removeAllChildren(); for (Map.Entry<String, List<RulesTreeNode.Rule>> e : rulesByLanguage.entrySet()) { RulesTreeNode.Language languageNode = new RulesTreeNode.Language(e.getKey()); for (RulesTreeNode.Rule r : e.getValue()) { languageNode.add(r); } model.refreshLanguageActivation(languageNode); rootNode.add(languageNode); } TreeUtil.sort(rootNode, Comparator.comparing(Object::toString)); model.reload(); if (!filterModel.isEmpty()) { TreeUtil.expandAll(table.getTree()); } }
@Before public void setUp() { when(ruleDetails.getType()).thenReturn("BUG"); when(ruleDetails.getSeverity()).thenReturn("MAJOR"); when(ruleDetails.getKey()).thenReturn("key"); when(ruleDetails.isActiveByDefault()).thenReturn(false); root.add(lang); lang.add(rule); // just to not give NPE when firing changes TreeTableTree treeTableTree = mock(TreeTableTree.class); TreeTable treeTable = mock(TreeTable.class); when(treeTableTree.getTreeTable()).thenReturn(treeTable); when(treeTable.getModel()).thenReturn(tableModel); model.setTree(treeTableTree); }
@Test public void getters_rule() { RuleDetails details = mock(RuleDetails.class); when(details.getName()).thenReturn("name"); when(details.getKey()).thenReturn("key"); when(details.getHtmlDescription()).thenReturn("html"); when(details.isActiveByDefault()).thenReturn(true); when(details.getSeverity()).thenReturn("severity"); when(details.getType()).thenReturn("type"); when(details.getLanguage()).thenReturn("lang"); RulesTreeNode.Rule node = new RulesTreeNode.Rule(details, false); assertThat(node.getKey()).isEqualTo("key"); assertThat(node.getName()).isEqualTo("name"); assertThat(node.toString()).isEqualTo("name"); assertThat(node.getHtmlDescription()).isEqualTo("html"); assertThat(node.getDefaultActivation()).isTrue(); assertThat(node.isChanged()).isTrue(); assertThat(node.severity()).isEqualTo("severity"); assertThat(node.type()).isEqualTo("type"); assertThat(node.language()).isEqualTo("lang"); }
@Override public void getRuleDetails(RuleKey key, StreamObserver<RuleDetails> response) { try { org.sonarsource.sonarlint.core.client.api.common.RuleDetails ruleDetails = engine.getRuleDetails(key.getKey()); response.onNext(RuleDetails.newBuilder() .setKey(ruleDetails.getKey()) .setName(ruleDetails.getName()) .setLanguage(ruleDetails.getLanguage()) .setSeverity(ruleDetails.getSeverity()) .setHtmlDescription(ruleDetails.getHtmlDescription()) .addAllTags(Arrays.asList(ruleDetails.getTags())) .build()); response.onCompleted(); } catch (Exception e) { LOGGER.error("getRuleDetails", e); response.onError(e); } }
@Override public void getRuleDetails(RuleKey key, StreamObserver<RuleDetails> response) { try { org.sonarsource.sonarlint.core.client.api.common.RuleDetails ruleDetails = engine.getRuleDetails(key.getKey()); response.onNext(RuleDetails.newBuilder() .setKey(ruleDetails.getKey()) .setName(ruleDetails.getName()) .setLanguage(ruleDetails.getLanguage()) .setSeverity(ruleDetails.getSeverity()) .setHtmlDescription(ruleDetails.getHtmlDescription()) .addAllTags(Arrays.asList(ruleDetails.getTags())) .build()); response.onCompleted(); } catch (Exception e) { LOGGER.error("getRuleDetails", e); response.onError(e); } }