com.puppycrawl.tools.checkstyle.checks.indentation

Class BlockParentHandler

Known Direct Subclasses:
ArrayInitHandler, AssignHandler, CatchHandler, ClassDefHandler, DoWhileHandler, ElseHandler, FinallyHandler, ForHandler, IfHandler, MethodDefHandler, ObjectBlockHandler, SlistHandler, StaticInitHandler, SwitchHandler, TryHandler, WhileHandler

public class BlockParentHandler
extends ExpressionHandler

Handler for parents of blocks ('if', 'else', 'while', etc).

The "block" handler classes use a common superclass BlockParentHandler, employing the Template Method pattern.

Author:
jrichard

Constructor Summary

BlockParentHandler(IndentationCheck aIndentCheck, String aName, DetailAST aAst, ExpressionHandler aParent)
Construct an instance of this handler with the given indentation check, name, abstract syntax tree, and parent handler.

Method Summary

void
checkIndentation()
Check the indentation of the expression we are handling.
protected void
checkLCurly()
Check the indentation of the left curly brace.
protected void
checkRCurly()
Check the indentation of the right curly brace.
protected void
checkToplevelToken()
Check the indent of the top level token.
protected boolean
childrenMayNest()
Determines if child elements within the expression may be nested.
protected int[]
getCheckedChildren()
Returns array of token types which should be checked among childrens.
protected IndentLevel
getChildrenExpectedLevel()
protected DetailAST
getLCurly()
Get the left curly brace portion of the expression we are handling.
protected DetailAST
getLParen()
Get the left parenthesis portion of the expression we are handling.
protected DetailAST
getListChild()
Get the child element representing the list of statements.
protected DetailAST
getNonlistChild()
Get the child element that is not a list of statements.
protected DetailAST
getRCurly()
Get the right curly brace portion of the expression we are handling.
protected DetailAST
getRParen()
Get the right parenthesis portion of the expression we are handling.
protected DetailAST
getToplevelAST()
Get the top level expression being managed by this handler.
protected boolean
hasCurlys()
Determines if this block expression has curly braces.
protected boolean
rcurlyMustStart()
Determines if the right curly brace must be at the start of the line.
IndentLevel
suggestedChildLevel(ExpressionHandler aChild)
protected boolean
toplevelMustStartLine()
Determines if the top level token must start the line.

Methods inherited from class com.puppycrawl.tools.checkstyle.checks.indentation.ExpressionHandler

checkChildren, checkExpressionSubtree, checkIndentation, checkLParen, checkLinesIndent, checkModifiers, checkRParen, expandedTabsColumnNo, findSubtreeLines, getBasicOffset, getBraceAdjustement, getFirstLine, getIndentCheck, getLevel, getLevelImpl, getLineStart, getLineStart, getMainAst, getParent, logError, logError, shouldIncreaseIndent, startsLine, suggestedChildLevel

Constructor Details

BlockParentHandler

public BlockParentHandler(IndentationCheck aIndentCheck,
                          String aName,
                          DetailAST aAst,
                          ExpressionHandler aParent)
Construct an instance of this handler with the given indentation check, name, abstract syntax tree, and parent handler.
Parameters:
aIndentCheck - the indentation check
aName - the name of the handler
aAst - the abstract syntax tree
aParent - the parent handler

Method Details

checkIndentation

public void checkIndentation()
Check the indentation of the expression we are handling.
Overrides:
checkIndentation in interface ExpressionHandler

checkLCurly

protected void checkLCurly()
Check the indentation of the left curly brace.

checkRCurly

protected void checkRCurly()
Check the indentation of the right curly brace.

checkToplevelToken

protected void checkToplevelToken()
Check the indent of the top level token.

childrenMayNest

protected boolean childrenMayNest()
Determines if child elements within the expression may be nested.
Returns:
false

getCheckedChildren

protected int[] getCheckedChildren()
Returns array of token types which should be checked among childrens.
Returns:
array of token types to check.

getChildrenExpectedLevel

protected IndentLevel getChildrenExpectedLevel()
Returns:
indentation level expected for children

getLCurly

protected DetailAST getLCurly()
Get the left curly brace portion of the expression we are handling.
Returns:
the left curly brace expression

getLParen

protected DetailAST getLParen()
Get the left parenthesis portion of the expression we are handling.
Returns:
the left parenthis expression

getListChild

protected DetailAST getListChild()
Get the child element representing the list of statements.
Returns:
the statement list child

getNonlistChild

protected DetailAST getNonlistChild()
Get the child element that is not a list of statements.
Returns:
the non-list child element

getRCurly

protected DetailAST getRCurly()
Get the right curly brace portion of the expression we are handling.
Returns:
the right curly brace expression

getRParen

protected DetailAST getRParen()
Get the right parenthesis portion of the expression we are handling.
Returns:
the right parenthis expression

getToplevelAST

protected DetailAST getToplevelAST()
Get the top level expression being managed by this handler.
Returns:
the top level expression

hasCurlys

protected boolean hasCurlys()
Determines if this block expression has curly braces.
Returns:
true if curly braces are present, false otherwise

rcurlyMustStart

protected boolean rcurlyMustStart()
Determines if the right curly brace must be at the start of the line.
Returns:
true

suggestedChildLevel

public IndentLevel suggestedChildLevel(ExpressionHandler aChild)
Overrides:
suggestedChildLevel in interface ExpressionHandler

toplevelMustStartLine

protected boolean toplevelMustStartLine()
Determines if the top level token must start the line.
Returns:
true