@Override public void visitFunctionDeclaration(FunctionDeclarationTree tree) { visitWithNesting(()-> super.visitFunctionDeclaration(tree)); }
private void visitWithNesting(@Nullable Tree tree) { if (tree != null) { visitWithNesting(() -> tree.accept(this)); } }
private void visitWithNesting(@Nullable Tree tree) { if (tree != null) { visitWithNesting(() -> tree.accept(this)); } }
@Override public void visitCatchBlock(CatchBlockTree tree) { complexity.addComplexityWithNesting(tree.catchToken()); visitWithNesting(()-> super.visitCatchBlock(tree)); }
@Override public void visitSwitchStatement(SwitchStatementTree tree) { complexity.addComplexityWithNesting(tree.switchToken()); visitWithNesting(()-> super.visitSwitchStatement(tree)); }
@Override public void visitCatchBlock(CatchBlockTree tree) { complexity.addComplexityWithNesting(tree.catchToken()); visitWithNesting(()-> super.visitCatchBlock(tree)); }
@Override public void visitSwitchStatement(SwitchStatementTree tree) { complexity.addComplexityWithNesting(tree.switchToken()); visitWithNesting(()-> super.visitSwitchStatement(tree)); }
@Override public void visitConditionalExpression(ConditionalExpressionTree tree) { complexity.addComplexityWithNesting(tree.queryToken()); visit(tree.condition()); visitWithNesting(tree.trueExpression()); visitWithNesting(tree.falseExpression()); }
@Override public void visitConditionalExpression(ConditionalExpressionTree tree) { complexity.addComplexityWithNesting(tree.queryToken()); visit(tree.condition()); visitWithNesting(tree.trueExpression()); visitWithNesting(tree.falseExpression()); }
@Override public void visitElseClause(ElseClauseTree tree) { if (tree.is(Kind.ELSE_CLAUSE) && tree.statements().get(0).is(Kind.IF_STATEMENT)) { ifStatementWithoutNesting.add((IfStatementTree) tree.statements().get(0)); } else { complexity.addComplexityWithoutNesting(tree.elseToken()); } visitWithNesting(tree.statements()); }
@Override public void visitElseClause(ElseClauseTree tree) { if (tree.is(Kind.ELSE_CLAUSE) && tree.statements().get(0).is(Kind.IF_STATEMENT)) { ifStatementWithoutNesting.add((IfStatementTree) tree.statements().get(0)); } else { complexity.addComplexityWithoutNesting(tree.elseToken()); } visitWithNesting(tree.statements()); }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { complexity.addComplexityWithNesting(tree.doToken()); visitWithNesting(tree.statement()); visit(tree.condition()); }
@Override public void visitWhileStatement(WhileStatementTree tree) { complexity.addComplexityWithNesting(tree.whileToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitWhileStatement(WhileStatementTree tree) { complexity.addComplexityWithNesting(tree.whileToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitDoWhileStatement(DoWhileStatementTree tree) { complexity.addComplexityWithNesting(tree.doToken()); visitWithNesting(tree.statement()); visit(tree.condition()); }
@Override public void visitElseifClause(ElseifClauseTree tree) { complexity.addComplexityWithoutNesting(tree.elseifToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitIfStatement(IfStatementTree tree) { if (ifStatementWithoutNesting.contains(tree)) { complexity.addComplexityWithoutNesting(tree.ifToken()); } else { complexity.addComplexityWithNesting(tree.ifToken()); } visit(tree.condition()); visitWithNesting(tree.statements()); tree.elseifClauses().forEach(this::visit); visit(tree.elseClause()); }
@Override public void visitForEachStatement(ForEachStatementTree tree) { complexity.addComplexityWithNesting(tree.foreachToken()); visit(tree.expression()); visit(tree.key()); visit(tree.value()); visitWithNesting(tree.statements()); }
@Override public void visitForStatement(ForStatementTree tree) { complexity.addComplexityWithNesting(tree.forToken()); tree.init().forEach(this::visit); tree.condition().forEach(this::visit); tree.update().forEach(this::visit); visitWithNesting(tree.statements()); }
@Override public void visitForEachStatement(ForEachStatementTree tree) { complexity.addComplexityWithNesting(tree.foreachToken()); visit(tree.expression()); visit(tree.key()); visit(tree.value()); visitWithNesting(tree.statements()); }