KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > pmd > rules > design > ExcessiveLengthRule


1 /**
2  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3  */

4 package net.sourceforge.pmd.rules.design;
5
6 import net.sourceforge.pmd.ast.SimpleJavaNode;
7 import net.sourceforge.pmd.stat.DataPoint;
8 import net.sourceforge.pmd.stat.StatisticalRule;
9
10 /**
11  * This is a common super class for things which
12  * have excessive length.
13  * <p/>
14  * i.e. LongMethod and LongClass rules.
15  * <p/>
16  * To implement an ExcessiveLength rule, you pass
17  * in the Class of node you want to check, and this
18  * does the rest for you.
19  */

20 public class ExcessiveLengthRule extends StatisticalRule {
21     private Class JavaDoc nodeClass;
22
23     public ExcessiveLengthRule(Class JavaDoc nodeClass) {
24         this.nodeClass = nodeClass;
25     }
26
27     public Object JavaDoc visit(SimpleJavaNode node, Object JavaDoc data) {
28         if (nodeClass.isInstance(node)) {
29             DataPoint point = new DataPoint();
30             point.setNode(node);
31             point.setScore(1.0 * (node.getEndLine() - node.getBeginLine()));
32             point.setMessage(getMessage());
33             addDataPoint(point);
34         }
35
36         return node.childrenAccept(this, data);
37     }
38 }
39
40
41
Popular Tags