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 }