.setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(10) .setEndLine(12)
/** * Extract the lines of all the locations in the specified component. All the flows and secondary locations * are taken into account. The lines present in multiple flows and locations are kept * duplicated. Ordering of results is not guaranteed. * <p> * TODO should be a method of DefaultIssue, as soon as it's no * longer in sonar-core and can access sonar-db-dao. */ public static IntStream allLinesFor(DefaultIssue issue, String componentId) { DbIssues.Locations locations = issue.getLocations(); if (locations == null) { return IntStream.empty(); } Stream<DbCommons.TextRange> textRanges = Stream.concat( locations.hasTextRange() ? Stream.of(locations.getTextRange()) : Stream.empty(), locations.getFlowList().stream() .flatMap(f -> f.getLocationList().stream()) .filter(l -> Objects.equals(componentIdOf(issue, l), componentId)) .map(DbIssues.Location::getTextRange)); return textRanges.flatMapToInt(range -> IntStream.rangeClosed(range.getStartLine(), range.getEndLine())); }
/** * <code>optional .sonarqube.db.commons.TextRange text_range = 2;</code> * * <pre> * Only when component is a file. Can be empty for a file if this is an issue global to the file. * </pre> */ public Builder mergeTextRange(org.sonar.db.protobuf.DbCommons.TextRange value) { if (textRangeBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && textRange_ != null && textRange_ != org.sonar.db.protobuf.DbCommons.TextRange.getDefaultInstance()) { textRange_ = org.sonar.db.protobuf.DbCommons.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial(); } else { textRange_ = value; } onChanged(); } else { textRangeBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .sonarqube.db.commons.TextRange text_range = 1;</code> */ public Builder mergeTextRange(org.sonar.db.protobuf.DbCommons.TextRange value) { if (textRangeBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && textRange_ != null && textRange_ != org.sonar.db.protobuf.DbCommons.TextRange.getDefaultInstance()) { textRange_ = org.sonar.db.protobuf.DbCommons.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial(); } else { textRange_ = value; } onChanged(); } else { textRangeBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {
public Builder mergeFrom(org.sonar.db.protobuf.DbCommons.TextRange other) { if (other == org.sonar.db.protobuf.DbCommons.TextRange.getDefaultInstance()) return this; if (other.hasStartLine()) { setStartLine(other.getStartLine()); } if (other.hasEndLine()) { setEndLine(other.getEndLine()); } if (other.hasStartOffset()) { setStartOffset(other.getStartOffset()); } if (other.hasEndOffset()) { setEndOffset(other.getEndOffset()); } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; }
private static Common.TextRange.Builder convertTextRange(DbCommons.TextRange sourceRange) { Common.TextRange.Builder targetRange = Common.TextRange.newBuilder(); if (sourceRange.hasStartLine()) { targetRange.setStartLine(sourceRange.getStartLine()); } if (sourceRange.hasStartOffset()) { targetRange.setStartOffset(sourceRange.getStartOffset()); } if (sourceRange.hasEndLine()) { targetRange.setEndLine(sourceRange.getEndLine()); } if (sourceRange.hasEndOffset()) { targetRange.setEndOffset(sourceRange.getEndOffset()); } return targetRange; }
private static void addLines(Set<Integer> involvedLines, TextRange range) { IntStream.rangeClosed(range.getStartLine(), range.getEndLine()).forEach(involvedLines::add); }
private DbCommons.TextRange.Builder convertTextRange(ScannerReport.TextRange sourceRange) { DbCommons.TextRange.Builder targetRange = DbCommons.TextRange.newBuilder(); targetRange.setStartLine(sourceRange.getStartLine()); targetRange.setStartOffset(sourceRange.getStartOffset()); targetRange.setEndLine(sourceRange.getEndLine()); targetRange.setEndOffset(sourceRange.getEndOffset()); return targetRange; } }
.setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(10) .setEndLine(12)
.setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(10) .setEndLine(12)
.setComponentId(file.uuid()) .setMsg("FLOW MESSAGE") .setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(1) .setEndLine(1) .setComponentId(anotherFile.uuid()) .setMsg("ANOTHER FLOW MESSAGE") .setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(1) .setEndLine(1) .setTextRange(DbCommons.TextRange.newBuilder() .setStartLine(1) .setEndLine(1)
private static org.sonar.db.protobuf.DbCommons.TextRange range(int startLine, int endLine) { return TextRange.newBuilder().setStartLine(startLine).setEndLine(endLine).build(); }
private static Common.TextRange.Builder convertTextRange(DbCommons.TextRange sourceRange) { Common.TextRange.Builder targetRange = Common.TextRange.newBuilder(); if (sourceRange.hasStartLine()) { targetRange.setStartLine(sourceRange.getStartLine()); } if (sourceRange.hasStartOffset()) { targetRange.setStartOffset(sourceRange.getStartOffset()); } if (sourceRange.hasEndLine()) { targetRange.setEndLine(sourceRange.getEndLine()); } if (sourceRange.hasEndOffset()) { targetRange.setEndOffset(sourceRange.getEndOffset()); } return targetRange; }
private static DbIssues.Location newLocation(int line) { return DbIssues.Location.newBuilder() .setComponentId(FILE.getUuid()) .setTextRange(DbCommons.TextRange.newBuilder().setStartLine(line).setEndLine(line).build()).build(); }
private DbCommons.TextRange.Builder convertTextRange(ScannerReport.TextRange sourceRange) { DbCommons.TextRange.Builder targetRange = DbCommons.TextRange.newBuilder(); targetRange.setStartLine(sourceRange.getStartLine()); targetRange.setStartOffset(sourceRange.getStartOffset()); targetRange.setEndLine(sourceRange.getEndLine()); targetRange.setEndOffset(sourceRange.getEndOffset()); return targetRange; } }
private static DbIssues.Location newLocation(@Nullable String componentId, int startLine, int endLine) { DbIssues.Location.Builder builder = DbIssues.Location.newBuilder() .setTextRange(DbCommons.TextRange.newBuilder().setStartLine(startLine).setEndLine(endLine).build()); ofNullable(componentId).ifPresent(builder::setComponentId); return builder.build(); } }