]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3210 Compute new measure for Java files - comments in file
authorEvgeny Mandrikov <mandrikov@gmail.com>
Thu, 9 Feb 2012 15:37:22 +0000 (19:37 +0400)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Thu, 9 Feb 2012 16:31:13 +0000 (20:31 +0400)
plugins/sonar-squid-java-plugin/src/main/java/org/sonar/java/ast/visitor/FileLinesVisitor.java
plugins/sonar-squid-java-plugin/src/test/java/org/sonar/java/ast/visitor/FileLinesVisitorTest.java
sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java

index 3c1788cba46becb61140352a1dec21a508cb18f5..596df2cc2776934c13638dec15bceae7f01bd4d6 100644 (file)
@@ -61,8 +61,11 @@ public class FileLinesVisitor extends JavaAstVisitor {
 
     Source source = getSource();
     for (int line = 1; line <= source.getNumberOfLines(); line++) {
-      int linesOfCode = source.getMeasure(Metric.LINES_OF_CODE, line, line);
-      measures.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, linesOfCode);
+      int lineOfCode = source.getMeasure(Metric.LINES_OF_CODE, line, line);
+      measures.setIntValue(CoreMetrics.NCLOC_DATA_KEY, line, lineOfCode);
+
+      int comment = source.getMeasure(Metric.COMMENT_LINES, line, line);
+      measures.setIntValue(CoreMetrics.COMMENT_LINES_DATA_KEY, line, comment);
     }
     measures.save();
   }
index eb2d0808932886ea7e53ae605e4d250ea9926059..a4be9d8ff2df346f0af7c99c4f690a18eb0f3dbe 100644 (file)
@@ -62,6 +62,10 @@ public class FileLinesVisitorTest {
     verify(measures).setIntValue(CoreMetrics.NCLOC_DATA_KEY, 1, 1);
     verify(measures).setIntValue(CoreMetrics.NCLOC_DATA_KEY, 2, 0);
     verify(measures).setIntValue(CoreMetrics.NCLOC_DATA_KEY, 3, 1);
+
+    verify(measures).setIntValue(CoreMetrics.COMMENT_LINES_DATA_KEY, 1, 0);
+    verify(measures).setIntValue(CoreMetrics.COMMENT_LINES_DATA_KEY, 18, 1);
+
     verify(measures).save();
   }
 
index 45d1bd15619a2d078d8a645491abf8f64409f88c..a8f657d0373da4f64ec6f62ff89684e71996b098 100644 (file)
@@ -1651,6 +1651,10 @@ public final class CoreMetrics {
   public static final String NCLOC_DATA_KEY = "ncloc_data";
 
   /**
+   * Information about lines of code in file.
+   * Key-value pairs, where key - is a number of line, and value - is an indicator of whether line contains code (1) or not (0).
+   *
+   * @see org.sonar.api.measures.FileLinesContext
    * @since 2.14
    */
   @Beta
@@ -1659,6 +1663,25 @@ public final class CoreMetrics {
       .setDomain(DOMAIN_SIZE)
       .create();
 
+  /**
+   * @since 2.14
+   */
+  @Beta
+  public static final String COMMENT_LINES_DATA_KEY = "comment_lines_data";
+
+  /**
+   * Information about comments in file.
+   * Key-value pairs, where key - is a number of line, and value - is an indicator of whether line contains comment (1) or not (0).
+   *
+   * @see org.sonar.api.measures.FileLinesContext
+   * @since 2.14
+   */
+  @Beta
+  public static final Metric COMMENT_LINES_DATA = new Metric.Builder(COMMENT_LINES_DATA_KEY, "comment_lines_data", Metric.ValueType.DATA)
+      .setHidden(true)
+      .setDomain(DOMAIN_DOCUMENTATION)
+      .create();
+
   //--------------------------------------------------------------------------------------------------------------------
   //
   // OTHERS