View Javadoc

1   package net.sourceforge.pmd.rules.imports;
2   
3   import net.sourceforge.pmd.AbstractRule;
4   import net.sourceforge.pmd.ast.ASTImportDeclaration;
5   import net.sourceforge.pmd.ast.SimpleNode;
6   
7   public class DontImportJavaLang extends AbstractRule {
8   
9       public Object visit(ASTImportDeclaration node, Object data) {
10          if (node.isStatic()) {
11              return data;
12          }
13          String img = ((SimpleNode) node.jjtGetChild(0)).getImage();
14          if (img.startsWith("java.lang")) {
15              if (img.startsWith("java.lang.ref")
16                      || img.startsWith("java.lang.reflect")
17                      || img.startsWith("java.lang.annotation")
18                      || img.startsWith("java.lang.instrument")
19                      || img.startsWith("java.lang.management")) {
20                  return data;
21              }
22  
23              addViolation(data, node);
24          }
25          return data;
26      }
27  
28  }