From 3eb405893fa061ff1c6721d389191d2fd6c4c428 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Wed, 29 Apr 2015 10:23:32 +0200 Subject: [PATCH] Fix some quality flaws --- .../org/sonar/batch/phases/SensorMatcher.java | 4 +- .../TestExecutionAndCoveragePublisher.java | 73 ++++++++++--------- .../batch/scan/report/ResourceReport.java | 7 +- 3 files changed, 45 insertions(+), 39 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorMatcher.java b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorMatcher.java index 38502235cff..c098deb5f0f 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorMatcher.java +++ b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorMatcher.java @@ -36,8 +36,8 @@ public abstract class SensorMatcher implements BatchExtension, ExtensionMatcher @Override public final boolean accept(Object extension) { - return ClassUtils.isAssignable(extension.getClass(), Sensor.class) - && acceptSensor((Sensor) extension) || ClassUtils.isAssignable(extension.getClass(), org.sonar.api.batch.sensor.Sensor.class); + return (ClassUtils.isAssignable(extension.getClass(), Sensor.class) && acceptSensor((Sensor) extension)) + || ClassUtils.isAssignable(extension.getClass(), org.sonar.api.batch.sensor.Sensor.class); } public abstract boolean acceptSensor(Sensor sensor); diff --git a/sonar-batch/src/main/java/org/sonar/batch/report/TestExecutionAndCoveragePublisher.java b/sonar-batch/src/main/java/org/sonar/batch/report/TestExecutionAndCoveragePublisher.java index 53c86c345a4..84358102b78 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/report/TestExecutionAndCoveragePublisher.java +++ b/sonar-batch/src/main/java/org/sonar/batch/report/TestExecutionAndCoveragePublisher.java @@ -41,12 +41,47 @@ import java.util.Set; public class TestExecutionAndCoveragePublisher implements ReportPublisherStep { - private final class FunctionImplementation implements Function { + private final class TestConverter implements Function { + private final Set testNamesWithCoverage; + private BatchReport.Test.Builder builder = BatchReport.Test.newBuilder(); + + private TestConverter(Set testNamesWithCoverage) { + this.testNamesWithCoverage = testNamesWithCoverage; + } + + @Override + public Test apply(MutableTestCase testCase) { + builder.clear(); + builder.setName(testCase.name()); + if (testCase.doesCover()) { + testNamesWithCoverage.add(testCase.name()); + } + Long durationInMs = testCase.durationInMs(); + if (durationInMs != null) { + builder.setDurationInMs(durationInMs); + } + String msg = testCase.message(); + if (msg != null) { + builder.setMsg(msg); + } + String stack = testCase.stackTrace(); + if (stack != null) { + builder.setStacktrace(stack); + } + TestCase.Status status = testCase.status(); + if (status != null) { + builder.setStatus(TestStatus.valueOf(status.name())); + } + return builder.build(); + } + } + + private final class TestCoverageConverter implements Function { private final MutableTestPlan testPlan; private BatchReport.CoverageDetail.Builder builder = BatchReport.CoverageDetail.newBuilder(); private BatchReport.CoverageDetail.CoveredFile.Builder coveredBuilder = BatchReport.CoverageDetail.CoveredFile.newBuilder(); - private FunctionImplementation(MutableTestPlan testPlan) { + private TestCoverageConverter(MutableTestPlan testPlan) { this.testPlan = testPlan; } @@ -95,39 +130,9 @@ public class TestExecutionAndCoveragePublisher implements ReportPublisherStep { final Set testNamesWithCoverage = new HashSet<>(); - writer.writeTests(resource.batchId(), Iterables.transform(testPlan.testCases(), new Function() { - - private BatchReport.Test.Builder builder = BatchReport.Test.newBuilder(); - - @Override - public Test apply(MutableTestCase testCase) { - builder.clear(); - builder.setName(testCase.name()); - if (testCase.doesCover()) { - testNamesWithCoverage.add(testCase.name()); - } - Long durationInMs = testCase.durationInMs(); - if (durationInMs != null) { - builder.setDurationInMs(durationInMs); - } - String msg = testCase.message(); - if (msg != null) { - builder.setMsg(msg); - } - String stack = testCase.stackTrace(); - if (stack != null) { - builder.setStacktrace(stack); - } - TestCase.Status status = testCase.status(); - if (status != null) { - builder.setStatus(TestStatus.valueOf(status.name())); - } - return builder.build(); - } - - })); + writer.writeTests(resource.batchId(), Iterables.transform(testPlan.testCases(), new TestConverter(testNamesWithCoverage))); - writer.writeCoverageDetails(resource.batchId(), Iterables.transform(testNamesWithCoverage, new FunctionImplementation(testPlan))); + writer.writeCoverageDetails(resource.batchId(), Iterables.transform(testNamesWithCoverage, new TestCoverageConverter(testPlan))); } } } diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/report/ResourceReport.java b/sonar-batch/src/main/java/org/sonar/batch/scan/report/ResourceReport.java index 18e135f278a..18a7fc8a1e3 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/report/ResourceReport.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/report/ResourceReport.java @@ -20,7 +20,6 @@ package org.sonar.batch.scan.report; import com.google.common.collect.Maps; -import org.apache.commons.collections.CollectionUtils; import org.sonar.api.issue.Issue; import org.sonar.api.rules.Rule; import org.sonar.api.rules.RulePriority; @@ -139,9 +138,11 @@ public final class ResourceReport { private boolean hasIssues(Integer lineId, boolean all) { if (all) { - return CollectionUtils.isNotEmpty(issuesPerLine.get(lineId)); + List issuesAtLine = issuesPerLine.get(lineId); + return issuesAtLine != null && !issuesAtLine.isEmpty(); } - return CollectionUtils.isNotEmpty(newIssuesPerLine.get(lineId)); + List newIssuesAtLine = newIssuesPerLine.get(lineId); + return newIssuesAtLine != null && !newIssuesAtLine.isEmpty(); } public List getRuleReports() { -- 2.39.5