private static boolean allBranchesPresent(IfStatementTree tree) { IfStatementTree lastIfStatement = tree; while (lastIfStatement.elseClause() != null) { StatementTree elseStatement = lastIfStatement.elseClause().statement(); if (elseStatement.is(Kind.IF_STATEMENT)) { lastIfStatement = (IfStatementTree) elseStatement; } else { break; } } return lastIfStatement.elseClause() != null; }
private void visitIf(IfStatementTree tree) { scan(tree.condition()); scan(tree.statement()); ElseClauseTree elseClauseTree = tree.elseClause(); if (tree.elseClause() != null && elseClauseTree.statement().is(Kind.IF_STATEMENT)) { visitIf((IfStatementTreeImpl) tree.elseClause().statement()); } else { scan(tree.elseClause()); } }
@Override public void visitElseClause(ElseClauseTree tree) { if (tree.statement().is(Kind.IF_STATEMENT)) { checkIndentation(tree.elseKeyword(), ((IfStatementTree) tree.statement()).statement()); } else { checkIndentation(tree.elseKeyword(), tree.statement()); } super.visitElseClause(tree); }
@Override public void visitSwitchStatement(SwitchStatementTree tree) { DefaultClauseTree defaultClause = getDefaultClause(tree); if (defaultClause == null) { addIssue(tree.switchKeyword(), ADD_DEFAULT_MESSAGE); } else if (!Iterables.getLast(tree.cases()).is(Kind.DEFAULT_CLAUSE)) { addIssue(defaultClause.keyword(), MOVE_DEFAULT_MESSAGE); } super.visitSwitchStatement(tree); }
private static boolean isIfStatementWithoutElse(StatementTree statement) { return statement.is(Kind.IF_STATEMENT) && ((IfStatementTree)statement).elseClause() == null; }
/** * Returns null is case is default, the case expression otherwise. */ @Nullable private static ExpressionTree getCondition(SwitchClauseTree clause) { return clause.is(Kind.CASE_CLAUSE) ? ((CaseClauseTree) clause).expression() : null; }
private static StatementTree firstNonEmptyStatement(List<StatementTree> statements) { for (StatementTree statement : statements) { if (statement.is(Kind.BLOCK)) { StatementTree nestedFirstStatement = firstNonEmptyStatement(((BlockTree) statement).statements()); if (nestedFirstStatement != null) { return nestedFirstStatement; } } else if (!statement.is(Kind.EMPTY_STATEMENT)) { return statement; } } return null; }
private static boolean isRemovableReturn(StatementTree tree) { if (tree.is(Kind.RETURN_STATEMENT)) { ExpressionTree expression = ((ReturnStatementTree) tree).expression(); if (expression != null && !expression.is(Kind.OBJECT_LITERAL)) { int firstLine = expression.firstToken().line(); int lastLine = expression.lastToken().line(); return firstLine == lastLine; } } return false; }
static List<StatementTree> normalize(SwitchClauseTree switchClause) { List<StatementTree> list = switchClause.statements(); if (!list.isEmpty() && list.get(list.size() - 1).is(Kind.BREAK_STATEMENT)) { return list.subList(0, list.size() - 1); } else { return list; } }
private void checkLoop(Tree parent, SyntaxToken openCurly) { if (parent.is(Kind.DO_WHILE_STATEMENT)) { issueIfLineMismatch(openCurly, ((DoWhileStatementTree) parent).doKeyword()); } if (parent.is(Kind.WHILE_STATEMENT)) { issueIfLineMismatch(openCurly, ((WhileStatementTree) parent).closeParenthesisToken()); } if (parent.is(Kind.FOR_STATEMENT)) { issueIfLineMismatch(openCurly, ((ForStatementTree) parent).closeParenthesisToken()); } if (parent.is(Kind.FOR_IN_STATEMENT, Kind.FOR_OF_STATEMENT)) { issueIfLineMismatch(openCurly, ((ForObjectStatementTree) parent).closeParenthesisToken()); } }
private static boolean isJumpStatement(StatementTree statement) { return statement.is( Kind.BREAK_STATEMENT, Kind.RETURN_STATEMENT, Kind.CONTINUE_STATEMENT, Kind.THROW_STATEMENT); }
public ElseClauseTree getNextElse(ElseClauseTree elseClause) { return elseClause.statement().is(Kind.IF_STATEMENT) ? ((IfStatementTree) elseClause.statement()).elseClause() : null; } }
@Nullable private static IfStatementTree getIfStatementWithoutElse(StatementTree statement) { if (statement.is(Kind.IF_STATEMENT) && ((IfStatementTree) statement).elseClause() == null) { return (IfStatementTree) statement; } else { return null; } }