|
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 |
8
| public Object visit(ASTImportDeclaration node, Object data) {
|
|
10 |
8
| if (node.isStatic()) {
|
|
11 |
1
| return data;
|
|
12 |
| } |
|
13 |
7
| String img = ((SimpleNode) node.jjtGetChild(0)).getImage();
|
|
14 |
7
| if (img.startsWith("java.lang")) {
|
|
15 |
7
| 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 |
5
| return data;
|
|
21 |
| } |
|
22 |
| |
|
23 |
2
| addViolation(data, node);
|
|
24 |
| } |
|
25 |
2
| return data;
|
|
26 |
| } |
|
27 |
| |
|
28 |
| } |