import java.util.Date;
import javax.annotation.CheckForNull;
import javax.annotation.concurrent.ThreadSafe;
+import org.sonar.api.batch.fs.TextRange;
import org.sonar.api.rule.RuleKey;
/**
String message();
+ /**
+ * @deprecated since 7.2. Use {@link #textRange() instead}.
+ */
+
+ @Deprecated
@CheckForNull
Integer line();
+ /**
+ * @since 7.2
+ */
+ @CheckForNull
+ TextRange textRange();
+
/**
* @deprecated since 5.5 use {@link #gap()}
*/
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.sonar.api.batch.fs.InputModule;
+import org.sonar.api.batch.fs.TextRange;
import org.sonar.api.batch.fs.internal.DefaultInputModule;
+import org.sonar.api.batch.fs.internal.DefaultTextPointer;
+import org.sonar.api.batch.fs.internal.DefaultTextRange;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.scan.issue.filter.FilterableIssue;
import org.sonar.scanner.ProjectAnalysisInfo;
return rawIssue.getMsg();
}
+ @Deprecated
@Override
public Integer line() {
return rawIssue.hasTextRange() ? rawIssue.getTextRange().getStartLine() : null;
}
+ @Override
+ public TextRange textRange() {
+ if (!rawIssue.hasTextRange()) {
+ return null;
+ }
+
+ return new DefaultTextRange(
+ new DefaultTextPointer(rawIssue.getTextRange().getStartLine(), rawIssue.getTextRange().getStartOffset()),
+ new DefaultTextPointer(rawIssue.getTextRange().getEndLine(), rawIssue.getTextRange().getEndOffset()));
+ }
+
@Override
public Double gap() {
return rawIssue.getGap() != 0 ? rawIssue.getGap() : null;
Issue.Builder builder = Issue.newBuilder();
builder.setGap(3.0);
- builder.setTextRange(TextRange.newBuilder().setStartLine(30));
+ builder.setTextRange(TextRange.newBuilder()
+ .setStartLine(30)
+ .setStartOffset(10)
+ .setEndLine(31)
+ .setEndOffset(3));
builder.setSeverity(Severity.MAJOR);
return builder.build();
}
assertThat(issue.componentKey()).isEqualTo(componentKey);
assertThat(issue.creationDate()).isEqualTo(new Date(10_000));
assertThat(issue.line()).isEqualTo(30);
+ assertThat(issue.textRange().start().line()).isEqualTo(30);
+ assertThat(issue.textRange().start().lineOffset()).isEqualTo(10);
+ assertThat(issue.textRange().end().line()).isEqualTo(31);
+ assertThat(issue.textRange().end().lineOffset()).isEqualTo(3);
assertThat(issue.projectKey()).isEqualTo("projectKey");
assertThat(issue.effortToFix()).isEqualTo(3.0);
assertThat(issue.severity()).isEqualTo("MAJOR");