Class BooleanExpressionComplexityCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public final class BooleanExpressionComplexityCheck
    extends AbstractCheck
    Restricts nested boolean operators (&&, ||, &, | and ^) to a specified depth (default = 3). Note: &, | and ^ are not checked if they are part of constructor or method call because they can be applied to non boolean variables and Checkstyle does not know types of methods from different classes.
    • Constructor Detail

      • BooleanExpressionComplexityCheck

        public BooleanExpressionComplexityCheck()
        Creates new instance of the check.
    • Method Detail

      • 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:
        TokenTypes
      • 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:
        TokenTypes
      • 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:
        TokenTypes
      • getMax

        public int getMax()
        Getter for maximum allowed complexity.
        Returns:
        value of maximum allowed complexity.
      • setMax

        public void setMax​(int max)
        Setter for maximum allowed complexity.
        Parameters:
        max - new maximum allowed complexity.
      • isPassedInParameter

        private static boolean isPassedInParameter​(DetailAST logicalOperator)
        Checks if logical operator is part of constructor or method call.
        Parameters:
        logicalOperator - logical operator
        Returns:
        true if logical operator is part of constructor or method call
      • isPipeOperator

        private static boolean isPipeOperator​(DetailAST binaryOr)
        Checks if binary OR is applied to exceptions in multi-catch (pipe-syntax).
        Parameters:
        binaryOr - binary or
        Returns:
        true if binary or is applied to exceptions in multi-catch.
      • leaveToken

        public void leaveToken​(DetailAST ast)
        Description copied from class: AbstractCheck
        Called after all the child nodes have been process.
        Overrides:
        leaveToken in class AbstractCheck
        Parameters:
        ast - the token leaving
      • visitMethodDef

        private void visitMethodDef​(DetailAST ast)
        Creates new context for a given method.
        Parameters:
        ast - a method we start to check.
      • leaveMethodDef

        private void leaveMethodDef()
        Removes old context.
      • visitExpr

        private void visitExpr()
        Creates and pushes new context.
      • leaveExpr

        private void leaveExpr​(DetailAST ast)
        Restores previous context.
        Parameters:
        ast - expression we leave.