summaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-plugin-api/src')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/ProjectClasspath.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java18
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPlugin.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPluginHandler.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenSurefireUtils.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenUtils.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorDescriptor.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java12
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java37
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java66
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java5
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java6
14 files changed, 99 insertions, 61 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/ProjectClasspath.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/ProjectClasspath.java
index eac312f7cfc..6af187f6315 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/ProjectClasspath.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/ProjectClasspath.java
@@ -33,7 +33,9 @@ import java.util.List;
/**
* @since 2.2
+ * @deprecated since 4.5 this is some Java specific stuff that should by handled by SQ Java plugin
*/
+@Deprecated
public class ProjectClasspath implements BatchComponent {
protected MavenProject pom;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java
index 39888e030c3..34611ea5d98 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultInputFile.java
@@ -22,8 +22,6 @@ package org.sonar.api.batch.fs.internal;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.utils.PathUtils;
-import javax.annotation.CheckForNull;
-
import java.io.File;
import java.io.Serializable;
@@ -50,12 +48,7 @@ public class DefaultInputFile implements InputFile, Serializable {
return relativePath;
}
- /**
- * Marked as nullable just for the unit tests that do not call {@link #setFile(java.io.File)}
- * previously.
- */
@Override
- @CheckForNull
public String absolutePath() {
return absolutePath;
}
@@ -68,11 +61,6 @@ public class DefaultInputFile implements InputFile, Serializable {
return new File(absolutePath);
}
- /**
- * Marked as nullable just for the unit tests that do not call {@link #setLanguage(String)}
- * previously.
- */
- @CheckForNull
@Override
public String language() {
return language;
@@ -84,20 +72,16 @@ public class DefaultInputFile implements InputFile, Serializable {
}
/**
- * Marked as nullable just for the unit tests that do not previously call
* {@link #setStatus(org.sonar.api.batch.fs.InputFile.Status)}
*/
- @CheckForNull
@Override
public Status status() {
return status;
}
/**
- * Digest hash of the file. Marked as nullable just for the unit tests
- * that do not previously call {@link #setHash(String)}
+ * Digest hash of the file.
*/
- @CheckForNull
public String hash() {
return hash;
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java
index 0e590c84593..87b75459373 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/DependsUponMavenPlugin.java
@@ -33,7 +33,9 @@ import org.sonar.api.resources.Project;
* </p>
*
* @since 1.10
+ * @deprecated since 4.5 we don't want any dependency on Maven anymore
*/
+@Deprecated
@SupportedEnvironment("maven")
public interface DependsUponMavenPlugin extends BatchExtension {
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPlugin.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPlugin.java
index 0f3da165a07..7df378027eb 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPlugin.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPlugin.java
@@ -34,7 +34,9 @@ import java.util.List;
* A class to handle maven plugins
*
* @since 1.10
+ * @deprecated since 4.5 we don't want any dependency on Maven anymore
*/
+@Deprecated
public class MavenPlugin {
private static final String CONFIGURATION_ELEMENT = "configuration";
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPluginHandler.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPluginHandler.java
index 6e98b50219d..5f98c19c528 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPluginHandler.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenPluginHandler.java
@@ -27,7 +27,9 @@ import javax.annotation.Nullable;
/**
* @since 1.10
+ * @deprecated since 4.5 we don't want any dependency on Maven anymore
*/
+@Deprecated
public interface MavenPluginHandler extends BatchExtension {
/**
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenSurefireUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenSurefireUtils.java
index 2a3aed4cb32..fed72d6f041 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenSurefireUtils.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenSurefireUtils.java
@@ -23,7 +23,9 @@ import org.sonar.api.resources.Project;
/**
* @since 1.10
+ * @deprecated since 4.5 we don't want any dependency on Maven anymore
*/
+@Deprecated
public final class MavenSurefireUtils {
public static final String GROUP_ID = MavenUtils.GROUP_ID_APACHE_MAVEN;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenUtils.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenUtils.java
index 5419b7bc1e0..6fc76d56d9a 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenUtils.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/maven/MavenUtils.java
@@ -32,7 +32,9 @@ import java.util.Collection;
* An utility class to manipulate Maven concepts
*
* @since 1.10
+ * @deprecated since 4.5 we don't want any dependency on Maven anymore
*/
+@Deprecated
public final class MavenUtils {
private static final String MAVEN_COMPILER_PLUGIN = "maven-compiler-plugin";
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java
index d572d974af4..7465126c3e1 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorContext.java
@@ -134,7 +134,7 @@ public interface SensorContext {
// ------------ DUPLICATIONS ------------
/**
- * Builder to define tokens in a file. Tokens are used to compute duplication by the core.
+ * Builder to define tokens in a file. Tokens are used to compute duplication using default SonarQube engine.
* @since 4.5
*/
DuplicationTokenBuilder duplicationTokenBuilder(InputFile inputFile);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorDescriptor.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorDescriptor.java
index 3d4a3d913a5..9fcd030e553 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorDescriptor.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/SensorDescriptor.java
@@ -56,7 +56,7 @@ public interface SensorDescriptor {
/**
* List {@link InputFile.Type} this {@link Sensor} work on. May be used by the platform to skip execution of the {@link Sensor} when
* no file for given type are present in the project.
- * If not type is provided then it will be executed for all types.
+ * If you don't call this method then it means sensor is working on all input file types.
*/
SensorDescriptor workOnFileTypes(InputFile.Type... types);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java
index 9061e9165e3..280e8106246 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/duplication/DuplicationGroup.java
@@ -20,6 +20,7 @@
package org.sonar.api.batch.sensor.duplication;
import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.batch.sensor.SensorContext;
@@ -138,6 +139,17 @@ public class DuplicationGroup {
}
@Override
+ public int hashCode() {
+ HashCodeBuilder hcBuilder = new HashCodeBuilder(17, 37)
+ .append(originBlock)
+ .append(duplicates.size());
+ for (int i = 0; i < duplicates.size(); i++) {
+ hcBuilder.append(duplicates.get(i));
+ }
+ return hcBuilder.toHashCode();
+ }
+
+ @Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).
append("origin", originBlock).
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java
index 0acc7848e22..d969ba49a03 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/HighlightingBuilder.java
@@ -26,43 +26,6 @@ package org.sonar.api.batch.sensor.highlighting;
public interface HighlightingBuilder {
/**
- * See sonar-colorizer.css
- */
- enum TypeOfText {
- ANNOTATION("a"),
- CONSTANT("c"),
- JAVADOC("j"),
- CLASSIC_COMMENT("cd"),
- CPP_DOC("cppd"),
- KEYWORD("k"),
- STRING("s"),
- KEYWORD_LIGHT("h"),
- PREPROCESS_DIRECTIVE("p");
-
- private final String cssClass;
-
- private TypeOfText(String cssClass) {
- this.cssClass = cssClass;
- }
-
- public static TypeOfText forCssClass(String cssClass) {
- for (TypeOfText typeOfText : TypeOfText.values()) {
- if (typeOfText.cssClass().equals(cssClass)) {
- return typeOfText;
- }
- }
- throw new IllegalArgumentException("No TypeOfText for CSS class " + cssClass);
- }
-
- /**
- * For internal use
- */
- public String cssClass() {
- return cssClass;
- }
- }
-
- /**
* Call this method to indicate the type of text in a range.
* @param startOffset Starting position in file for this type of text. Beginning of a file starts with offset '0'.
* @param endOffset End position in file for this type of text.
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java
new file mode 100644
index 00000000000..ae427944052
--- /dev/null
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/sensor/highlighting/TypeOfText.java
@@ -0,0 +1,66 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.api.batch.sensor.highlighting;
+
+/**
+ * Possible types for highlighting code.
+ * See sonar-colorizer.css
+ * @since 4.5
+ */
+public enum TypeOfText {
+ ANNOTATION("a"),
+ CONSTANT("c"),
+ COMMENT("cd"),
+ /**
+ * @deprecated use {@link #COMMENT}
+ */
+ @Deprecated
+ CPP_DOC("cppd"),
+ /**
+ * For example Javadoc
+ */
+ STRUCTURED_COMMENT("j"),
+ KEYWORD("k"),
+ STRING("s"),
+ KEYWORD_LIGHT("h"),
+ PREPROCESS_DIRECTIVE("p");
+
+ private final String cssClass;
+
+ private TypeOfText(String cssClass) {
+ this.cssClass = cssClass;
+ }
+
+ public static TypeOfText forCssClass(String cssClass) {
+ for (TypeOfText typeOfText : TypeOfText.values()) {
+ if (typeOfText.cssClass().equals(cssClass)) {
+ return typeOfText;
+ }
+ }
+ throw new IllegalArgumentException("No TypeOfText for CSS class " + cssClass);
+ }
+
+ /**
+ * For internal use
+ */
+ public String cssClass() {
+ return cssClass;
+ }
+}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
index 870a8519271..af202228252 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Measure.java
@@ -679,9 +679,10 @@ public class Measure<G extends Serializable> implements Serializable {
* @since 3.2
*/
public boolean isBestValue() {
+ Double bestValue = metric.getBestValue();
return metric.isOptimizedBestValue() == Boolean.TRUE
- && metric.getBestValue() != null
- && (value == null || NumberUtils.compare(metric.getBestValue(), value) == 0)
+ && bestValue != null
+ && (value == null || NumberUtils.compare(bestValue, value) == 0)
&& allNull(alertStatus, description, tendency, url, data)
&& isZeroVariation(variation1, variation2, variation3, variation4, variation5);
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
index 93f874c8af7..5e16b420c2e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
@@ -475,7 +475,7 @@ public class Metric<G extends Serializable> implements ServerExtension, BatchExt
/**
* @return this
*/
- public Metric setWorstValue(Double d) {
+ public Metric setWorstValue(@Nullable Double d) {
this.worstValue = d;
return this;
}
@@ -484,7 +484,7 @@ public class Metric<G extends Serializable> implements ServerExtension, BatchExt
* @param bestValue the best value. It can be null.
* @return this
*/
- public Metric setBestValue(Double bestValue) {
+ public Metric setBestValue(@Nullable Double bestValue) {
this.bestValue = bestValue;
return this;
}
@@ -516,7 +516,7 @@ public class Metric<G extends Serializable> implements ServerExtension, BatchExt
return ValueType.PERCENT.equals(type);
}
- public Metric setOptimizedBestValue(Boolean b) {
+ public Metric setOptimizedBestValue(@Nullable Boolean b) {
this.optimizedBestValue = b;
return this;
}