diff options
Diffstat (limited to 'sonar-plugin-api/src')
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; } |