/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.java.rule.imports; import net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration; import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; public class DontImportJavaLangRule extends AbstractJavaRule { private static final String IMPORT_JAVA_LANG = "java.lang"; @Override public Object visit(ASTImportDeclaration node, Object data) { if (node.isStatic()) { return data; } String img = node.jjtGetChild(0).getImage(); if (img.startsWith(IMPORT_JAVA_LANG)) { if (!IMPORT_JAVA_LANG.equals(img)) { if (img.indexOf('.', IMPORT_JAVA_LANG.length() + 1) != -1 || node.isImportOnDemand()) { // Importing from a subpackage / inner class return data; } } addViolation(data, node); } return data; } }