|
26 | 26 | import org.codehaus.staxmate.in.SMInputCursor;
|
27 | 27 | import org.sonar.api.batch.SensorContext;
|
28 | 28 | import org.sonar.api.batch.fs.FileSystem;
|
| 29 | +import org.sonar.api.measures.CoreMetrics; |
29 | 30 | import org.sonar.api.measures.CoverageMeasuresBuilder;
|
30 | 31 | import org.sonar.api.measures.Measure;
|
31 | 32 | import org.sonar.api.resources.Project;
|
32 | 33 | import org.sonar.api.resources.Resource;
|
| 34 | +import org.sonar.api.utils.KeyValueFormat; |
33 | 35 | import org.sonar.api.utils.ParsingUtils;
|
34 | 36 | import org.sonar.api.utils.StaxParser;
|
35 | 37 | import org.sonar.api.utils.XmlParserException;
|
@@ -82,8 +84,11 @@ private void collectPackageMeasures(SMInputCursor pack) throws XMLStreamExceptio
|
82 | 84 | String filePath = entry.getKey();
|
83 | 85 | Resource resource = org.sonar.api.resources.File.fromIOFile(new File(fileSystem.baseDir(), filePath), project);
|
84 | 86 | if (resourceExists(resource)) {
|
85 |
| - for (Measure measure : entry.getValue().createMeasures()) { |
| 87 | + CoverageMeasuresBuilder builder = entry.getValue(); |
| 88 | + for (Measure measure : builder.createMeasures()) { |
86 | 89 | context.saveMeasure(resource, measure);
|
| 90 | + context.saveMeasure(resource, zeroForIt(builder, measure)); |
| 91 | + context.saveMeasure(resource, convertForOverall(measure)); |
87 | 92 | }
|
88 | 93 | }
|
89 | 94 | }
|
@@ -126,4 +131,44 @@ private static void collectFileData(SMInputCursor clazz,
|
126 | 131 | }
|
127 | 132 | }
|
128 | 133 | }
|
| 134 | + |
| 135 | + private static Measure zeroForIt(CoverageMeasuresBuilder builder, Measure measure) { |
| 136 | + Measure itMeasure = null; |
| 137 | + if (CoreMetrics.LINES_TO_COVER.equals(measure.getMetric())) { |
| 138 | + itMeasure = new Measure(CoreMetrics.IT_LINES_TO_COVER, measure.getValue()); |
| 139 | + } else if (CoreMetrics.UNCOVERED_LINES.equals(measure.getMetric())) { |
| 140 | + itMeasure = new Measure(CoreMetrics.IT_UNCOVERED_LINES, (double) builder.getLinesToCover()); |
| 141 | + } else if (CoreMetrics.COVERAGE_LINE_HITS_DATA.equals(measure.getMetric())) { |
| 142 | + itMeasure = new Measure(CoreMetrics.IT_COVERAGE_LINE_HITS_DATA, KeyValueFormat.format(Maps.newTreeMap())); |
| 143 | + } else if (CoreMetrics.CONDITIONS_TO_COVER.equals(measure.getMetric())) { |
| 144 | + itMeasure = new Measure(CoreMetrics.IT_CONDITIONS_TO_COVER, measure.getValue()); |
| 145 | + } else if (CoreMetrics.UNCOVERED_CONDITIONS.equals(measure.getMetric())) { |
| 146 | + itMeasure = new Measure(CoreMetrics.IT_UNCOVERED_CONDITIONS, (double) builder.getConditions()); |
| 147 | + } else if (CoreMetrics.COVERED_CONDITIONS_BY_LINE.equals(measure.getMetric())) { |
| 148 | + itMeasure = new Measure(CoreMetrics.IT_COVERED_CONDITIONS_BY_LINE, KeyValueFormat.format(Maps.newTreeMap())); |
| 149 | + } else if (CoreMetrics.CONDITIONS_BY_LINE.equals(measure.getMetric())) { |
| 150 | + itMeasure = new Measure(CoreMetrics.IT_CONDITIONS_BY_LINE, KeyValueFormat.format(Maps.newTreeMap())); |
| 151 | + } |
| 152 | + return itMeasure; |
| 153 | + } |
| 154 | + |
| 155 | + private static Measure convertForOverall(Measure measure) { |
| 156 | + Measure overallMeasure = null; |
| 157 | + if (CoreMetrics.LINES_TO_COVER.equals(measure.getMetric())) { |
| 158 | + overallMeasure = new Measure(CoreMetrics.OVERALL_LINES_TO_COVER, measure.getValue()); |
| 159 | + } else if (CoreMetrics.UNCOVERED_LINES.equals(measure.getMetric())) { |
| 160 | + overallMeasure = new Measure(CoreMetrics.OVERALL_UNCOVERED_LINES, measure.getValue()); |
| 161 | + } else if (CoreMetrics.COVERAGE_LINE_HITS_DATA.equals(measure.getMetric())) { |
| 162 | + overallMeasure = new Measure(CoreMetrics.OVERALL_COVERAGE_LINE_HITS_DATA, measure.getData()); |
| 163 | + } else if (CoreMetrics.CONDITIONS_TO_COVER.equals(measure.getMetric())) { |
| 164 | + overallMeasure = new Measure(CoreMetrics.OVERALL_CONDITIONS_TO_COVER, measure.getValue()); |
| 165 | + } else if (CoreMetrics.UNCOVERED_CONDITIONS.equals(measure.getMetric())) { |
| 166 | + overallMeasure = new Measure(CoreMetrics.OVERALL_UNCOVERED_CONDITIONS, measure.getValue()); |
| 167 | + } else if (CoreMetrics.COVERED_CONDITIONS_BY_LINE.equals(measure.getMetric())) { |
| 168 | + overallMeasure = new Measure(CoreMetrics.OVERALL_COVERED_CONDITIONS_BY_LINE, measure.getData()); |
| 169 | + } else if (CoreMetrics.CONDITIONS_BY_LINE.equals(measure.getMetric())) { |
| 170 | + overallMeasure = new Measure(CoreMetrics.OVERALL_CONDITIONS_BY_LINE, measure.getData()); |
| 171 | + } |
| 172 | + return overallMeasure; |
| 173 | + } |
129 | 174 | }
|
0 commit comments