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  }