]> source.dussan.org Git - sonarqube.git/commitdiff
rule API: add the field 'cardinality' to the annotation @org.sonar.check.Rule
authorsimonbrandhof <simon.brandhof@gmail.com>
Mon, 11 Oct 2010 14:47:13 +0000 (14:47 +0000)
committersimonbrandhof <simon.brandhof@gmail.com>
Mon, 11 Oct 2010 14:47:13 +0000 (14:47 +0000)
sonar-check-api/src/main/java/org/sonar/check/Rule.java
sonar-plugin-api/src/main/java/org/sonar/api/rules/AnnotationRuleParser.java
sonar-plugin-api/src/main/java/org/sonar/api/rules/Rule.java
sonar-plugin-api/src/main/java/org/sonar/api/rules/XMLRuleParser.java
sonar-plugin-api/src/test/java/org/sonar/api/rules/XMLRuleParserTest.java

index 2b072ccbfa0865b9fb00e4edad9fec807ff502b4..8c49e303add89baa316dad82bde6a9e64bdc2cc6 100644 (file)
@@ -55,4 +55,10 @@ public @interface Rule {
    * Will probably be deprecated and replaced by tags
    */
   IsoCategory isoCategory();
+
+  CARDINALITY cardinality() default CARDINALITY.SINGLE;
+
+  public static enum CARDINALITY {
+    SINGLE, MULTIPLE
+  }
 }
index 28c7679a5ce3d3a0d03687e20e0f8014a663b1bf..b9c25a2165b00bc864de625a8f30eee046bb8f34 100644 (file)
@@ -65,6 +65,7 @@ public final class AnnotationRuleParser implements ServerComponent {
     rule.setDescription(ruleAnnotation.description());
     rule.setRulesCategory(RulesCategory.fromIsoCategory(ruleAnnotation.isoCategory()));
     rule.setPriority(RulePriority.fromCheckPriority(ruleAnnotation.priority()));
+    rule.setCardinality(ruleAnnotation.cardinality());
 
     Field[] fields = clazz.getDeclaredFields();
     if (fields != null) {
index cde01feaa4cd6120380279fc71a4a3202d9cfb8f..2cfbad4734807ff26d7a51eae859d9c4732ef9d2 100644 (file)
@@ -33,10 +33,6 @@ import java.util.List;
 @Table(name = "rules")\r
 public final class Rule {\r
 \r
-  public static enum Cardinality {\r
-    SINGLE, MULTIPLE\r
-  }\r
-\r
   @Id\r
   @Column(name = "id")\r
   @GeneratedValue\r
@@ -75,7 +71,7 @@ public final class Rule {
 \r
   @Enumerated(EnumType.STRING)\r
   @Column(name = "cardinality", updatable = true, nullable = false)\r
-  private Cardinality cardinality = Cardinality.SINGLE;\r
+  private org.sonar.check.Rule.CARDINALITY cardinality = org.sonar.check.Rule.CARDINALITY.SINGLE;\r
 \r
   @ManyToOne(fetch = FetchType.EAGER)\r
   @JoinColumn(name = "parent_id", updatable = true, nullable = true)\r
@@ -335,11 +331,11 @@ public final class Rule {
     return setRepositoryKey(repositoryKey).setKey(key).setConfigKey(key);\r
   }\r
 \r
-  public Cardinality getCardinality() {\r
+  public org.sonar.check.Rule.CARDINALITY getCardinality() {\r
     return cardinality;\r
   }\r
 \r
-  public Rule setCardinality(Cardinality c) {\r
+  public Rule setCardinality(org.sonar.check.Rule.CARDINALITY c) {\r
     this.cardinality = c;\r
     return this;\r
   }\r
index 60090731ca2c0cef7887b238b3a363846ad701bd..46f6ff4874582da87f2fef6bda9bb7b9442be38b 100644 (file)
@@ -139,7 +139,7 @@ public final class XMLRuleParser implements ServerComponent {
         rule.setRulesCategory(new RulesCategory(category));
 
       } else if (StringUtils.equalsIgnoreCase("cardinality", nodeName)) {
-        rule.setCardinality(Rule.Cardinality.valueOf(StringUtils.trim(cursor.collectDescendantText(false))));
+        rule.setCardinality(org.sonar.check.Rule.CARDINALITY.valueOf(StringUtils.trim(cursor.collectDescendantText(false))));
 
       } else if (StringUtils.equalsIgnoreCase("param", nodeName)) {
         processParameter(rule, cursor);
index ebe150ff997599708e6e1438b85f0b05cd411b53..df56311968a5f4bbaacb840b2741b179d3d44a86 100644 (file)
@@ -42,7 +42,7 @@ public class XMLRuleParserTest {
     assertThat(rule.getName(), is("Local Variable Name"));
     assertThat(rule.getDescription(), is("Checks that local, non-final variable names conform to a format specified by the format property."));
     assertThat(rule.getPriority(), Is.is(RulePriority.BLOCKER));
-    assertThat(rule.getCardinality(), Is.is(Rule.Cardinality.MULTIPLE));
+    assertThat(rule.getCardinality(), Is.is(org.sonar.check.Rule.CARDINALITY.MULTIPLE));
     assertThat(rule.getConfigKey(), is("Checker/TreeWalker/LocalVariableName"));
 
     assertThat(rule.getParams().size(), is(2));