public ActiveRule setParameter(String key, String value) { RuleParam ruleParameter = rule.getParam(key); if (ruleParameter != null) { activeRuleParams.add(new ActiveRuleParam(this, ruleParameter, value)); } return this; }
@Test public void rule_with_property() { List<Rule> rules = parseAnnotatedClass(RuleWithProperty.class); assertThat(rules).hasSize(1); Rule rule = rules.get(0); assertThat(rule.getKey()).isEqualTo("foo"); assertThat(rule.getName()).isEqualTo("bar"); assertThat(rule.getDescription()).isEqualTo("Foo Bar"); assertThat(rule.getSeverity()).isEqualTo(RulePriority.BLOCKER); assertThat(rule.getStatus()).isEqualTo(Rule.STATUS_READY); assertThat(rule.getParams()).hasSize(1); RuleParam prop = rule.getParam("property"); assertThat(prop.getKey()).isEqualTo("property"); assertThat(prop.getDescription()).isEqualTo("Ignore ?"); assertThat(prop.getDefaultValue()).isEqualTo("false"); assertThat(prop.getType()).isEqualTo(PropertyType.STRING.name()); }
@Test public void rule_with_text_property() { List<Rule> rules = parseAnnotatedClass(RuleWithTextProperty.class); RuleParam prop = rules.get(0).getParam("property"); assertThat(prop.getDescription()).isEqualTo("text"); assertThat(prop.getDefaultValue()).isEqualTo("Long text"); assertThat(prop.getType()).isEqualTo(PropertyType.TEXT.name()); }
ActiveRule activeRule = profile.activateRule(rule, priority); for (Map.Entry<String, String> entry : parameters.entrySet()) { if (rule.getParam(entry.getKey()) == null) { messages.addWarningText("The parameter '" + entry.getKey() + "' does not exist in the rule: " + ruleToString(repositoryKey, key)); } else {
@Test public void rule_with_integer_property() { List<Rule> rules = parseAnnotatedClass(RuleWithIntegerProperty.class); RuleParam prop = rules.get(0).getParam("property"); assertThat(prop.getDescription()).isEqualTo("Max"); assertThat(prop.getDefaultValue()).isEqualTo("12"); assertThat(prop.getType()).isEqualTo(PropertyType.INTEGER.name()); }
public ActiveRule setParameter(String key, String value) { RuleParam ruleParameter = rule.getParam(key); if (ruleParameter != null) { activeRuleParams.add(new ActiveRuleParam(this, ruleParameter, value)); } return this; }
public ActiveRule setParameter(String key, String value) { RuleParam ruleParameter = rule.getParam(key); if (ruleParameter != null) { activeRuleParams.add(new ActiveRuleParam(this, ruleParameter, value)); } return this; }
DefaultCommonRulesRepository enableRule(String ruleKey, Map<String, String> params) { Rule rule = supportedRulesByKey.get(ruleKey); if (rule == null) { throw new IllegalStateException("Unknown rule: " + ruleKey); } for (Map.Entry<String, String> entry : params.entrySet()) { String paramKey = entry.getKey(); RuleParam param = rule.getParam(paramKey); if (param == null) { throw new IllegalStateException(String.format("Rule '%s' has no parameter named '%s'", ruleKey, paramKey)); } param.setDefaultValue(entry.getValue()); } rules.add(rule); return this; }
/** * @param messages * @param pmdRule * @param key * @param rule * @param activeRule */ private void createRule(ValidationMessages messages, PmdRule pmdRule, String key, Rule rule, ActiveRule activeRule) { for (PmdProperty prop : pmdRule.getProperties()) { String name = prop.getName(); if (rule.getParam(name) != null) { String value = prop.getValue(); String ruleValue = prop.isCdataValue() && isBlank(value) ? prop.getCdataValue() : value; activeRule.setParameter(name, ruleValue); } else { StringBuilder message = new StringBuilder("The property '").append(name); message.append("' is not supported in the PhpCodeSniffer rule: ").append(key); messages.addWarningText(message.toString()); } } }
ActiveRule activeRule = profile.activateRule(rule, priority); for (Map.Entry<String, String> entry : parameters.entrySet()) { if (rule.getParam(entry.getKey()) == null) { messages.addWarningText("The parameter '" + entry.getKey() + "' does not exist in the rule: " + ruleToString(repositoryKey, key)); } else {
/** * @param messages * @param profile * @param pmdRule * @param configKey * @param rule */ private void createRule(ValidationMessages messages, RulesProfile profile, PmdRule pmdRule, String configKey, Rule rule) { PmdRulePriorityMapper mapper = new PmdRulePriorityMapper(); ActiveRule activeRule = profile.activateRule(rule, mapper.from(pmdRule.getPriority())); if (pmdRule.getProperties() != null) { for (PmdProperty prop : pmdRule.getProperties()) { String name = prop.getName(); if (rule.getParam(name) != null) { String value = prop.getValue(); String ruleValue = prop.isCdataValue() && isBlank(value) ? prop.getCdataValue() : value; activeRule.setParameter(name, ruleValue); } else { StringBuilder message = new StringBuilder("The property '").append(name); message.append("' is not supported in the pmd rule: ").append(configKey); messages.addWarningText(message.toString()); } } } }
private void setParameters(ActiveRule activeRule, PmdRule pmdRule, Rule rule, ValidationMessages messages) { for (PmdProperty prop : pmdRule.getProperties()) { String paramName = prop.getName(); if (rule.getParam(paramName) == null) { messages.addWarningText("The property '" + paramName + "' is not supported in the pmd rule: " + pmdRule.getRef()); } else { activeRule.setParameter(paramName, prop.getValue()); } } }
private static void setParameters(ActiveRule activeRule, PmdRule pmdRule, Rule rule, ValidationMessages messages) { for (PmdProperty prop : pmdRule.getProperties()) { String paramName = prop.getName(); if (rule.getParam(paramName) == null) { messages.addWarningText("The property '" + paramName + "' is not supported in the pmd rule: " + pmdRule.getRef()); } else { activeRule.setParameter(paramName, prop.getValue()); } } }
ActiveRule activeRule = profile.activateRule(rule, priority); for (Map.Entry<String, String> entry : parameters.entrySet()) { if (rule.getParam(entry.getKey()) == null) { messages.addWarningText("The parameter '" + entry.getKey() + "' does not exist in the rule: " + ruleToString(repositoryKey, key)); } else {
protected RulesProfile createRuleProfile(PmdRuleset pmdRuleset, ValidationMessages messages) { RulesProfile profile = RulesProfile.create(); for (PmdRule pmdRule : pmdRuleset.getPmdRules()) { if (PmdConstants.XPATH_CLASS.equals(pmdRule.getClazz())) { messages.addWarningText("PMD XPath rule '" + pmdRule.getName() + "' can't be imported automatically. The rule must be created manually through the Sonar web interface."); continue; } if (pmdRule.getRef() == null) { messages.addWarningText("A PMD rule without 'ref' attribute can't be imported. see '" + pmdRule.getClazz() + "'"); continue; } Rule rule = ruleFinder.find(RuleQuery.create().withRepositoryKey(PmdConstants.REPOSITORY_KEY).withConfigKey(pmdRule.getRef())); if (rule != null) { ActiveRule activeRule = profile.activateRule(rule, PmdLevelUtils.fromLevel(pmdRule.getPriority())); if (pmdRule.getProperties() != null) { for (PmdProperty prop : pmdRule.getProperties()) { if (rule.getParam(prop.getName()) == null) { messages.addWarningText("The property '" + prop.getName() + "' is not supported in the pmd rule: " + pmdRule.getRef()); continue; } activeRule.setParameter(prop.getName(), prop.getValue()); } } } else { messages.addWarningText("Unable to import unknown PMD rule '" + pmdRule.getRef() + "'"); } } return profile; }