PsiDirectory (@NotNull String packageName, @NotNull PsiDirectory rootDir) { if (packageName.isEmpty()) { return rootDir; } PsiDirectory directory = rootDir; String[] shortNames = packageName.split("\\."); for (String lastName : shortNames) { PsiDirectory subdirectory = directory.findSubdirectory(lastName); if (subdirectory != null) { directory = subdirectory; } else { try { directory = directory.createSubdirectory(lastName); } catch (IncorrectOperationException e) { scheduleFileOrPackageCreationFailedMessageBox(e, lastName, directory, true); return null; } } } return directory; }