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