]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2024: Add support for rule status parameter
authorGodin <mandrikov@gmail.com>
Tue, 7 Dec 2010 00:19:43 +0000 (00:19 +0000)
committerGodin <mandrikov@gmail.com>
Tue, 7 Dec 2010 00:19:43 +0000 (00:19 +0000)
sonar-ws-client/src/main/java/org/sonar/wsclient/services/Rule.java
sonar-ws-client/src/main/java/org/sonar/wsclient/services/RuleQuery.java
sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/RuleUnmarshaller.java
sonar-ws-client/src/test/java/org/sonar/wsclient/services/RuleQueryTest.java
sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/RuleUnmarshallerTest.java
sonar-ws-client/src/test/resources/rules/rules.json

index 0b6fcfb822cc1b4448365070cbab62ee7b440eda..8fb2192b299c32691e88846f94bafabf365c5e41 100644 (file)
@@ -32,6 +32,7 @@ public class Rule extends Model {
   private String description = null;
   private String severity = null;
   private List<RuleParam> params;
+  private boolean active;
 
   public String getTitle() {
     return title;
@@ -78,6 +79,14 @@ public class Rule extends Model {
     return this;
   }
 
+  public void setActive(boolean active) {
+    this.active = active;
+  }
+
+  public boolean isActive() {
+    return active;
+  }
+
   public List<RuleParam> getParams() {
     return params;
   }
index f777047ce266b94a09c6b482ecaa7c5b7b2c7890..d5d96f9475fc890b3e77e05c2e480cb419c6dd8c 100644 (file)
@@ -30,6 +30,7 @@ public class RuleQuery extends Query<Rule> {
   private String searchText;
   private String profile;
   private String[] severities;
+  private Boolean active;
 
   public RuleQuery(String language) {
     this.language = language;
@@ -80,6 +81,15 @@ public class RuleQuery extends Query<Rule> {
     return severities;
   }
 
+  public RuleQuery setActive(Boolean active) {
+    this.active = active;
+    return this;
+  }
+
+  public Boolean getStatus() {
+    return active;
+  }
+
   @Override
   public String getUrl() {
     StringBuilder url = new StringBuilder(BASE_URL);
@@ -89,6 +99,9 @@ public class RuleQuery extends Query<Rule> {
     appendUrlParameter(url, "searchtext", searchText);
     appendUrlParameter(url, "profile", profile);
     appendUrlParameter(url, "priorities", severities);
+    if (active != null) {
+      appendUrlParameter(url, "status", active ? "ACTIVE" : "INACTIVE");
+    }
     return url.toString();
   }
 
index f766a4b6b695964fc0cae777f3d8c2fb96468659..001ac3463fc52288bdef782949b04603fef9cc42 100644 (file)
@@ -45,7 +45,8 @@ public class RuleUnmarshaller extends AbstractUnmarshaller<Rule> {
         .setKey(JsonUtils.getString(json, "key"))
         .setPlugin(JsonUtils.getString(json, "plugin"))
         .setDescription(JsonUtils.getString(json, "description"))
-        .setSeverity(JsonUtils.getString(json, "priority"));
+        .setSeverity(JsonUtils.getString(json, "priority"))
+        .setActive("ACTIVE".equals(JsonUtils.getString(json, "status")));
   }
 
   private void parseParams(JSONObject json, Rule rule) {
index 0280e0eeb3ba182caa891fa6c9042eb1ffb54999..92bcd40f30fc06037be969e931e20b69c9dc4069 100644 (file)
@@ -33,4 +33,12 @@ public class RuleQueryTest {
     assertThat(query.getModelClass().getName(), is(Rule.class.getName()));
   }
 
+  @Test
+  public void inactiveRules() {
+    assertThat(new RuleQuery("java").setActive(true).getUrl(),
+        is("/api/rules?language=java&status=ACTIVE&"));
+    assertThat(new RuleQuery("java").setActive(false).getUrl(),
+        is("/api/rules?language=java&status=INACTIVE&"));
+  }
+
 }
index f556474fa15c2fe36cbe46efb05f9dcf38c2a59c..a5cc7f04a5a45d330cb0a9eab5252a1fe1b51132 100644 (file)
@@ -49,9 +49,13 @@ public class RuleUnmarshallerTest {
     assertThat(rule.getPlugin(), is("checkstyle"));
     assertThat(rule.getDescription(), is("Checks correct indentation of Java Code."));
     assertThat(rule.getSeverity(), is("MINOR"));
+    assertThat(rule.isActive(), is(false));
     assertThat(rule.getParams().size(), is(3));
     assertThat(rule.getParams().get(0).getName(), is("basicOffset"));
     assertThat(rule.getParams().get(0).getDescription(), is("how many spaces to use for new indentation level. Default is 4."));
+
+    rule = rules.get(1);
+    assertThat(rule.isActive(), is(true));
   }
 
   private static String loadFile(String path) throws IOException {
index c9de7627b7530b259b92fb5842268dffaca45e2e..d82255f571a3f1d87d6e47a9936ff682135ec9d3 100644 (file)
@@ -1,8 +1,8 @@
 [
-  {"title":"Indentation","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheck","category":"Usability","plugin":"checkstyle","description":"Checks correct indentation of Java Code.","priority":"MINOR","params":[{"name":"basicOffset","description":"how many spaces to use for new indentation level. Default is 4."},{"name":"braceAdjustment","description":"how far brace should be indented when on next line. Default is 0."},{"name":"caseIndent","description":"how much to indent a case label. Default is 4."}]},
-  {"title":"Javadoc Method","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck","category":"Usability","plugin":"checkstyle","description":"Checks the Javadoc of a method or constructor. By default, does not check for unused throws. \n    To allow documented java.lang.RuntimeExceptions that are not declared, set property allowUndeclaredRTE to true. \n    The scope to verify is specified using the Scope class and defaults to Scope.PRIVATE. \n    To verify another scope, set property scope to a different scope.\n    \n    <br><br>Error messages about parameters and type parameters for which no param tags are present can be suppressed by defining property allowMissingParamTags. \n    Error messages about exceptions which are declared to be thrown, but for which no throws tag is present can be suppressed by defining property allowMissingThrowsTags. \n    Error messages about methods which return non-void but for which no return tag is present can be suppressed by defining property allowMissingReturnTag.\n\n    <br><br>Javadoc is not required on a method that is tagged with the @Override annotation. \n    However under Java 5 it is not possible to mark a method required for an interface (this was corrected under Java 6). \n    Hence Checkstyle supports using the convention of using a single {@inheritDoc} tag instead of all the other tags.\n    \n    <br><br>Note that only inheritable items will allow the {@inheritDoc} tag to be used in place of comments. \n    Static methods at all visibilities, private non-static methods and constructors are not inheritable.","priority":"MAJOR","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"allowUndeclaredRTE","description":"whether to allow documented exceptions that are not declared if they are a subclass of java.lang.RuntimeException. Default is false."},{"name":"allowThrowsTagsForSubclasses","description":"whether to allow documented exceptions that are subclass of one of declared exception. Default is false."},{"name":"allowMissingParamTags","description":"whether to ignore errors when a method has parameters but does not have matching param tags in the javadoc. Default is false."},{"name":"allowMissingThrowsTags","description":"whether to ignore errors when a method declares that it throws exceptions but does have matching throws tags in the javadoc. Default is false."},{"name":"allowMissingReturnTag","description":"whether to ignore errors when a method returns non-void type does have a return tag in the javadoc. Default is false."},{"name":"allowMissingJavadoc","description":"whether to ignore errors when a method javadoc is missed. Default is false."},{"name":"allowMissingPropertyJavadoc","description":"Whether to allow missing Javadoc on accessor methods for properties (setters and getters). The setter and getter methods must match exactly the structures below.  <code> public void setNumber(final int number) { mNumber = number; }  public int getNumber() { return mNumber; }  public boolean isSomething() { return false; } </code>. Default is false."},{"name":"tokens","description":"definitions to check"}]},
-  {"title":"Javadoc Package","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck","category":"Maintainability","plugin":"checkstyle","description":"<p>Checks that each Java package has a Javadoc file used for commenting. By default it only allows a package-info.java file, but can be configured to allow a package.html file. An error will be reported if both files exist as this is not allowed by the Javadoc tool.</p>","priority":"MINOR","params":[{"name":"allowLegacy","description":"If set then allow the use of a package.html file."}]},
-  {"title":"Javadoc Style","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck","category":"Usability","plugin":"checkstyle","description":"Validates Javadoc comments to help ensure they are well formed. The following checks are performed:\n    <ul>\n      <li>Ensures the first sentence ends with proper punctuation (That is a period, question mark, or exclamation mark, by default). \n      Javadoc automatically places the first sentence in the method summary table and index. With out proper punctuation the Javadoc may be malformed. \n      All items eligible for the {@inheritDoc} tag are exempt from this requirement.</li>\n      <li>Check text for Javadoc statements that do not have any description. \n      This includes both completely empty Javadoc, and Javadoc with only tags such as @param and @return.</li>\n      <li>Check text for incomplete HTML tags. Verifies that HTML tags have corresponding end tags and issues an \"Unclosed HTML tag found:\" error if not. \n      An \"Extra HTML tag found:\" error is issued if an end tag is found without a previous open tag.</li>\n      <li>Check that a package Javadoc comment is well-formed (as described above) and NOT missing from any package-info.java files.</li>\n      <li>Check for allowed HTML tags. The list of allowed HTML tags is \"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"b\", \n      \"bdo\", \"big\", \"blockquote\", \"br\", \"caption\", \"cite\", \"code\", \"colgroup\", \"del\", \"div\", \"dfn\", \"dl\", \"em\", \"fieldset\", \n      \"h1\" to \"h6\", \"hr\", \"i\", \"img\", \"ins\", \"kbd\", \"li\", \"ol\", \"p\", \"pre\", \"q\", \"samp\", \"small\", \"span\", \"strong\", \n      \"sub\", \"sup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thread\", \"tr\", \"tt\", \"ul\"</li>\n    </ul>","priority":"MAJOR","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"checkFirstSentence","description":"Whether to check the first sentence for proper end of sentence. Default is true."},{"name":"checkEmptyJavadoc","description":"Whether to check if the Javadoc is missing a describing text. Default is false."},{"name":"checkHtml","description":"Whether to check for incomplete html tags. Default is true."},{"name":"tokens","description":"definitions to check"}]},
-  {"title":"Javadoc Type","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck","category":"Usability","plugin":"checkstyle","description":"Checks Javadoc comments for class and interface definitions. By default, does not check for author or version tags. \n    The scope to verify is specified using the Scope class and defaults to Scope.PRIVATE. To verify another scope, set property scope to one of the Scope constants. \n    To define the format for an author tag or a version tag, set property authorFormat or versionFormat respectively to a regular expression.\n    <br><br>Error messages about type parameters for which no param tags are present can be suppressed by defining property allowMissingParamTags.","priority":"MAJOR","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"authorFormat","description":"pattern for @author tag"},{"name":"versionFormat","description":"pattern for @version tag"},{"name":"allowMissingParamTags","description":"whether to ignore errors when a class has type parameters but does not have matching param tags in the javadoc. Default is false."},{"name":"tokens","description":"definitions to check"}]},
-  {"title":"Javadoc Variable","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck","category":"Usability","plugin":"checkstyle","description":"Checks that a variable has Javadoc comment.","priority":"MAJOR","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"}]}
+  {"title":"Indentation","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheck","category":"Usability","plugin":"checkstyle","description":"Checks correct indentation of Java Code.","priority":"MINOR","status":"INACTIVE","params":[{"name":"basicOffset","description":"how many spaces to use for new indentation level. Default is 4."},{"name":"braceAdjustment","description":"how far brace should be indented when on next line. Default is 0."},{"name":"caseIndent","description":"how much to indent a case label. Default is 4."}]},
+  {"title":"Javadoc Method","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck","category":"Usability","plugin":"checkstyle","description":"Checks the Javadoc of a method or constructor. By default, does not check for unused throws. \n    To allow documented java.lang.RuntimeExceptions that are not declared, set property allowUndeclaredRTE to true. \n    The scope to verify is specified using the Scope class and defaults to Scope.PRIVATE. \n    To verify another scope, set property scope to a different scope.\n    \n    <br><br>Error messages about parameters and type parameters for which no param tags are present can be suppressed by defining property allowMissingParamTags. \n    Error messages about exceptions which are declared to be thrown, but for which no throws tag is present can be suppressed by defining property allowMissingThrowsTags. \n    Error messages about methods which return non-void but for which no return tag is present can be suppressed by defining property allowMissingReturnTag.\n\n    <br><br>Javadoc is not required on a method that is tagged with the @Override annotation. \n    However under Java 5 it is not possible to mark a method required for an interface (this was corrected under Java 6). \n    Hence Checkstyle supports using the convention of using a single {@inheritDoc} tag instead of all the other tags.\n    \n    <br><br>Note that only inheritable items will allow the {@inheritDoc} tag to be used in place of comments. \n    Static methods at all visibilities, private non-static methods and constructors are not inheritable.","priority":"MAJOR","status":"ACTIVE","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"allowUndeclaredRTE","description":"whether to allow documented exceptions that are not declared if they are a subclass of java.lang.RuntimeException. Default is false."},{"name":"allowThrowsTagsForSubclasses","description":"whether to allow documented exceptions that are subclass of one of declared exception. Default is false."},{"name":"allowMissingParamTags","description":"whether to ignore errors when a method has parameters but does not have matching param tags in the javadoc. Default is false."},{"name":"allowMissingThrowsTags","description":"whether to ignore errors when a method declares that it throws exceptions but does have matching throws tags in the javadoc. Default is false."},{"name":"allowMissingReturnTag","description":"whether to ignore errors when a method returns non-void type does have a return tag in the javadoc. Default is false."},{"name":"allowMissingJavadoc","description":"whether to ignore errors when a method javadoc is missed. Default is false."},{"name":"allowMissingPropertyJavadoc","description":"Whether to allow missing Javadoc on accessor methods for properties (setters and getters). The setter and getter methods must match exactly the structures below.  <code> public void setNumber(final int number) { mNumber = number; }  public int getNumber() { return mNumber; }  public boolean isSomething() { return false; } </code>. Default is false."},{"name":"tokens","description":"definitions to check"}]},
+  {"title":"Javadoc Package","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocPackageCheck","category":"Maintainability","plugin":"checkstyle","description":"<p>Checks that each Java package has a Javadoc file used for commenting. By default it only allows a package-info.java file, but can be configured to allow a package.html file. An error will be reported if both files exist as this is not allowed by the Javadoc tool.</p>","priority":"MINOR","status":"ACTIVE","params":[{"name":"allowLegacy","description":"If set then allow the use of a package.html file."}]},
+  {"title":"Javadoc Style","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck","category":"Usability","plugin":"checkstyle","description":"Validates Javadoc comments to help ensure they are well formed. The following checks are performed:\n    <ul>\n      <li>Ensures the first sentence ends with proper punctuation (That is a period, question mark, or exclamation mark, by default). \n      Javadoc automatically places the first sentence in the method summary table and index. With out proper punctuation the Javadoc may be malformed. \n      All items eligible for the {@inheritDoc} tag are exempt from this requirement.</li>\n      <li>Check text for Javadoc statements that do not have any description. \n      This includes both completely empty Javadoc, and Javadoc with only tags such as @param and @return.</li>\n      <li>Check text for incomplete HTML tags. Verifies that HTML tags have corresponding end tags and issues an \"Unclosed HTML tag found:\" error if not. \n      An \"Extra HTML tag found:\" error is issued if an end tag is found without a previous open tag.</li>\n      <li>Check that a package Javadoc comment is well-formed (as described above) and NOT missing from any package-info.java files.</li>\n      <li>Check for allowed HTML tags. The list of allowed HTML tags is \"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"b\", \n      \"bdo\", \"big\", \"blockquote\", \"br\", \"caption\", \"cite\", \"code\", \"colgroup\", \"del\", \"div\", \"dfn\", \"dl\", \"em\", \"fieldset\", \n      \"h1\" to \"h6\", \"hr\", \"i\", \"img\", \"ins\", \"kbd\", \"li\", \"ol\", \"p\", \"pre\", \"q\", \"samp\", \"small\", \"span\", \"strong\", \n      \"sub\", \"sup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thread\", \"tr\", \"tt\", \"ul\"</li>\n    </ul>","priority":"MAJOR","status":"ACTIVE","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"checkFirstSentence","description":"Whether to check the first sentence for proper end of sentence. Default is true."},{"name":"checkEmptyJavadoc","description":"Whether to check if the Javadoc is missing a describing text. Default is false."},{"name":"checkHtml","description":"Whether to check for incomplete html tags. Default is true."},{"name":"tokens","description":"definitions to check"}]},
+  {"title":"Javadoc Type","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck","category":"Usability","plugin":"checkstyle","description":"Checks Javadoc comments for class and interface definitions. By default, does not check for author or version tags. \n    The scope to verify is specified using the Scope class and defaults to Scope.PRIVATE. To verify another scope, set property scope to one of the Scope constants. \n    To define the format for an author tag or a version tag, set property authorFormat or versionFormat respectively to a regular expression.\n    <br><br>Error messages about type parameters for which no param tags are present can be suppressed by defining property allowMissingParamTags.","priority":"MAJOR","status":"ACTIVE","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"},{"name":"authorFormat","description":"pattern for @author tag"},{"name":"versionFormat","description":"pattern for @version tag"},{"name":"allowMissingParamTags","description":"whether to ignore errors when a class has type parameters but does not have matching param tags in the javadoc. Default is false."},{"name":"tokens","description":"definitions to check"}]},
+  {"title":"Javadoc Variable","key":"checkstyle:com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck","category":"Usability","plugin":"checkstyle","description":"Checks that a variable has Javadoc comment.","priority":"MAJOR","status":"ACTIVE","params":[{"name":"scope","description":"visibility scope where Javadoc comments are checked"},{"name":"excludeScope","description":"visibility scope where Javadoc comments are not checked"}]}
 ]