Class MethodCallHandler
java.lang.Object
com.puppycrawl.tools.checkstyle.checks.indentation.AbstractExpressionHandler
com.puppycrawl.tools.checkstyle.checks.indentation.MethodCallHandler
Handler for method calls.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final IndentationContextThe indentation context used by this class. -
Constructor Summary
ConstructorsConstructorDescriptionMethodCallHandler(IndentationContext context, DetailAST ast, AbstractExpressionHandler parent) Construct an instance of this handler with the given indentation context, abstract syntax tree, and parent handler. -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleanareMethodsChained(DetailAST ast1, DetailAST ast2) Checks if ast2 is a chained method call that starts on the same level as ast1 ends.voidCheck the indentation of the expression we are handling.private voidChecks the indentation of arguments of a method call that appears as the expression of areturnstatement.private voidcheckRparenIndent(DetailAST lparen, DetailAST rparen) Checks the indentation of the right parenthesis for method calls.private static DetailASTgetCallLastNode(DetailAST firstNode) Returns method or constructor call right paren.private static DetailASTgetFirstAst(DetailAST ast) Get the first AST of the specified method call.protected IndentLevelCompute the indentation amount for this handler.private DetailASTReturns method or constructor name.Indentation level suggested for a child element.private booleanIf this is the first chained method call which was moved to the next line.private booleanReturns 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.private booleanReturns whether this method call is a simple (non-chained) call that is the expression of areturnstatement.protected booleanChecks that indentation should be increased after first line in checkLinesIndent().Methods inherited from class com.puppycrawl.tools.checkstyle.checks.indentation.AbstractExpressionHandler
checkChildren, checkExpressionSubtree, checkLeftParen, checkRightParen, checkWrappingIndentation, checkWrappingIndentation, expandedTabsColumnNo, findSubtreeAst, getBasicOffset, getBraceAdjustment, getContext, getFirstAstNode, getFirstLine, getFirstToken, getIndent, getLineStart, getLineStart, getMainAst, getParent, isOnStartOfLine, logChildError, logError, logError, shouldCheckIndentationForChild
-
Field Details
-
context
The indentation context used by this class.
-
-
Constructor Details
-
MethodCallHandler
public MethodCallHandler(IndentationContext context, DetailAST ast, AbstractExpressionHandler parent) Construct an instance of this handler with the given indentation context, abstract syntax tree, and parent handler.- Parameters:
context- the indentation checkast- the abstract syntax treeparent- the parent handler
-
-
Method Details
-
getIndentImpl
Description copied from class:AbstractExpressionHandlerCompute the indentation amount for this handler.- Overrides:
getIndentImplin classAbstractExpressionHandler- Returns:
- the expected indentation amount
-
areMethodsChained
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- Ast1ast2- Ast2- Returns:
- True if ast2 begins on the same level that ast1 ends
-
isChainedMethodCallWrapped
If this is the first chained method call which was moved to the next line.- Returns:
- true if chained class are wrapped
-
getFirstAst
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. Forfoo(arg)it is `foo`, forfoo.bar(arg)it is `bar` forsuper(arg)it is 'super'.- Returns:
- TokenTypes.IDENT node for a method call, TokenTypes.SUPER_CTOR_CALL otherwise.
-
getSuggestedChildIndent
Description copied from class:AbstractExpressionHandlerIndentation level suggested for a child element. Children don't have to respect this, but most do.- Overrides:
getSuggestedChildIndentin classAbstractExpressionHandler- 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
Description copied from class:AbstractExpressionHandlerCheck the indentation of the expression we are handling.- Specified by:
checkIndentationin classAbstractExpressionHandler
-
checkReturnStatementCallArguments
Checks the indentation of arguments of a method call that appears as the expression of areturnstatement. 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 (currentlynew) are skipped so that dedicated handler owns the diagnostic instead of shadowing it with a genericmethod callmessage. -
isSimpleReturnMethodCall
Returns whether this method call is a simple (non-chained) call that is the expression of areturnstatement.- Returns:
trueif this method call is directly returned.
-
checkRparenIndent
Checks the indentation of the right parenthesis for method calls.- Parameters:
lparen- left parenthesis associated with rparenrparen- parenthesis to check
-
shouldIncreaseIndent
Description copied from class:AbstractExpressionHandlerChecks that indentation should be increased after first line in checkLinesIndent().- Overrides:
shouldIncreaseIndentin classAbstractExpressionHandler- Returns:
- true if indentation should be increased after first line in checkLinesIndent() false otherwise
-
getCallLastNode
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.
-