boolean (PsiElement[] elements) { if (elements.length == 0) return false; final Project project = elements[0].getProject(); if (JavaProjectRootsUtil.getSuitableDestinationSourceRoots(project).size() == 1) { return false; } for (PsiElement element : elements) { if (!(element instanceof PsiDirectory directory)) return false; if (RefactoringUtil.isSourceRoot(directory)) { return false; } final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(directory); if (aPackage == null) return false; if (aPackage.getQualifiedName().isEmpty()) return false; final VirtualFile sourceRootForFile = ProjectRootManager.getInstance(element.getProject()).getFileIndex() .getSourceRootForFile(directory.getVirtualFile()); if (sourceRootForFile == null) return false; } return true; }