Search in sources :

Example 1 with DefaultFilterableIssue

use of org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue in project sonarlint-core by SonarSource.

the class IssueFilters method accept.

public boolean accept(InputComponent inputComponent, Issue rawIssue) {
    IssueFilterChain filterChain = new DefaultIssueFilterChain(filters);
    FilterableIssue fIssue = new DefaultFilterableIssue(rawIssue, inputComponent);
    return filterChain.accept(fIssue);
}
Also used : IssueFilterChain(org.sonar.api.scan.issue.filter.IssueFilterChain) FilterableIssue(org.sonar.api.scan.issue.filter.FilterableIssue) DefaultFilterableIssue(org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue) DefaultFilterableIssue(org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue)

Example 2 with DefaultFilterableIssue

use of org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue in project sonarlint-core by SonarSource.

the class EnforceIssuesFilter method accept.

@Override
public boolean accept(FilterableIssue issue, IssueFilterChain chain) {
    var atLeastOneRuleMatched = false;
    var atLeastOnePatternFullyMatched = false;
    IssuePattern matchingPattern = null;
    for (IssuePattern pattern : multicriteriaPatterns) {
        if (pattern.matchRule(issue.ruleKey())) {
            atLeastOneRuleMatched = true;
            var component = ((DefaultFilterableIssue) issue).getComponent();
            if (component.isFile()) {
                var file = (SonarLintInputFile) component;
                if (pattern.matchFile(file.relativePath())) {
                    atLeastOnePatternFullyMatched = true;
                    matchingPattern = pattern;
                }
            }
        }
    }
    if (atLeastOneRuleMatched) {
        if (atLeastOnePatternFullyMatched) {
            LOG.debug("Issue {} enforced by pattern {}", issue, matchingPattern);
        }
        return atLeastOnePatternFullyMatched;
    } else {
        return chain.accept(issue);
    }
}
Also used : SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) IssuePattern(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.pattern.IssuePattern) DefaultFilterableIssue(org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue)

Aggregations

DefaultFilterableIssue (org.sonarsource.sonarlint.core.analysis.sonarapi.DefaultFilterableIssue)2 FilterableIssue (org.sonar.api.scan.issue.filter.FilterableIssue)1 IssueFilterChain (org.sonar.api.scan.issue.filter.IssueFilterChain)1 SonarLintInputFile (org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile)1 IssuePattern (org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.pattern.IssuePattern)1