boolean (PsiElement source, PsiElement target) { if (target instanceof PsiDirectory && source instanceof PsiClass) { try { JavaDirectoryServiceImpl.checkCreateClassOrInterface((PsiDirectory)target, ((PsiClass)source).getName()); } catch (IncorrectOperationException e) { return true; } } if (target instanceof PsiPackage && source instanceof PsiClass) { final GlobalSearchScope globalSearchScope = GlobalSearchScope.projectScope(source.getProject()); return ((PsiPackage)target).findClassByShortName(Objects.requireNonNull(((PsiClass)source).getName()), globalSearchScope).length > 0; } if (target instanceof PsiDirectory && source instanceof PsiDirectory) { final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory)source); if (aPackage != null && !MoveClassesOrPackagesImpl.checkNesting(target.getProject(), aPackage, target, false)) return true; } return super.isMoveRedundant(source, target); }