/** * 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; import net.sourceforge.pmd.lang.java.symboltable.SourceFileScope; import net.sourceforge.pmd.util.StringUtil; public class ImportFromSamePackageRule extends AbstractJavaRule { public Object visit(ASTImportDeclaration importDecl, Object data) { String packageName = importDecl.getScope().getEnclosingScope(SourceFileScope.class).getPackageName(); if (packageName != null && packageName.equals(importDecl.getPackageName())) { addViolation(data, importDecl); } // special case if (packageName == null && StringUtil.isEmpty(importDecl.getPackageName())) { addViolation(data, importDecl); } return data; } }