1 package net.sourceforge.pmd.rules.codesize; 2 3 import java.util.Set; 4 5 import net.sourceforge.pmd.RuleContext; 6 import net.sourceforge.pmd.ast.ASTMethodDeclaration; 7 import net.sourceforge.pmd.stat.DataPoint; 8 9 /** 10 * Non-commented source statement counter for methods. 11 * 12 * @author Jason Bennett 13 */ 14 public class NcssMethodCount extends AbstractNcssCount { 15 16 /** 17 * Count the size of all non-constructor methods. 18 */ 19 public NcssMethodCount() { 20 super( ASTMethodDeclaration.class ); 21 } 22 23 public Object visit(ASTMethodDeclaration node, Object data) { 24 return super.visit( node, data ); 25 } 26 27 protected void makeViolations(RuleContext ctx, Set<DataPoint> p) { 28 for ( DataPoint point: p ) { 29 addViolation( ctx, point.getNode(), new String[] { 30 ( (ASTMethodDeclaration) point.getNode() ).getMethodName(), 31 String.valueOf( (int) point.getScore() ) } ); 32 } 33 } 34 35 }