private static boolean hasSingleStatement(CatchBlockTree catchBlock) { return catchBlock.block().statements().size() == 1; }
private static boolean isElseIf(ElseClauseTree elseClause) { return !elseClause.statements().isEmpty() && elseClause.statements().get(0).is(Kind.IF_STATEMENT); }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { if (tree.statement().is(Tree.Kind.BLOCK)) { checkControlStructureOpenCurly(tree.doToken(), ((BlockTree) tree.statement()).openCurlyBraceToken()); } super.visitDoWhileStatement(tree); }
private void scanIf(IfStatementTree ifTree) { scan(ifTree.statements()); scan(ifTree.elseifClauses()); ElseClauseTree elseClause = ifTree.elseClause(); if (elseClause != null) { List<StatementTree> elseStatements = elseClause.statements(); if (elseStatements.size() == 1 && elseStatements.get(0).is(Kind.IF_STATEMENT)) { scanIf((IfStatementTree) elseStatements.get(0)); } else { scan(elseClause); } } }
private static boolean isRetrowingException(CatchBlockTree catchBlock) { StatementTree statement = catchBlock.block().statements().get(0); if (!statement.is(Tree.Kind.THROW_STATEMENT)) { return false; } ExpressionTree thrownExpression = CheckUtils.skipParenthesis(((ThrowStatementTree) statement).expression()); return SyntacticEquivalence.areSyntacticallyEquivalent(catchBlock.variable(), thrownExpression); } }
private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
@Override public void visitCatchBlock(CatchBlockTree tree) { checkControlStructureOpenCurly(tree.closeParenthesisToken(), tree.block().openCurlyBraceToken()); super.visitCatchBlock(tree); }
private static boolean returnsBoolean(@Nullable StatementTree statement) { if (statement != null && statement.is(Kind.RETURN_STATEMENT)) { ReturnStatementTree returnStatement = (ReturnStatementTree)statement; if (returnStatement.expression() != null && returnStatement.expression().is(Kind.BOOLEAN_LITERAL)) { return true; } } return false; }
private static boolean hasJumpStatement(SwitchCaseClauseTree caseClause) { List<StatementTree> statements = caseClause.statements(); if (statements.get(statements.size() - 1).is(Kind.BREAK_STATEMENT)) { return true; } return JumpStatementFinder.hasJumpStatement(caseClause); }
private void setPreviousToken(Tree tree) { StatementTree statementTree = getConditionalStatement(tree); if (statementTree.is(Tree.Kind.BLOCK)) { BlockTree blockTree = (BlockTree) statementTree; if (isMultilineBlock(blockTree)) { previousClosingBracketToken = blockTree.closeCurlyBraceToken(); return; } } previousClosingBracketToken = null; }
@Nullable private static SyntaxToken getOpenCurlyIfBlock(List<StatementTree> statements) { if (!statements.isEmpty()) { StatementTree firstStmt = statements.get(0); return firstStmt.is(Tree.Kind.BLOCK) ? ((BlockTree) firstStmt).openCurlyBraceToken() : null; } return null; }
private void scanIf(IfStatementTree ifTree) { scan(ifTree.statements()); scan(ifTree.elseifClauses()); ElseClauseTree elseClause = ifTree.elseClause(); if (elseClause != null) { List<StatementTree> elseStatements = elseClause.statements(); if (elseStatements.size() == 1 && elseStatements.get(0).is(Kind.IF_STATEMENT)) { scanIf((IfStatementTree) elseStatements.get(0)); } else { scan(elseClause); } } }
private static boolean isRetrowingException(CatchBlockTree catchBlock) { StatementTree statement = catchBlock.block().statements().get(0); if (!statement.is(Tree.Kind.THROW_STATEMENT)) { return false; } ExpressionTree thrownExpression = CheckUtils.skipParenthesis(((ThrowStatementTree) statement).expression()); return SyntacticEquivalence.areSyntacticallyEquivalent(catchBlock.variable(), thrownExpression); } }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { if (tree.statement().is(Tree.Kind.BLOCK)) { checkControlStructureOpenCurly(tree.doToken(), ((BlockTree) tree.statement()).openCurlyBraceToken()); } super.visitDoWhileStatement(tree); }
private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
private static boolean isElseIf(ElseClauseTree elseClause) { return !elseClause.statements().isEmpty() && elseClause.statements().get(0).is(Kind.IF_STATEMENT); }
private static boolean hasSingleStatement(CatchBlockTree catchBlock) { return catchBlock.block().statements().size() == 1; }
@Override public void visitCatchBlock(CatchBlockTree tree) { checkControlStructureOpenCurly(tree.closeParenthesisToken(), tree.block().openCurlyBraceToken()); super.visitCatchBlock(tree); }
private void setPreviousToken(Tree tree) { StatementTree statementTree = getConditionalStatement(tree); if (statementTree.is(Tree.Kind.BLOCK)) { BlockTree blockTree = (BlockTree) statementTree; if (isMultilineBlock(blockTree)) { previousClosingBracketToken = blockTree.closeCurlyBraceToken(); return; } } previousClosingBracketToken = null; }