diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2014-06-18 17:28:54 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2014-06-18 17:29:46 +0200 |
commit | 7b8ec8c4770a2c856cc52f98feddb0231d172051 (patch) | |
tree | 6cc4fe34e4b8659609888bc4b9a2d3559e6c09b9 /sonar-batch | |
parent | d53af792fde9bd9eae47141a1b8abe17d70fe09d (diff) | |
download | sonarqube-7b8ec8c4770a2c856cc52f98feddb0231d172051.tar.gz sonarqube-7b8ec8c4770a2c856cc52f98feddb0231d172051.zip |
SONAR-5389 Improve analyzer API
Diffstat (limited to 'sonar-batch')
3 files changed, 74 insertions, 23 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java b/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java index 97bf89d1aa9..c83c090f252 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java @@ -22,12 +22,17 @@ package org.sonar.batch.scan; import org.sonar.api.batch.SensorContext; import org.sonar.api.batch.analyzer.AnalyzerContext; import org.sonar.api.batch.analyzer.issue.AnalyzerIssue; +import org.sonar.api.batch.analyzer.issue.AnalyzerIssueBuilder; +import org.sonar.api.batch.analyzer.issue.internal.DefaultAnalyzerIssueBuilder; import org.sonar.api.batch.analyzer.measure.AnalyzerMeasure; import org.sonar.api.batch.analyzer.measure.AnalyzerMeasureBuilder; import org.sonar.api.batch.analyzer.measure.internal.DefaultAnalyzerMeasureBuilder; +import org.sonar.api.batch.fs.FileSystem; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.measures.Metric; +import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.component.ResourcePerspectives; +import org.sonar.api.config.Settings; import org.sonar.api.issue.Issuable; import org.sonar.api.measures.Measure; import org.sonar.api.measures.MetricFinder; @@ -37,20 +42,45 @@ import org.sonar.api.resources.Resource; import org.sonar.api.rule.RuleKey; import java.io.Serializable; -import java.util.Collection; +/** + * Implements {@link AnalyzerContext} but forward everything to {@link SensorContext} for backward compatibility. + * + */ public class AnalyzerContextAdaptor implements AnalyzerContext { private SensorContext sensorContext; private MetricFinder metricFinder; private Project project; private ResourcePerspectives perspectives; + private Settings settings; + private FileSystem fs; + private ActiveRules activeRules; - public AnalyzerContextAdaptor(SensorContext sensorContext, MetricFinder metricFinder, Project project, ResourcePerspectives perspectives) { + public AnalyzerContextAdaptor(SensorContext sensorContext, MetricFinder metricFinder, Project project, ResourcePerspectives perspectives, + Settings settings, FileSystem fs, ActiveRules activeRules) { this.sensorContext = sensorContext; this.metricFinder = metricFinder; this.project = project; this.perspectives = perspectives; + this.settings = settings; + this.fs = fs; + this.activeRules = activeRules; + } + + @Override + public Settings settings() { + return settings; + } + + @Override + public FileSystem fileSystem() { + return fs; + } + + @Override + public ActiveRules activeRules() { + return activeRules; } @Override @@ -107,7 +137,7 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { @Override public void addMeasure(AnalyzerMeasure<?> measure) { - org.sonar.api.measures.Metric<?> m = metricFinder.findByKey(measure.metricKey()); + org.sonar.api.measures.Metric<?> m = metricFinder.findByKey(measure.metric().key()); Measure measureToSave = new Measure(m); switch (m.getType()) { @@ -150,6 +180,11 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { } @Override + public AnalyzerIssueBuilder issueBuilder() { + return new DefaultAnalyzerIssueBuilder(); + } + + @Override public void addIssue(AnalyzerIssue issue) { Resource r; if (issue.inputFile() != null) { @@ -166,11 +201,4 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { .build()); } - @Override - public void addIssues(Collection<AnalyzerIssue> issues) { - for (AnalyzerIssue analyzerIssue : issues) { - addIssue(analyzerIssue); - } - } - } diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan2/AnalyzerMeasureCache.java b/sonar-batch/src/main/java/org/sonar/batch/scan2/AnalyzerMeasureCache.java index 593324a1c73..07d313f2249 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan2/AnalyzerMeasureCache.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan2/AnalyzerMeasureCache.java @@ -47,15 +47,15 @@ public class AnalyzerMeasureCache implements BatchComponent { public AnalyzerMeasureCache put(String resourceKey, DefaultAnalyzerMeasure<?> measure) { Preconditions.checkNotNull(resourceKey); - Preconditions.checkNotNull(measure.metricKey()); - cache.put(resourceKey, measure.metricKey(), measure); + Preconditions.checkNotNull(measure); + cache.put(resourceKey, measure.metric().key(), measure); return this; } public boolean contains(String resourceKey, DefaultAnalyzerMeasure<?> measure) { Preconditions.checkNotNull(resourceKey); Preconditions.checkNotNull(measure); - return cache.containsKey(resourceKey, measure.metricKey()); + return cache.containsKey(resourceKey, measure.metric().key()); } public Iterable<DefaultAnalyzerMeasure> all() { diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan2/DefaultAnalyzerContext.java b/sonar-batch/src/main/java/org/sonar/batch/scan2/DefaultAnalyzerContext.java index 5fc2961ef84..e411fbbfe74 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan2/DefaultAnalyzerContext.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan2/DefaultAnalyzerContext.java @@ -21,13 +21,18 @@ package org.sonar.batch.scan2; import org.sonar.api.batch.analyzer.AnalyzerContext; import org.sonar.api.batch.analyzer.issue.AnalyzerIssue; +import org.sonar.api.batch.analyzer.issue.AnalyzerIssueBuilder; +import org.sonar.api.batch.analyzer.issue.internal.DefaultAnalyzerIssueBuilder; import org.sonar.api.batch.analyzer.measure.AnalyzerMeasure; import org.sonar.api.batch.analyzer.measure.AnalyzerMeasureBuilder; import org.sonar.api.batch.analyzer.measure.internal.DefaultAnalyzerMeasure; import org.sonar.api.batch.analyzer.measure.internal.DefaultAnalyzerMeasureBuilder; import org.sonar.api.batch.bootstrap.ProjectDefinition; +import org.sonar.api.batch.fs.FileSystem; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.measures.Metric; +import org.sonar.api.batch.rule.ActiveRules; +import org.sonar.api.config.Settings; import org.sonar.api.issue.internal.DefaultIssue; import org.sonar.api.rule.RuleKey; import org.sonar.batch.issue.ModuleIssues; @@ -35,18 +40,39 @@ import org.sonar.core.component.ComponentKeys; import org.sonar.core.issue.DefaultIssueBuilder; import java.io.Serializable; -import java.util.Collection; public class DefaultAnalyzerContext implements AnalyzerContext { private final AnalyzerMeasureCache measureCache; private ProjectDefinition def; private ModuleIssues moduleIssues; + private Settings settings; + private FileSystem fs; + private ActiveRules activeRules; - public DefaultAnalyzerContext(ProjectDefinition def, AnalyzerMeasureCache measureCache, ModuleIssues moduleIssues) { + public DefaultAnalyzerContext(ProjectDefinition def, AnalyzerMeasureCache measureCache, + ModuleIssues moduleIssues, Settings settings, FileSystem fs, ActiveRules activeRules) { this.def = def; this.measureCache = measureCache; this.moduleIssues = moduleIssues; + this.settings = settings; + this.fs = fs; + this.activeRules = activeRules; + } + + @Override + public Settings settings() { + return settings; + } + + @Override + public FileSystem fileSystem() { + return fs; + } + + @Override + public ActiveRules activeRules() { + return activeRules; } @Override @@ -84,6 +110,11 @@ public class DefaultAnalyzerContext implements AnalyzerContext { } @Override + public AnalyzerIssueBuilder issueBuilder() { + return new DefaultAnalyzerIssueBuilder(); + } + + @Override public void addIssue(AnalyzerIssue issue) { DefaultIssueBuilder builder = new DefaultIssueBuilder() .projectKey(def.getKey()); @@ -101,12 +132,4 @@ public class DefaultAnalyzerContext implements AnalyzerContext { .build()); } - @Override - public void addIssues(Collection<AnalyzerIssue> issues) { - for (AnalyzerIssue analyzerIssue : issues) { - addIssue(analyzerIssue); - } - - } - } |