From 9aa8946e233c9f2fb46ed80f27a2d912516876ef Mon Sep 17 00:00:00 2001 From: Godin Date: Fri, 26 Nov 2010 14:32:21 +0000 Subject: SONAR-1405: The API must optionally allow plugins to add rule violations on lines with //NOSONAR tag --- .../java/org/sonar/api/batch/DecoratorContext.java | 7 +++++++ .../main/java/org/sonar/api/batch/SensorContext.java | 10 +++++++++- .../src/main/java/org/sonar/api/batch/SonarIndex.java | 19 +++++++++++++------ 3 files changed, 29 insertions(+), 7 deletions(-) (limited to 'sonar-plugin-api') diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java index 8d3d14f2837..837cb557978 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/DecoratorContext.java @@ -108,6 +108,13 @@ public interface DecoratorContext { */ List getViolations(); + /** + * Save a coding rule violation. The decorator which calls this method must be depended upon BatchBarriers.END_OF_VIOLATIONS_GENERATION. + * + * @since 2.5 + * @param force allows to force creation of violation even if it was supressed by {@link org.sonar.api.rules.ViolationFilter} + */ + DecoratorContext saveViolation(Violation violation, boolean force); /** * Save a coding rule violation. The decorator which calls this method must be depended upon BatchBarriers.END_OF_VIOLATIONS_GENERATION. diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java index 0c6e13c6d81..e1082ecdf3e 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SensorContext.java @@ -101,13 +101,21 @@ public interface SensorContext { // ----------- RULE VIOLATIONS -------------- + /** + * Save a coding rule violation. + * + * @since 2.5 + * @param force allows to force creation of violation even if it was supressed by {@link org.sonar.api.rules.ViolationFilter} + */ + void saveViolation(Violation violation, boolean force); + /** * Save a coding rule violation. */ void saveViolation(Violation violation); /** - * Saves a list of violations + * Saves a list of violations. */ void saveViolations(Collection violations); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SonarIndex.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SonarIndex.java index 1fdddb46bc7..de6d6e1f670 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/SonarIndex.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/SonarIndex.java @@ -19,6 +19,11 @@ */ package org.sonar.api.batch; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Set; + import org.sonar.api.design.Dependency; import org.sonar.api.measures.Measure; import org.sonar.api.measures.MeasuresFilter; @@ -29,11 +34,6 @@ import org.sonar.api.resources.Resource; import org.sonar.api.rules.Violation; import org.sonar.graph.DirectedGraphAccessor; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Set; - public abstract class SonarIndex implements DirectedGraphAccessor { public abstract Project getProject(); @@ -54,7 +54,14 @@ public abstract class SonarIndex implements DirectedGraphAccessor