Class MethodCallHandler
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.checks.indentation.AbstractExpressionHandler
-
- com.puppycrawl.tools.checkstyle.checks.indentation.MethodCallHandler
-
public class MethodCallHandler extends AbstractExpressionHandler
Handler for method calls.
-
-
Field Summary
Fields Modifier and Type Field Description private IndentationCheckindentCheckThe instance ofIndentationCheckused by this class.
-
Constructor Summary
Constructors Constructor Description MethodCallHandler(IndentationCheck indentCheck, DetailAST ast, AbstractExpressionHandler parent)Construct an instance of this handler with the given indentation check, abstract syntax tree, and parent handler.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static booleanareMethodsChained(DetailAST ast1, DetailAST ast2)Checks if ast2 is a chained method call that starts on the same level as ast1 ends.voidcheckIndentation()Check the indentation of the expression we are handling.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 IndentLevelgetIndentImpl()Compute the indentation amount for this handler.private DetailASTgetMethodIdentAst()Returns method or constructor name.IndentLevelgetSuggestedChildIndent(AbstractExpressionHandler child)Indentation level suggested for a child element.private booleanisChainedMethodCallWrapped()If this is the first chained method call which was moved to the next line.protected booleanshouldIncreaseIndent()Checks that indentation should be increased after first line in checkLinesIndent().-
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.indentation.AbstractExpressionHandler
checkChildren, checkExpressionSubtree, checkLeftParen, checkModifiers, checkRightParen, checkWrappingIndentation, checkWrappingIndentation, expandedTabsColumnNo, findSubtreeAst, getBasicOffset, getBraceAdjustment, getFirstAstNode, getFirstLine, getFirstToken, getIndent, getIndentCheck, getLineStart, getLineStart, getMainAst, getParent, isOnStartOfLine, logError, logError
-
-
-
-
Field Detail
-
indentCheck
private final IndentationCheck indentCheck
The instance ofIndentationCheckused by this class.
-
-
Constructor Detail
-
MethodCallHandler
public MethodCallHandler(IndentationCheck indentCheck, DetailAST ast, AbstractExpressionHandler parent)
Construct an instance of this handler with the given indentation check, abstract syntax tree, and parent handler.- Parameters:
indentCheck- the indentation checkast- the abstract syntax treeparent- the parent handler
-
-
Method Detail
-
getIndentImpl
protected IndentLevel getIndentImpl()
Description copied from class:AbstractExpressionHandlerCompute the indentation amount for this handler.- Overrides:
getIndentImplin classAbstractExpressionHandler- 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- Ast1ast2- 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
private DetailAST 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
public IndentLevel getSuggestedChildIndent(AbstractExpressionHandler child)
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
-
checkIndentation
public void checkIndentation()
Description copied from class:AbstractExpressionHandlerCheck the indentation of the expression we are handling.- Specified by:
checkIndentationin classAbstractExpressionHandler
-
shouldIncreaseIndent
protected boolean 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
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.
-
-