Set<VirtualFile> (Set<VirtualFile> files, @NotNull PsiElement elem) { if (elem instanceof PsiDirectory) { files = addFile(files, ((PsiDirectory)elem).getVirtualFile()); } else if (elem instanceof PsiFile) { files = addFile(files, ((PsiFile)elem).getVirtualFile()); } else if (elem instanceof PsiDirectoryContainer) { for (PsiDirectory dir : ((PsiDirectoryContainer)elem).getDirectories()) { files = addFile(files, dir.getVirtualFile()); } } else { PsiFile file = elem.getContainingFile(); if (file != null) { files = addFile(files, file.getVirtualFile()); } } return files; }