boolean (@NotNull Project project, @NotNull PsiFile file, @NotNull PsiElement startElement, @NotNull PsiElement endElement) { long current = System.currentTimeMillis(); if (ApplicationManager.getApplication().isUnitTestMode() || current - myIsAvailableTimeStamp > REFRESH_INTERVAL) { if (myDirectories.size() == 1) { PsiDirectory myDirectory = myDirectories.get(0).getDirectory(); myIsAvailable &= myDirectory != null && myDirectory.getVirtualFile().findChild(myNewFileName) == null; myIsAvailableTimeStamp = current; } else { // do not check availability for multiple roots } } return myIsAvailable; }