View Javadoc
1   /**
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package net.sourceforge.pmd.lang.java.rule.coupling;
5   
6   import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
7   import net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration;
8   import net.sourceforge.pmd.lang.java.rule.design.ExcessiveNodeCountRule;
9   import net.sourceforge.pmd.util.NumericConstants;
10  
11  /**
12   * ExcessiveImports attempts to count all unique imports a class
13   * contains. This rule will count a "import com.something.*;" as a single
14   * import. This is a unqiue situation and I'd like to create an audit type
15   * rule that captures those.
16   *
17   * @author aglover
18   * @since Feb 21, 2003
19   */
20  public class ExcessiveImportsRule extends ExcessiveNodeCountRule {
21  
22      public ExcessiveImportsRule() {
23          super(ASTCompilationUnit.class);
24          setProperty(MINIMUM_DESCRIPTOR, 30d);
25      }
26  
27      /**
28       * Hook method to count imports. This is a user defined value.
29       *
30       * @param node
31       * @param data
32       * @return Object
33       */
34      public Object visit(ASTImportDeclaration node, Object data) {
35          return NumericConstants.ONE;
36      }
37  }