View Javadoc
1 /*** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package net.sourceforge.pmd.rules; 5 6 import net.sourceforge.pmd.AbstractRule; 7 import net.sourceforge.pmd.RuleContext; 8 import net.sourceforge.pmd.ast.ASTCompilationUnit; 9 import net.sourceforge.pmd.ast.ASTIfStatement; 10 11 public class AvoidDeeplyNestedIfStmtsRule extends AbstractRule { 12 13 private int depth; 14 15 public Object visit(ASTCompilationUnit node, Object data) { 16 depth = 0; 17 return super.visit(node, data); 18 } 19 20 public Object visit(ASTIfStatement node, Object data) { 21 if (!node.hasElse()) { 22 depth++; 23 } 24 super.visit(node, data); 25 if (depth == getIntProperty("problemDepth")) { 26 RuleContext ctx = (RuleContext) data; 27 ctx.getReport().addRuleViolation(createRuleViolation(ctx, node.getBeginLine())); 28 } 29 depth--; 30 return data; 31 } 32 33 }

This page was automatically generated by Maven