NestedIfDepthCheck.java

Index Score
com.puppycrawl.tools.checkstyle.checks.coding
Checkstyle

View: Reasons, Metrics, Source Code

These are the metrics that contribute to the Enerjy Score for this file, ranked by impact. So the metrics listed at the top influence the score to a greater extent that the metrics listed at the bottom.

MetricDescription
//////////////////////////////////////////////////////////////////////////////// // checkstyle: Checks Java source code for adherence to a set of rules. // Copyright (C) 2001-2007 Oliver Burn // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //////////////////////////////////////////////////////////////////////////////// package com.puppycrawl.tools.checkstyle.checks.coding; import com.puppycrawl.tools.checkstyle.api.DetailAST; import com.puppycrawl.tools.checkstyle.api.TokenTypes; import com.puppycrawl.tools.checkstyle.checks.CheckUtils; /** * Restricts nested if-else blocks to a specified depth (default = 1). * * @author <a href="mailto:simon@redhillconsulting.com.au">Simon Harris</a> */ public final class NestedIfDepthCheck extends AbstractNestedDepthCheck { /** default allowed nesting depth. */ private static final int DEFAULT_MAX = 1; /** Creates new check instance with default allowed nesting depth. */ public NestedIfDepthCheck() { super(DEFAULT_MAX); } /** {@inheritDoc} */ public int[] getDefaultTokens() { return new int[] {TokenTypes.LITERAL_IF}; } /** {@inheritDoc} */ public void visitToken(DetailAST aAST) { switch (aAST.getType()) { case TokenTypes.LITERAL_IF: visitLiteralIf(aAST); break; default: throw new IllegalStateException(aAST.toString()); } } /** {@inheritDoc} */ public void leaveToken(DetailAST aAST) { switch (aAST.getType()) { case TokenTypes.LITERAL_IF: leaveLiteralIf(aAST); break; default: throw new IllegalStateException(aAST.toString()); } } /** * Increases current nesting depth. * @param aIf node for if. */ private void visitLiteralIf(DetailAST aIf) { if (!CheckUtils.isElseIf(aIf)) { nestIn(aIf, "nested.if.depth"); } } /** * Decreases current nesting depth. * @param aIf node for if. */ private void leaveLiteralIf(DetailAST aIf) { if (!CheckUtils.isElseIf(aIf)) { nestOut(); } } }

The table below shows all metrics for NestedIfDepthCheck.java.

MetricValueDescription