public class IfHandler extends BlockParentHandler
Handler for if statements.
  • Constructor Details

    • IfHandler

      public IfHandler(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 check
      ast - the abstract syntax tree
      parent - the parent handler
  • Method Details

    • getSuggestedChildIndent

      public IndentLevel getSuggestedChildIndent(AbstractExpressionHandler child)
      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 BlockParentHandler
      Parameters:
      child - child AST (so suggestion level can differ based on child type)
      Returns:
      suggested indentation for child
    • getIndentImpl

      protected IndentLevel getIndentImpl()
      Description copied from class: AbstractExpressionHandler
      Compute the indentation amount for this handler.
      Overrides:
      getIndentImpl in class AbstractExpressionHandler
      Returns:
      the expected indentation amount
    • isIfAfterElse

      private boolean isIfAfterElse()
      Determines if this 'if' statement is part of an 'else' clause and on the same line.
      Returns:
      true if this 'if' is part of an 'else', false otherwise
    • checkTopLevelToken

      protected void checkTopLevelToken()
      Description copied from class: BlockParentHandler
      Check the indent of the top level token.
      Overrides:
      checkTopLevelToken in class BlockParentHandler
    • checkCondExpr

      private void checkCondExpr()
      Check the indentation of the conditional expression.
    • checkIndentation

      public void checkIndentation()
      Description copied from class: AbstractExpressionHandler
      Check the indentation of the expression we are handling.
      Overrides:
      checkIndentation in class BlockParentHandler
    • getIfStatementRightParen

      private static DetailAST getIfStatementRightParen(DetailAST literalIfAst)
      Returns right parenthesis of if statement.
      Parameters:
      literalIfAst - literal-if ast node(TokenTypes.LITERAL_IF)
      Returns:
      right parenthesis of if statement.