public static Issue issueOnLine(Check check, int line, String message) { return new Issue(check, new Message(line, message), null); }
protected final void reportIssueOnFile(String message) { context.reportIssue(Issue.issueOnFile(this, message)); }
protected final void reportIssueOnLine(int line, String message) { context.reportIssue(Issue.issueOnLine(this, line, message)); } }
private void reportIssue(Issue issue, SensorContext context, InputFile inputFile) { // TODO improve common rule engine to handle this out of the box RuleKey ruleKey = checks.ruleKey(issue.getCheck()); Objects.requireNonNull(ruleKey, "Rule key not found for " + issue.getCheck().getClass()); NewIssue newIssue = context.newIssue(); NewIssueLocation location = newIssue.newLocation() .on(inputFile) .message(issue.getMessage()); if (issue.hasNodeLocation()) { location.at(newRange(inputFile, issue.getPrimary().from, issue.getPrimary().to)); } else if (issue.hasLineLocation()) { location.at(inputFile.selectLine(issue.getPrimary().line)); } newIssue.forRule(ruleKey).at(location).gap(issue.getEffortToFix()); Arrays.stream(issue.getSecondaries()).forEach(secondary -> newIssue.addLocation( newIssue.newLocation() .on(inputFile) .at(newRange(inputFile, secondary.from, secondary.to)) .message(secondary.description == null ? "" : secondary.description))); newIssue.save(); }
private static void reportIssueTo(SingleFileVerifier verifier, Issue issue) { SingleFileVerifier.Issue newIssue; if (issue.hasNodeLocation()) { Issue.Message primary = issue.getPrimary(); UastNode fromNode = primary.from; UastNode toNode = primary.to; UastNode.Token from; UastNode.Token to; if (fromNode.is(UastNode.Kind.COMMENT)) { from = fromNode.token; to = toNode.token; } else { from = fromNode.firstToken(); to = toNode.lastToken(); } newIssue = verifier.reportIssue(issue.getMessage()) .onRange(from.line, from.column, to.endLine, to.endColumn) .withGap(issue.getEffortToFix()); } else if (issue.hasLineLocation()) { newIssue = verifier.reportIssue(issue.getMessage()).onLine(issue.getPrimary().line); } else { newIssue = verifier.reportIssue(issue.getMessage()).onFile(); } Arrays.stream(issue.getSecondaries()).forEach(secondary -> reportSecondaryTo(newIssue, secondary)); }
public static Issue issueOnFile(Check check, String message) { return new Issue(check, new Message(null, message), null); }
protected final void reportIssue(UastNode node, String message, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(node, message), null, secondaryMessages)); }
protected final void reportIssue(UastNode node, String message) { context.reportIssue(new Issue(this, new Issue.Message(node, message), null)); }
protected final void reportIssue(UastNode from, UastNode to, String message, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(from, to, message), null, secondaryMessages)); }
protected final void reportIssue(UastNode from, UastNode to, String message, double effortToFix, Issue.Message... secondaryMessages) { context.reportIssue(new Issue(this, new Issue.Message(from, to, message), effortToFix, secondaryMessages)); }