Class CheckUtil

java.lang.Object
com.puppycrawl.tools.checkstyle.utils.CheckUtil

public final class CheckUtil extends Object
Contains utility methods for the checks.
  • Field Details

    • BASE_2

      private static final int BASE_2
      Binary radix.
      See Also:
    • BASE_8

      private static final int BASE_8
      Octal radix.
      See Also:
    • BASE_10

      private static final int BASE_10
      Decimal radix.
      See Also:
    • BASE_16

      private static final int BASE_16
      Hex radix.
      See Also:
    • SETTER_GETTER_MAX_CHILDREN

      private static final int SETTER_GETTER_MAX_CHILDREN
      Maximum children allowed in setter/getter.
      See Also:
    • SETTER_BODY_SIZE

      private static final int SETTER_BODY_SIZE
      Maximum nodes allowed in a body of setter.
      See Also:
    • GETTER_BODY_SIZE

      private static final int GETTER_BODY_SIZE
      Maximum nodes allowed in a body of getter.
      See Also:
    • UNDERSCORE_PATTERN

      private static final Pattern UNDERSCORE_PATTERN
      Pattern matching underscore characters ('_').
    • SETTER_PATTERN

      private static final Pattern SETTER_PATTERN
      Pattern matching names of setter methods.
    • GETTER_PATTERN

      private static final Pattern GETTER_PATTERN
      Pattern matching names of getter methods.
    • ALL_NEW_LINES

      private static final Pattern ALL_NEW_LINES
      Compiled pattern for all system newlines.
  • Constructor Details

    • CheckUtil

      private CheckUtil()
      Prevent instances.
  • Method Details

    • isEqualsMethod

      public static boolean isEqualsMethod(DetailAST ast)
      Tests whether a method definition AST defines an equals covariant.
      Parameters:
      ast - the method definition AST to test. Precondition: ast is a TokenTypes.METHOD_DEF node.
      Returns:
      true if ast defines an equals covariant.
    • isElseIf

      public static boolean isElseIf(DetailAST ast)
      Returns whether a token represents an ELSE as part of an ELSE / IF set.
      Parameters:
      ast - the token to check
      Returns:
      whether it is
    • isElse

      private static boolean isElse(DetailAST ast)
      Returns whether a token represents an ELSE.
      Parameters:
      ast - the token to check
      Returns:
      whether the token represents an ELSE
    • isElseWithCurlyBraces

      private static boolean isElseWithCurlyBraces(DetailAST ast)
      Returns whether a token represents an SLIST as part of an ELSE statement.
      Parameters:
      ast - the token to check
      Returns:
      whether the toke does represent an SLIST as part of an ELSE
    • parseDouble

      public static double parseDouble(String text, int type)
      Returns the value represented by the specified string of the specified type. Returns 0 for types other than float, double, int, and long.
      Parameters:
      text - the string to be parsed.
      type - the token type of the text. Should be a constant of TokenTypes.
      Returns:
      the double value represented by the string argument.
    • parseNumber

      private static double parseNumber(String text, int radix, int type)
      Parses the string argument as an integer or a long in the radix specified by the second argument. The characters in the string must all be digits of the specified radix.
      Parameters:
      text - the String containing the integer representation to be parsed. Precondition: text contains a parsable int.
      radix - the radix to be used while parsing text.
      type - the token type of the text. Should be a constant of TokenTypes.
      Returns:
      the number represented by the string argument in the specified radix.
    • getFirstNode

      public static DetailAST getFirstNode(DetailAST node)
      Finds sub-node for given node minimal (line, column) pair.
      Parameters:
      node - the root of tree for search.
      Returns:
      sub-node with minimal (line, column) pair.
    • isBeforeInSource

      public static boolean isBeforeInSource(DetailAST ast1, DetailAST ast2)
      Retrieves whether ast1 is located before ast2.
      Parameters:
      ast1 - the first node.
      ast2 - the second node.
      Returns:
      true, if ast1 is located before ast2.
    • getTypeParameterNames

      public static List<String> getTypeParameterNames(DetailAST node)
      Retrieves the names of the type parameters to the node.
      Parameters:
      node - the parameterized AST node
      Returns:
      a list of type parameter names
    • getTypeParameters

      public static List<DetailAST> getTypeParameters(DetailAST node)
      Retrieves the type parameters to the node.
      Parameters:
      node - the parameterized AST node
      Returns:
      a list of type parameter names
    • isSetterMethod

      public static boolean isSetterMethod(DetailAST ast)
      Returns whether an AST represents a setter method.
      Parameters:
      ast - the AST to check with
      Returns:
      whether the AST represents a setter method
    • isGetterMethod

      public static boolean isGetterMethod(DetailAST ast)
      Returns whether an AST represents a getter method.
      Parameters:
      ast - the AST to check with
      Returns:
      whether the AST represents a getter method
    • isNonVoidMethod

      public static boolean isNonVoidMethod(DetailAST methodDefAst)
      Checks whether a method is a not void one.
      Parameters:
      methodDefAst - the method node.
      Returns:
      true if method is a not void one.
    • isReceiverParameter

      public static boolean isReceiverParameter(DetailAST parameterDefAst)
      Checks whether a parameter is a receiver.
      Parameters:
      parameterDefAst - the parameter node.
      Returns:
      true if the parameter is a receiver.
    • getAccessModifierFromModifiersToken

      public static AccessModifierOption getAccessModifierFromModifiersToken(DetailAST ast)
      Returns the access modifier of the method/constructor at the specified AST. If the method is in an interface or annotation block, the access modifier is assumed to be public.
      Parameters:
      ast - the token of the method/constructor.
      Returns:
      the access modifier of the method/constructor.
    • getAccessModifierFromModifiersTokenDirectly

      private static AccessModifierOption getAccessModifierFromModifiersTokenDirectly(DetailAST modifiersToken)
      Returns AccessModifierOption based on the information about access modifier taken from the given token of type TokenTypes.MODIFIERS.
      Parameters:
      modifiersToken - token of type TokenTypes.MODIFIERS.
      Returns:
      AccessModifierOption.
      Throws:
      IllegalArgumentException - when expected non-null modifiersToken with type 'MODIFIERS'
    • getSurroundingAccessModifier

      public static AccessModifierOption getSurroundingAccessModifier(DetailAST node)
      Returns the access modifier of the surrounding "block".
      Parameters:
      node - the node to return the access modifier for
      Returns:
      the access modifier of the surrounding block
    • parseClassNames

      public static Set<String> parseClassNames(String... classNames)
      Create set of class names and short class names.
      Parameters:
      classNames - array of class names.
      Returns:
      set of class names and short class names.
    • stripIndentAndInitialNewLineFromTextBlock

      public static String stripIndentAndInitialNewLineFromTextBlock(String textBlockContent)
      Strip initial newline and preceding whitespace on each line from text block content. In order to be consistent with how javac handles this task, we have modeled this implementation after the code from: github.com/openjdk/jdk14u/blob/master/src/java.base/share/classes/java/lang/String.java
      Parameters:
      textBlockContent - the actual content of the text block.
      Returns:
      string consistent with javac representation.
    • stripIndentAndTrailingWhitespaceFromLine

      private static String stripIndentAndTrailingWhitespaceFromLine(String line, int indent)
      Helper method for stripIndentAndInitialNewLineFromTextBlock, strips correct indent from string, and trailing whitespace, or returns empty string if no text.
      Parameters:
      line - the string to strip indent and trailing whitespace from
      indent - the amount of indent to remove
      Returns:
      modified string with removed indent and trailing whitespace, or empty string.
    • getSmallestIndent

      private static int getSmallestIndent(List<String> lines)
      Helper method for stripIndentAndInitialNewLineFromTextBlock, to determine the smallest indent in a text block string literal.
      Parameters:
      lines - list of actual text block content, split by line.
      Returns:
      number of spaces representing the smallest indent in this text block.
    • lastIndexOfNonWhitespace

      private static int lastIndexOfNonWhitespace(String line)
      Helper method to find the index of the last non-whitespace character in a string.
      Parameters:
      line - the string to find the last index of a non-whitespace character for.
      Returns:
      the index of the last non-whitespace character.