diff --git a/java/java-indexing-api/src/com/intellij/psi/search/PsiShortNamesCache.java b/java/java-indexing-api/src/com/intellij/psi/search/PsiShortNamesCache.java index b19513338ebe..d79674c17a20 100644 --- a/java/java-indexing-api/src/com/intellij/psi/search/PsiShortNamesCache.java +++ b/java/java-indexing-api/src/com/intellij/psi/search/PsiShortNamesCache.java @@ -90,11 +90,11 @@ public abstract class PsiShortNamesCache { @NotNull public abstract String[] getAllClassNames(); - public boolean processAllClassNames(Processor processor) { + public boolean processAllClassNames(@NotNull Processor processor) { return ContainerUtil.process(getAllClassNames(), processor); } - public boolean processAllClassNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllClassNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return ContainerUtil.process(getAllClassNames(), processor); } @@ -132,11 +132,11 @@ public abstract class PsiShortNamesCache { return processMethodsWithName(name, scope, method -> processor.process(method)); } - public boolean processAllMethodNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllMethodNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return ContainerUtil.process(getAllMethodNames(), processor); } - public boolean processAllFieldNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllFieldNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return ContainerUtil.process(getAllFieldNames(), processor); } diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java b/java/java-indexing-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java index f2311f7f7dee..596bedf24cec 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/CompositeShortNamesCache.java @@ -96,7 +96,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { } @Override - public boolean processAllClassNames(Processor processor) { + public boolean processAllClassNames(@NotNull Processor processor) { CommonProcessors.UniqueProcessor uniqueProcessor = new CommonProcessors.UniqueProcessor<>(processor); for (PsiShortNamesCache cache : myCaches) { if (!cache.processAllClassNames(uniqueProcessor)) { @@ -107,7 +107,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { } @Override - public boolean processAllClassNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllClassNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { for (PsiShortNamesCache cache : myCaches) { if (!cache.processAllClassNames(processor, scope, filter)) { return false; @@ -117,7 +117,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { } @Override - public boolean processAllMethodNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllMethodNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { for (PsiShortNamesCache cache : myCaches) { if (!cache.processAllMethodNames(processor, scope, filter)) { return false; @@ -127,7 +127,7 @@ public class CompositeShortNamesCache extends PsiShortNamesCache { } @Override - public boolean processAllFieldNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllFieldNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { for (PsiShortNamesCache cache : myCaches) { if (!cache.processAllFieldNames(processor, scope, filter)) { return false; diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java b/java/java-indexing-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java index 738577b9a8fd..c77305bb67b6 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/PsiShortNamesCacheImpl.java @@ -16,6 +16,7 @@ package com.intellij.psi.impl; import com.intellij.openapi.progress.ProgressIndicatorProvider; +import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.java.stubs.index.JavaFieldNameIndex; @@ -41,28 +42,28 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class PsiShortNamesCacheImpl extends PsiShortNamesCache { - private final PsiManagerEx myManager; + private final Project myProject; - public PsiShortNamesCacheImpl(PsiManagerEx manager) { - myManager = manager; + public PsiShortNamesCacheImpl(Project project) { + myProject = project; } @Override @NotNull public PsiFile[] getFilesByName(@NotNull String name) { - return FilenameIndex.getFilesByName(myManager.getProject(), name, GlobalSearchScope.projectScope(myManager.getProject())); + return FilenameIndex.getFilesByName(myProject, name, GlobalSearchScope.projectScope(myProject)); } @Override @NotNull public String[] getAllFileNames() { - return FilenameIndex.getAllFilenames(myManager.getProject()); + return FilenameIndex.getAllFilenames(myProject); } @Override @NotNull public PsiClass[] getClassesByName(@NotNull String name, @NotNull GlobalSearchScope scope) { - Collection classes = JavaShortClassNameIndex.getInstance().get(name, myManager.getProject(), scope); + Collection classes = JavaShortClassNameIndex.getInstance().get(name, myProject, scope); if (classes.isEmpty()) return PsiClass.EMPTY_ARRAY; List result = new ArrayList<>(classes.size()); @@ -115,34 +116,33 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { @Override @NotNull public String[] getAllClassNames() { - return ArrayUtil.toStringArray(JavaShortClassNameIndex.getInstance().getAllKeys(myManager.getProject())); + return ArrayUtil.toStringArray(JavaShortClassNameIndex.getInstance().getAllKeys(myProject)); } @Override - public boolean processAllClassNames(Processor processor) { - return JavaShortClassNameIndex.getInstance().processAllKeys(myManager.getProject(), processor); + public boolean processAllClassNames(@NotNull Processor processor) { + return JavaShortClassNameIndex.getInstance().processAllKeys(myProject, processor); } @Override - public boolean processAllClassNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllClassNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { return StubIndex.getInstance().processAllKeys(JavaStubIndexKeys.CLASS_SHORT_NAMES, processor, scope, filter); } @Override - public boolean processAllMethodNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllMethodNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { return StubIndex.getInstance().processAllKeys(JavaStubIndexKeys.METHODS, processor, scope, filter); } @Override - public boolean processAllFieldNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public boolean processAllFieldNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { return StubIndex.getInstance().processAllKeys(JavaStubIndexKeys.FIELDS, processor, scope, filter); } @Override @NotNull public PsiMethod[] getMethodsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { - Collection methods = StubIndex.getElements( - JavaStubIndexKeys.METHODS, name, myManager.getProject(), new JavaSourceFilterScope(scope), PsiMethod.class); + Collection methods = JavaMethodNameIndex.getInstance().get(name, myProject, scope); return filterMembers(methods, scope, PsiMethod.EMPTY_ARRAY); } @@ -156,19 +156,19 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { return methods.size() != maxCount && super.process(method); } }; - StubIndex.getInstance().processElements(JavaStubIndexKeys.METHODS, name, myManager.getProject(), scope, PsiMethod.class, processor); + StubIndex.getInstance().processElements(JavaStubIndexKeys.METHODS, name, myProject, scope, PsiMethod.class, processor); return filterMembers(methods, scope, PsiMethod.EMPTY_ARRAY); } @Override public boolean processMethodsWithName(@NotNull String name, @NotNull GlobalSearchScope scope, @NotNull Processor processor) { - return StubIndex.getInstance().processElements(JavaStubIndexKeys.METHODS, name, myManager.getProject(), scope, PsiMethod.class, processor); + return StubIndex.getInstance().processElements(JavaStubIndexKeys.METHODS, name, myProject, scope, PsiMethod.class, processor); } @Override @NotNull public String[] getAllMethodNames() { - return ArrayUtil.toStringArray(JavaMethodNameIndex.getInstance().getAllKeys(myManager.getProject())); + return ArrayUtil.toStringArray(JavaMethodNameIndex.getInstance().getAllKeys(myProject)); } @Override @@ -181,21 +181,21 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { return fields.size() != maxCount && super.process(method); } }; - StubIndex.getInstance().processElements(JavaStubIndexKeys.FIELDS, name, myManager.getProject(), scope, PsiField.class, processor); + StubIndex.getInstance().processElements(JavaStubIndexKeys.FIELDS, name, myProject, scope, PsiField.class, processor); return filterMembers(fields, scope, PsiField.EMPTY_ARRAY); } @NotNull @Override public PsiField[] getFieldsByName(@NotNull String name, @NotNull GlobalSearchScope scope) { - Collection fields = JavaFieldNameIndex.getInstance().get(name, myManager.getProject(), scope); + Collection fields = JavaFieldNameIndex.getInstance().get(name, myProject, scope); return filterMembers(fields, scope, PsiField.EMPTY_ARRAY); } @Override @NotNull public String[] getAllFieldNames() { - return ArrayUtil.toStringArray(JavaFieldNameIndex.getInstance().getAllKeys(myManager.getProject())); + return ArrayUtil.toStringArray(JavaFieldNameIndex.getInstance().getAllKeys(myProject)); } @Override @@ -204,7 +204,7 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return StubIndex.getInstance().processElements( - JavaStubIndexKeys.FIELDS, name, myManager.getProject(), new JavaSourceFilterScope(scope), filter, PsiField.class, processor); + JavaStubIndexKeys.FIELDS, name, myProject, new JavaSourceFilterScope(scope), filter, PsiField.class, processor); } @Override @@ -213,7 +213,7 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return StubIndex.getInstance().processElements( - JavaStubIndexKeys.METHODS, name, myManager.getProject(), new JavaSourceFilterScope(scope), filter, PsiMethod.class, processor); + JavaStubIndexKeys.METHODS, name, myProject, new JavaSourceFilterScope(scope), filter, PsiMethod.class, processor); } @Override @@ -222,14 +222,16 @@ public class PsiShortNamesCacheImpl extends PsiShortNamesCache { @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { return StubIndex.getInstance().processElements( - JavaStubIndexKeys.CLASS_SHORT_NAMES, name, myManager.getProject(), new JavaSourceFilterScope(scope), filter, PsiClass.class, processor); + JavaStubIndexKeys.CLASS_SHORT_NAMES, name, myProject, new JavaSourceFilterScope(scope), filter, PsiClass.class, processor); } - private T[] filterMembers(Collection members, GlobalSearchScope scope, T[] emptyArray) { + @NotNull + private T[] filterMembers(@NotNull Collection members, @NotNull GlobalSearchScope scope, @NotNull T[] emptyArray) { if (members.isEmpty()) { return emptyArray; } + PsiManager myManager = PsiManager.getInstance(myProject); Set set = new THashSet<>(members.size(), new TObjectHashingStrategy() { @Override public int computeHashCode(PsiMember member) { diff --git a/platform/indexing-impl/src/com/intellij/psi/search/FileNameIndexService.java b/platform/indexing-impl/src/com/intellij/psi/search/FileNameIndexService.java index 95d634a4f22f..adf2bac90357 100644 --- a/platform/indexing-impl/src/com/intellij/psi/search/FileNameIndexService.java +++ b/platform/indexing-impl/src/com/intellij/psi/search/FileNameIndexService.java @@ -20,16 +20,19 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Processor; import com.intellij.util.indexing.IdFilter; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collection; interface FileNameIndexService { - Collection getVirtualFilesByName(Project project, String name, GlobalSearchScope scope, @Nullable IdFilter idFilter); + @NotNull + Collection getVirtualFilesByName(Project project, @NotNull String name, @NotNull GlobalSearchScope scope, @Nullable IdFilter idFilter); - void processAllFileNames(Processor processor, GlobalSearchScope scope, IdFilter filter); + void processAllFileNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter); - Collection getFilesWithFileType(FileType type, GlobalSearchScope scope); + @NotNull + Collection getFilesWithFileType(@NotNull FileType type, @NotNull GlobalSearchScope scope); - boolean processFilesWithFileType(FileType type, Processor processor, GlobalSearchScope scope); + boolean processFilesWithFileType(@NotNull FileType type, @NotNull Processor processor, @NotNull GlobalSearchScope scope); } diff --git a/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndex.java b/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndex.java index 80ad2c1d11a0..937428d7b0c8 100644 --- a/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndex.java +++ b/platform/indexing-impl/src/com/intellij/psi/search/FilenameIndex.java @@ -44,11 +44,10 @@ public class FilenameIndex { /** * @deprecated Not to be used. */ - @Deprecated - public @NonNls static final ID NAME = ID.create("FilenameIndex"); + @NonNls @Deprecated public static final ID NAME = ID.create("FilenameIndex"); @NotNull - public static String[] getAllFilenames(Project project) { + public static String[] getAllFilenames(@Nullable Project project) { Set names = new THashSet<>(); getService().processAllFileNames((String s) -> { names.add(s); @@ -57,24 +56,26 @@ public class FilenameIndex { return ArrayUtil.toStringArray(names); } - public static void processAllFileNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public static void processAllFileNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter) { getService().processAllFileNames(processor, scope, filter); } - public static Collection getVirtualFilesByName(final Project project, final String name, final GlobalSearchScope scope) { + @NotNull + public static Collection getVirtualFilesByName(final Project project, @NotNull String name, @NotNull GlobalSearchScope scope) { return getService().getVirtualFilesByName(project, name, scope, null); } + @NotNull public static Collection getVirtualFilesByName(final Project project, - final String name, + @NotNull String name, boolean caseSensitively, - final GlobalSearchScope scope) { + @NotNull GlobalSearchScope scope) { if (caseSensitively) return getVirtualFilesByName(project, name, scope); return getVirtualFilesByNameIgnoringCase(name, scope, project, null); } @NotNull - public static PsiFile[] getFilesByName(final Project project, final String name, final GlobalSearchScope scope) { + public static PsiFile[] getFilesByName(@NotNull Project project, @NotNull String name, @NotNull GlobalSearchScope scope) { return (PsiFile[])getFilesByName(project, name, scope, false); } @@ -149,8 +150,8 @@ public class FilenameIndex { } @NotNull - public static PsiFileSystemItem[] getFilesByName(final Project project, - final String name, + public static PsiFileSystemItem[] getFilesByName(@NotNull Project project, + @NotNull String name, @NotNull final GlobalSearchScope scope, boolean includeDirs) { SmartList result = new SmartList<>(); diff --git a/platform/lang-impl/src/com/intellij/psi/search/FileNameIndexServiceImpl.java b/platform/lang-impl/src/com/intellij/psi/search/FileNameIndexServiceImpl.java index 5d4c071e9eec..ff4b90809684 100644 --- a/platform/lang-impl/src/com/intellij/psi/search/FileNameIndexServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/search/FileNameIndexServiceImpl.java @@ -34,8 +34,9 @@ public class FileNameIndexServiceImpl implements FileNameIndexService { myIndex = index; } + @NotNull @Override - public Collection getVirtualFilesByName(Project project, String name, GlobalSearchScope scope, IdFilter filter) { + public Collection getVirtualFilesByName(Project project, @NotNull String name, @NotNull GlobalSearchScope scope, IdFilter filter) { Set files = new THashSet<>(); myIndex.processValues(FilenameIndexImpl.NAME, name, null, (file, value) -> { files.add(file); @@ -45,17 +46,18 @@ public class FileNameIndexServiceImpl implements FileNameIndexService { } @Override - public void processAllFileNames(Processor processor, GlobalSearchScope scope, IdFilter filter) { + public void processAllFileNames(@NotNull Processor processor, @NotNull GlobalSearchScope scope, IdFilter filter) { myIndex.processAllKeys(FilenameIndexImpl.NAME, processor, scope, filter); } + @NotNull @Override - public Collection getFilesWithFileType(FileType fileType, GlobalSearchScope scope) { + public Collection getFilesWithFileType(@NotNull FileType fileType, @NotNull GlobalSearchScope scope) { return myIndex.getContainingFiles(FileTypeIndexImpl.NAME, fileType, scope); } @Override - public boolean processFilesWithFileType(FileType fileType, Processor processor, GlobalSearchScope scope) { + public boolean processFilesWithFileType(@NotNull FileType fileType, @NotNull Processor processor, @NotNull GlobalSearchScope scope) { return myIndex.processValues(FileTypeIndexImpl.NAME, fileType, null, (file, value) -> processor.process(file), scope); } } \ No newline at end of file