private void reportIssueBeforeSQ52(InputPath inputFile, RuleKey key, @Nullable Double cost, String message, @Nullable Integer line) { Issuable issuable = issuableFor(inputFile); if (issuable != null) { Issuable.IssueBuilder newIssueBuilder = issuable.newIssueBuilder() .ruleKey(key) .message(message) .line(line) .effortToFix(cost); issuable.addIssue(newIssueBuilder.build()); } }
private void addIssue(InputFile resource, FunctionInterface func) { if (func.getComplexity() > threshold.intValue()) { Issuable issuable = perspectives.as(Issuable.class, resource); if (issuable != null) { Issue issue = issuable.newIssueBuilder() .ruleKey(methodCyclomaticComplexityRule.ruleKey()) .line(func.getBodyLine()) .message(String.format("The Cyclomatic Complexity of this method \"%s\" is %d which is greater than %d authorized.", func.getRealName(), func.getComplexity(), threshold)) .build(); issuable.addIssue(issue); } } } }
public void reportIssues(SourceFile squidFile, Resource sonarFile) { if (squidFile.hasCheckMessages()) { Issuable issuable = resourcePerspectives.as(Issuable.class, sonarFile); Set<CheckMessage> messages = squidFile.getCheckMessages(); if(issuable != null) { for (CheckMessage checkMessage : messages) { Object check = checkMessage.getCheck(); RuleKey ruleKey = getRuleKey((JavaCheck) check); if (ruleKey != null) { Issue issue = issuable.newIssueBuilder() .ruleKey(ruleKey) .line(checkMessage.getLine()) .message(checkMessage.formatDefaultMessage()) .effortToFix(checkMessage.getCost()) .build(); issuable.addIssue(issue); } else { throw new IllegalStateException("Cannot find rule key for instance of "+check.getClass()); } } } // Remove from memory: messages.clear(); } }
Issue issue = issuable.newIssueBuilder() .ruleKey(unitRule.ruleKey()) .line(unit.getLine()) .message(unit.getName() + DEAD_UNIT_VIOLATION_MESSAGE) .build(); Issue issue = issuable.newIssueBuilder() .ruleKey(functionRule.ruleKey()) .line(function.getLine()) .message(function.getRealName() + DEAD_FUNCTION_VIOLATION_MESSAGE) .build();
.line(issue.getLine()==null ? null : issue.getLine().intValue()) .message(issue.getMessage());
issuable.newIssueBuilder() .ruleKey(RuleKey.of(fxCopConf.repositoryKey(), ruleKey(issue.ruleConfigKey()))) .line(issue.line()) .message(issue.message()) .build());
@Override public void addError(AuditEvent event) { String ruleKey = getRuleKey(event); if (ruleKey != null) { String message = getMessage(event); // In Checkstyle 5.5 exceptions are reported as an events from TreeWalker if ("com.puppycrawl.tools.checkstyle.TreeWalker".equals(ruleKey)) { LOG.warn(event.getFileName() + ": " + message); } initResource(event); Issuable issuable = perspectives.as(Issuable.class, File.create(currentResource.relativePath())); Rule rule = ruleFinder.findByKey(CheckstyleConstants.REPOSITORY_KEY, ruleKey); if (rule != null && issuable != null) { IssueBuilder issueBuilder = issuable.newIssueBuilder() .ruleKey(rule.ruleKey()) .message(message) .line(getLineId(event)); issuable.addIssue(issueBuilder.build()); } } }
/** * Saves issues form input file and source file. * * @param sonarFile input file. * @param squidFile source file. */ private void saveIssues(InputFile sonarFile, SourceFile squidFile) { Collection<CheckMessage> messages = squidFile.getCheckMessages(); messages.forEach(message -> { RuleKey ruleKey = checks.ruleKey((SquidAstVisitor<Grammar>) message.getCheck()); Issuable issuable = resourcePerspectives.as(Issuable.class, sonarFile); if (issuable != null) { Issue issue = issuable.newIssueBuilder() .ruleKey(ruleKey) .line(message.getLine()) .message(message.getText(Locale.ENGLISH)) .build(); issuable.addIssue(issue); } }); }
private void saveIssues(File sonarFile, SourceFile squidFile) { Collection<CheckMessage> messages = squidFile.getCheckMessages(); if (messages != null) { for (CheckMessage message : messages) { RuleKey ruleKey = checks.ruleKey((CodeVisitor) message.getCheck()); Issuable issuable = resourcePerspectives.as(Issuable.class, sonarFile); if (issuable != null) { Issue issue = issuable.newIssueBuilder() .ruleKey(ruleKey) .line(message.getLine()) .message(message.getText(Locale.ENGLISH)) .build(); issuable.addIssue(issue); } } } }
public void saveViolation(RuleViolation pmdViolation) { InputFile inputFile = findResourceFor(pmdViolation); if (inputFile == null) { // Save violations only for existing resources return; } Issuable issuable = perspectives.as(Issuable.class, inputFile); Rule rule = findRuleFor(pmdViolation); if (issuable == null || rule == null) { // Save violations only for enabled rules return; } IssueBuilder issueBuilder = issuable.newIssueBuilder() .ruleKey(rule.ruleKey()) .message(pmdViolation.getDescription()) .line(pmdViolation.getBeginLine()); issuable.addIssue(issueBuilder.build()); }
@Override public void analyse(Project module, org.sonar.api.batch.SensorContext context) { createIssueOnDir(new Directory("")); File src = module.getFileSystem().getSourceDirs().get(0); for (File f : fileSystem.files(FileQuery.onMain().onLanguage(Xoo.KEY))) { String relativePathFromSourceDir = new PathResolver().relativePath(src, f); org.sonar.api.resources.File sonarFile = new org.sonar.api.resources.File(relativePathFromSourceDir); Issuable issuable = perspectives.as(Issuable.class, sonarFile); issuable.addIssue(issuable.newIssueBuilder() .ruleKey(RuleKey.of(XooRulesDefinition.XOO_REPOSITORY, RULE_KEY)) .message("Issue created using deprecated API") .line(1) .build()); sonarFile = context.getResource(sonarFile); Directory parent = sonarFile.getParent(); createIssueOnDir(parent); } }
private void addIssue(String ruleKey, String fileName, Integer line, String message) { DelphiUtils.LOG.debug("PMD Violation - rule: " + ruleKey + " file: " + fileName + " message: " + message); InputFile inputFile = delphiProjectHelper.getFile(fileName); Issuable issuable = perspectives.as(Issuable.class, inputFile); if (issuable != null) { Issue issue = issuable.newIssueBuilder() .ruleKey(RuleKey.of(DelphiPmdConstants.REPOSITORY_KEY, ruleKey)) .line(line) .message(message) .build(); issuable.addIssue(issue); } } }
@VisibleForTesting protected void saveIssue(XmlSourceCode sourceCode) { for (XmlIssue xmlIssue : sourceCode.getXmlIssues()) { Issuable issuable = resourcePerspectives.as(Issuable.class, sourceCode.getSonarFile()); issuable.addIssue( issuable.newIssueBuilder() .ruleKey(xmlIssue.getRule().ruleKey()) .line(xmlIssue.getLine()) .message(xmlIssue.getMessage()) .build()); } }