@Override public void visitForStatement(ForStatementTree tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForStatement(tree); nesting--; }
@Override public void visitWhileStatement(WhileStatementTree tree) { increaseComplexityByNesting(tree.whileKeyword()); nesting++; super.visitWhileStatement(tree); nesting--; }
@Override public void visitSwitchStatement(SwitchStatementTree tree) { increaseComplexityByNesting(tree.switchKeyword()); nesting++; super.visitSwitchStatement(tree); nesting--; }
@Override public void visitForStatement(ForStatementTree tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForStatement(tree); nesting--; }
@Override public void visitForEachStatement(ForEachStatement tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForEachStatement(tree); nesting--; }
@Override public void visitConditionalExpression(ConditionalExpressionTree tree) { increaseComplexityByNesting(tree.questionToken()); nesting++; super.visitConditionalExpression(tree); nesting--; }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { increaseComplexityByNesting(tree.doKeyword()); nesting++; super.visitDoWhileStatement(tree); nesting--; }
@Override public void visitWhileStatement(WhileStatementTree tree) { increaseComplexityByNesting(tree.whileKeyword()); nesting++; super.visitWhileStatement(tree); nesting--; }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { increaseComplexityByNesting(tree.doKeyword()); nesting++; super.visitDoWhileStatement(tree); nesting--; }
@Override public void visitForEachStatement(ForEachStatement tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForEachStatement(tree); nesting--; }
@Override public void visitConditionalExpression(ConditionalExpressionTree tree) { increaseComplexityByNesting(tree.questionToken()); nesting++; super.visitConditionalExpression(tree); nesting--; }
@Override public void visitSwitchStatement(SwitchStatementTree tree) { increaseComplexityByNesting(tree.switchKeyword()); nesting++; super.visitSwitchStatement(tree); nesting--; }
@Override public void visitTryStatement(TryStatementTree tree) { scan(tree.resourceList()); scan(tree.block()); tree.catches().forEach(c -> increaseComplexityByNesting(c.catchKeyword())); nesting++; scan(tree.catches()); nesting--; scan(tree.finallyBlock()); }
@Override public void visitTryStatement(TryStatementTree tree) { scan(tree.resourceList()); scan(tree.block()); tree.catches().forEach(c -> increaseComplexityByNesting(c.catchKeyword())); nesting++; scan(tree.catches()); nesting--; scan(tree.finallyBlock()); }
@Override public void visitIfStatement(IfStatementTree tree) { increaseComplexityByNesting(tree.ifKeyword()); scan(tree.condition()); nesting++; scan(tree.thenStatement()); nesting--; boolean elseStatementNotIF = tree.elseStatement() != null && !tree.elseStatement().is(IF_STATEMENT); if (elseStatementNotIF) { increaseComplexityByOne(tree.elseKeyword()); nesting++; } else if (tree.elseStatement() != null) { // else statement is an if, visiting it will increase complexity by nesting so by one only. ignoreNesting = true; complexity -= nesting - 1; } scan(tree.elseStatement()); if (elseStatementNotIF) { nesting--; } }
@Override public void visitIfStatement(IfStatementTree tree) { increaseComplexityByNesting(tree.ifKeyword()); scan(tree.condition()); nesting++; scan(tree.thenStatement()); nesting--; boolean elseStatementNotIF = tree.elseStatement() != null && !tree.elseStatement().is(IF_STATEMENT); if (elseStatementNotIF) { increaseComplexityByOne(tree.elseKeyword()); nesting++; } else if (tree.elseStatement() != null) { // else statement is an if, visiting it will increase complexity by nesting so by one only. ignoreNesting = true; complexity -= nesting - 1; } scan(tree.elseStatement()); if (elseStatementNotIF) { nesting--; } }