Package net.sourceforge.pmd.reporting

Class RuleContext

java.lang.Object
net.sourceforge.pmd.reporting.RuleContext

public final classRuleContextextendsObject
The API for rules to report violations or errors during analysis. This forwards events to aFileAnalysisListener. It implements violation suppression by filtering some violations out, according to theViolationSuppressors for the language.

A RuleContext contains a Rule instance and violation reporting methods implicitly report only for that rule. Contrary to PMD 6, RuleContext is not unique throughout the analysis, a separate one is used per file and rule.

  • Method Details

    • addViolation

      public void addViolation(Node location)
      Record a new violation of the contextual rule, at the given node.
      Parameters:
      location - Location of the violation
    • addViolation

      public void addViolation(Node location,Object... formatArgs)
      Record a new violation of the contextual rule, at the given node. The default violation message (Rule.getMessage()) is formatted using the given format arguments.
      Parameters:
      location - Location of the violation
      formatArgs - Format arguments for the message
      See Also:
    • addViolationWithMessage

      public void addViolationWithMessage(Node location,String message)
      Record a new violation of the contextual rule, at the given node. The given violation message (Rule.getMessage()) is treated as a format string for aMessageFormat and should hence use appropriate escapes. No formatting arguments are provided.
      Parameters:
      location - Location of the violation
      message - Violation message
    • addViolationWithMessage

      public void addViolationWithMessage(Node location,String message,Object... formatArgs)
      Record a new violation of the contextual rule, at the given node. The given violation message (Rule.getMessage()) is treated as a format string for aMessageFormat and should hence use appropriate escapes. The given formatting arguments are used.
      Parameters:
      location - Location of the violation
      message - Violation message
      formatArgs - Format arguments for the message
    • addViolationWithPosition

      public void addViolationWithPosition(Node node, int beginLine, int endLine,String message,Object... formatArgs)
      Record a new violation of the contextual rule, at the given node. The position is refined using the given begin and end line numbers. The given violation message (Rule.getMessage()) is treated as a format string for aMessageFormat and should hence use appropriate escapes. The given formatting arguments are used.
      Parameters:
      node - Location of the violation
      message - Violation message
      formatArgs - Format arguments for the message
    • addViolationWithPosition

      @Experimentalpublic void addViolationWithPosition(Node node,JavaccToken token,String message,Object... formatArgs)
      Record a new violation of the contextual rule, at the given token location. The position is refined using the given begin and end line numbers. The given violation message (Rule.getMessage()) is treated as a format string for aMessageFormat and should hence use appropriate escapes. The given formatting arguments are used.
      Experimental Status:
      Since 7.17.0. This will probably never be stabilized, will instead be replaced by a fluent API or something to report violations. Do not use this outside of the PMD codebase. See[core] Add fluent API to report violations #5039.
      Parameters:
      node - Location of the violation (node or token) - only used to determine suppression
      token - Report location of the violation
      message - Violation message
      formatArgs - Format arguments for the message
    • addViolationWithPosition

      @Experimentalpublic void addViolationWithPosition(Reportable reportable,AstInfo<?> astInfo,FileLocation location,String message,Object... formatArgs)
      Record a new violation of the contextual rule, at the given location (node or token). The position is refined using the given begin and end line numbers. The given violation message (Rule.getMessage()) is treated as a format string for aMessageFormat and should hence use appropriate escapes. The given formatting arguments are used.
      Experimental Status:
      Since 7.9.0. This will probably never be stabilized, will instead be replaced by a fluent API or something to report violations. Do not use this outside of the PMD codebase. See[core] Add fluent API to report violations #5039.
      Parameters:
      reportable - Location of the violation (node or token) - only used to determine suppression
      astInfo - Info about the root of the tree (Node.getAstInfo())
      location - Report location of the violation
      message - Violation message
      formatArgs - Format arguments for the message
    • addViolationNoSuppress

      @Experimentalpublic void addViolationNoSuppress(Reportable reportable,AstInfo<?> astInfo,String message,Object... formatArgs)
      Experimental Status:
      Since 7.14.0. See[core] Add rule to report unnecessary suppression comments/annotations #5609