boolean (TreePath @NotNull [] sources, @NotNull TreePath target) { PsiElement[] sourceElements = getPsiElements(sources); PsiElement targetElement = getPsiElement(target); if (targetElement == null) return false; PsiFile containingFile = targetElement.getContainingFile(); boolean isTargetAcceptable = targetElement instanceof PsiDirectoryContainer || targetElement instanceof PsiDirectory || containingFile != null && containingFile.getContainingDirectory() != null; return isTargetAcceptable && CopyHandler.canCopy(sourceElements); }