Class SuppressWarningsHolder

All Implemented Interfaces:
Configurable, Contextualizable

Maintains a set of check suppressions from @SuppressWarnings annotations. It allows to prevent Checkstyle from reporting violations from parts of code that were annotated with @SuppressWarnings and using name of the check to be excluded. It is possible to suppress all the checkstyle warnings with the argument "all". You can also use a checkstyle: prefix to prevent compiler from processing these annotations. You can also define aliases for check names that need to be suppressed.
  • Property aliasList - Specify aliases for check names that can be used in code within SuppressWarnings in a format of comma separated attribute=value entries. The attribute is the fully qualified name of the Check and value is its alias. Type is java.lang.String[]. Default value is "".

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Since:
5.7
  • Field Details

  • Constructor Details

  • Method Details

    • getDefaultAlias

      public static String getDefaultAlias(String sourceName)
      Returns the default alias for the source name of a check, which is the source name in lower case with any dotted prefix or "Check"/"check" suffix removed.
      Parameters:
      sourceName - the source name of the check (generally the class name)
      Returns:
      the default alias for the given check
    • getAlias

      public static String getAlias(String sourceName)
      Returns the alias for the source name of a check. If an alias has been explicitly registered via setAliasList(String...), that alias is returned; otherwise, the default alias is used.
      Parameters:
      sourceName - the source name of the check (generally the class name)
      Returns:
      the current alias for the given check
    • registerAlias

      private static void registerAlias(String sourceName, String checkAlias)
      Registers an alias for the source name of a check.
      Parameters:
      sourceName - the source name of the check (generally the class name)
      checkAlias - the alias used in SuppressWarnings annotations
    • setAliasList

      public void setAliasList(String... aliasList)
      Setter to specify aliases for check names that can be used in code within SuppressWarnings in a format of comma separated attribute=value entries. The attribute is the fully qualified name of the Check and value is its alias.
      Parameters:
      aliasList - comma-separated alias assignments
      Throws:
      IllegalArgumentException - when alias item does not have '='
      Since:
      5.7
    • isSuppressed

      public static boolean isSuppressed(AuditEvent event)
      Checks for a suppression of a check with the given source name and location in the last file processed.
      Parameters:
      event - audit event.
      Returns:
      whether the check with the given name is suppressed at the given source location
    • isSuppressedAfterEventStart

      private static boolean isSuppressedAfterEventStart(int line, int column, SuppressWarningsHolder.Entry entry)
      Checks whether suppression entry position is after the audit event occurrence position in the source file.
      Parameters:
      line - the line number in the source file where the event occurred.
      column - the column number in the source file where the event occurred.
      entry - suppression entry.
      Returns:
      true if suppression entry position is after the audit event occurrence position in the source file.
    • isSuppressedBeforeEventEnd

      private static boolean isSuppressedBeforeEventEnd(int line, int column, SuppressWarningsHolder.Entry entry)
      Checks whether suppression entry position is before the audit event occurrence position in the source file.
      Parameters:
      line - the line number in the source file where the event occurred.
      column - the column number in the source file where the event occurred.
      entry - suppression entry.
      Returns:
      true if suppression entry position is before the audit event occurrence position in the source file.
    • getDefaultTokens

      public int[] getDefaultTokens()
      Description copied from class: AbstractCheck
      Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.
      Specified by:
      getDefaultTokens in class AbstractCheck
      Returns:
      the default tokens
      See Also:
    • getAcceptableTokens

      public int[] getAcceptableTokens()
      Description copied from class: AbstractCheck
      The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.
      Specified by:
      getAcceptableTokens in class AbstractCheck
      Returns:
      the token set this check is designed for.
      See Also:
    • getRequiredTokens

      public int[] getRequiredTokens()
      Description copied from class: AbstractCheck
      The tokens that this check must be registered for.
      Specified by:
      getRequiredTokens in class AbstractCheck
      Returns:
      the token set this must be registered for.
      See Also:
    • beginTree

      public void beginTree(DetailAST rootAST)
      Description copied from class: AbstractCheck
      Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.
      Overrides:
      beginTree in class AbstractCheck
      Parameters:
      rootAST - the root of the tree
    • visitToken

      public void visitToken(DetailAST ast)
      Description copied from class: AbstractCheck
      Called to process a token.
      Overrides:
      visitToken in class AbstractCheck
      Parameters:
      ast - the token to process
    • addSuppressions

      private static void addSuppressions(List<String> values, DetailAST targetAST)
      Method to populate list of suppression entries.
      Parameters:
      values - - list of check names
      targetAST - - annotation target
    • removeCheckstylePrefixIfExists

      private static String removeCheckstylePrefixIfExists(String checkName)
      Method removes checkstyle prefix (checkstyle:) from check name if exists.
      Parameters:
      checkName - - name of the check
      Returns:
      check name without prefix
    • getAllAnnotationValues

      Get all annotation values.
      Parameters:
      ast - annotation token
      Returns:
      list values
      Throws:
      IllegalArgumentException - if there is an unknown annotation value type.
    • getAnnotationTarget

      Get target of annotation.
      Parameters:
      ast - the AST node to get the child of
      Returns:
      get target of annotation
      Throws:
      IllegalArgumentException - if there is an unexpected container type.
    • getNthChild

      private static DetailAST getNthChild(DetailAST ast, int index)
      Returns the n'th child of an AST node.
      Parameters:
      ast - the AST node to get the child of
      index - the index of the child to get
      Returns:
      the n'th child of the given AST node, or null if none
    • getIdentifier

      private static String getIdentifier(DetailAST ast)
      Returns the Java identifier represented by an AST.
      Parameters:
      ast - an AST node for an IDENT or DOT
      Returns:
      the Java identifier represented by the given AST subtree
      Throws:
      IllegalArgumentException - if the AST is invalid
    • getStringExpr

      private static String getStringExpr(DetailAST ast)
      Returns the literal string expression represented by an AST.
      Parameters:
      ast - an AST node for an EXPR
      Returns:
      the Java string represented by the given AST expression or empty string if expression is too complex
      Throws:
      IllegalArgumentException - if the AST is invalid
    • getAnnotationValues

      private static List<String> getAnnotationValues(DetailAST ast)
      Returns the annotation values represented by an AST.
      Parameters:
      ast - an AST node for an EXPR or ANNOTATION_ARRAY_INIT
      Returns:
      the list of Java string represented by the given AST for an expression or annotation array initializer
      Throws:
      IllegalArgumentException - if the AST is invalid
    • findAllExpressionsInChildren

      Method looks at children and returns list of expressions in strings.
      Parameters:
      parent - ast, that contains children
      Returns:
      list of expressions in strings
    • getContentWithoutPrecedingWhitespace

      private static String getContentWithoutPrecedingWhitespace(String textBlockContent)
      Remove preceding newline and whitespace from the content of a text block.
      Parameters:
      textBlockContent - the actual text in a text block.
      Returns:
      content of text block with preceding whitespace and newline removed.
    • destroy

      public void destroy()
      Description copied from class: AbstractCheck
      Destroy the check. It is being retired from service.
      Overrides:
      destroy in class AbstractCheck