Class MethodCallHandler

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

Handler for method calls.
  • Field Details

  • Constructor Details

  • Method Details

    • getIndentImpl

      Description copied from class: AbstractExpressionHandler
      Compute the indentation amount for this handler.
      Overrides:
      getIndentImpl in class AbstractExpressionHandler
      Returns:
      the expected indentation amount
    • areMethodsChained

      private static boolean areMethodsChained(DetailAST ast1, DetailAST ast2)
      Checks if ast2 is a chained method call that starts on the same level as ast1 ends. In other words, if the right paren of ast1 is on the same level as the lparen of ast2: value.methodOne( argument1 ).methodTwo( argument2 );
      Parameters:
      ast1 - Ast1
      ast2 - Ast2
      Returns:
      True if ast2 begins on the same level that ast1 ends
    • isChainedMethodCallWrapped

      private boolean isChainedMethodCallWrapped()
      If this is the first chained method call which was moved to the next line.
      Returns:
      true if chained class are wrapped
    • getFirstAst

      private static DetailAST getFirstAst(DetailAST ast)
      Get the first AST of the specified method call.
      Parameters:
      ast - the method call
      Returns:
      the first AST of the specified method call
    • getMethodIdentAst

      Returns method or constructor name. For foo(arg) it is `foo`, for foo.bar(arg) it is `bar` for super(arg) it is 'super'.
      Returns:
      TokenTypes.IDENT node for a method call, TokenTypes.SUPER_CTOR_CALL otherwise.
    • 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
    • isInvocationTarget

      Returns true if the given child handler represents the invocation target of this method call (the expression before the dot), rather than one of the call's arguments.
      Parameters:
      child - the child handler to classify
      Returns:
      true if the child is the invocation target, not an argument
    • checkIndentation

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

      Checks the indentation of arguments of a method call that appears as the expression of a return statement. This complements the SLIST-parent flow above and covers cases where args are on continuation lines but were previously not validated because the enclosing statement is not a direct SLIST child. Arguments whose leftmost token is a self-checking construct (currently new) are skipped so that dedicated handler owns the diagnostic instead of shadowing it with a generic method call message.
    • isSimpleReturnMethodCall

      private boolean isSimpleReturnMethodCall()
      Returns whether this method call is a simple (non-chained) call that is the expression of a return statement.
      Returns:
      true if this method call is directly returned.
    • checkRparenIndent

      private void checkRparenIndent(DetailAST lparen, DetailAST rparen)
      Checks the indentation of the right parenthesis for method calls.
      Parameters:
      lparen - left parenthesis associated with rparen
      rparen - parenthesis to check
    • shouldIncreaseIndent

      protected boolean shouldIncreaseIndent()
      Description copied from class: AbstractExpressionHandler
      Checks that indentation should be increased after first line in checkLinesIndent().
      Overrides:
      shouldIncreaseIndent in class AbstractExpressionHandler
      Returns:
      true if indentation should be increased after first line in checkLinesIndent() false otherwise
    • getCallLastNode

      private static DetailAST getCallLastNode(DetailAST firstNode)
      Returns method or constructor call right paren.
      Parameters:
      firstNode - call ast(TokenTypes.METHOD_CALL|TokenTypes.CTOR_CALL|TokenTypes.SUPER_CTOR_CALL)
      Returns:
      ast node containing right paren for specified method or constructor call. If method calls are chained returns right paren for last call.