Interface ViolationSuppressor

All Known Implementing Classes:
AbstractAnnotationSuppressor

public interface ViolationSuppressor
An object that suppresses rule violations. Suppressors are used by RuleContext to filter out violations. In PMD 6.0.x, the Report object filtered violations itself - but it has no knowledge of language-specific suppressors.
  • Field Details

    • REGEX_SUPPRESSOR

      static final ViolationSuppressor REGEX_SUPPRESSOR
      Suppressor for the violationSuppressRegex property.
    • XPATH_SUPPRESSOR

      static final ViolationSuppressor XPATH_SUPPRESSOR
      Suppressor for the violationSuppressXPath property.
    • NOPMD_COMMENT_SUPPRESSOR

      static final ViolationSuppressor NOPMD_COMMENT_SUPPRESSOR
      Suppressor for regular NOPMD comments.
      Implementation Note:
      This requires special support from the language, namely, the parser must fill in suppression comments through AstInfo.withSuppressionComments(Collection).
  • Method Details

    • getId

      String getId()
      A name, for reporting and documentation purposes.
    • suppressOrNull

      @Nullable Report.SuppressedViolation suppressOrNull(RuleViolation rv, @NonNull Node node)
      Returns a Report.SuppressedViolation if the given violation is suppressed by this object. The node and the rule are provided for context. Returns null if the violation is not suppressed.
    • getUnusedSuppressors

      default Set<ViolationSuppressor.UnusedSuppressorNode> getUnusedSuppressors(RootNode tree)
      Return the set of suppressor nodes related to this suppressor that were not used during the analysis. For instance, for an annotation suppressor, the set contains suppressor nodes wrapping annotations. This must be implemented if this suppressor wants to play well with the unused PMD suppression rule.
      Parameters:
      tree - Root node of a file
      Returns:
      A set
      Since:
      7.14.0
    • suppressOrNull

      static @Nullable Report.SuppressedViolation suppressOrNull(List<ViolationSuppressor> suppressorList, RuleViolation rv, Node node)
      Apply a list of suppressors on the violation. Returns the violation of the first suppressor that matches the input violation. If no suppressor matches, then returns null.