java.lang.Object
com.puppycrawl.tools.checkstyle.checks.indentation.AbstractExpressionHandler
com.puppycrawl.tools.checkstyle.checks.indentation.LambdaHandler

Handler for lambda expressions.
  • Field Details

    • isLambdaCorrectlyIndented

      private boolean isLambdaCorrectlyIndented
      Checks whether the lambda is correctly indented, this variable get its value from checking the lambda handler's indentation, and it is being used in aligning the lambda's children. A true value depicts lambda is correctly aligned without giving any errors. This is updated to false where there is any Indentation error log.
  • Constructor Details

    • LambdaHandler

      Construct an instance of this handler with the given indentation check, abstract syntax tree, and parent handler.
      Parameters:
      indentCheck - the indentation check
      ast - the abstract syntax tree
      parent - the parent handler
  • Method Details

    • getSuggestedChildIndent

      Description copied from class: AbstractExpressionHandler
      Indentation level suggested for a child element. Children don't have to respect this, but most do.
      Overrides:
      getSuggestedChildIndent in class AbstractExpressionHandler
      Parameters:
      child - child AST (so suggestion level can differ based on child type)
      Returns:
      suggested indentation for child
    • getIndentImpl

      Compute the indentation amount for this handler..
      Overrides:
      getIndentImpl in class AbstractExpressionHandler
      Returns:
      the expected indentation amount
    • checkIndentation

      public void checkIndentation()
      Description copied from class: AbstractExpressionHandler
      Check the indentation of the expression we are handling.
      Specified by:
      checkIndentation in class AbstractExpressionHandler
    • isNonAcceptableIndent

      private boolean isNonAcceptableIndent(int astColumnNo, IndentLevel level)
      Checks that given indent is acceptable or not.
      Parameters:
      astColumnNo - indent value to check
      level - indent level
      Returns:
      true if indent is not acceptable
    • checkLineWrappedLambda

      private void checkLineWrappedLambda(boolean isSwitchRuleLambda, int mainAstColumnNo)
      This method checks a line wrapped lambda, whether it is a lambda expression or switch rule lambda.
      Parameters:
      isSwitchRuleLambda - if mainAst is a switch rule lambda
      mainAstColumnNo - the column number of the lambda we are checking
    • checkSingleStatementSwitchRuleIndentation

      private void checkSingleStatementSwitchRuleIndentation(boolean isLambdaFirstInLine)
      Checks the indentation of statements inside a single-statement switch rule when the statement is not on the same line as the lambda operator (->). This applies to single-statement switch rules without curly braces {}. Example:
       case ONE ->
           1;
       
      Parameters:
      isLambdaFirstInLine - if -> is the first element on the line