mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup
This commit is contained in:
@@ -24,7 +24,7 @@ import com.intellij.openapi.compiler.ExportableUserDataHolderBase;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import gnu.trove.THashSet;
|
||||
@@ -35,18 +35,18 @@ import java.util.*;
|
||||
public class CompositeScope extends ExportableUserDataHolderBase implements CompileScope{
|
||||
private final List<CompileScope> myScopes = new ArrayList<>();
|
||||
|
||||
public CompositeScope(CompileScope scope1, CompileScope scope2) {
|
||||
public CompositeScope(@NotNull CompileScope scope1, @NotNull CompileScope scope2) {
|
||||
addScope(scope1);
|
||||
addScope(scope2);
|
||||
}
|
||||
|
||||
public CompositeScope(CompileScope[] scopes) {
|
||||
public CompositeScope(@NotNull CompileScope[] scopes) {
|
||||
for (CompileScope scope : scopes) {
|
||||
addScope(scope);
|
||||
}
|
||||
}
|
||||
|
||||
private void addScope(CompileScope scope) {
|
||||
private void addScope(@NotNull CompileScope scope) {
|
||||
if (scope instanceof CompositeScope) {
|
||||
final CompositeScope compositeScope = (CompositeScope)scope;
|
||||
for (CompileScope childScope : compositeScope.myScopes) {
|
||||
@@ -68,7 +68,7 @@ public class CompositeScope extends ExportableUserDataHolderBase implements Comp
|
||||
ContainerUtil.addAll(allFiles, files);
|
||||
}
|
||||
}
|
||||
return VfsUtil.toVirtualFileArray(allFiles);
|
||||
return VfsUtilCore.toVirtualFileArray(allFiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -112,6 +112,7 @@ public class CompositeScope extends ExportableUserDataHolderBase implements Comp
|
||||
return super.getUserData(key);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<CompileScope> getScopes() {
|
||||
return Collections.unmodifiableList(myScopes);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileVisitor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -37,7 +38,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements
|
||||
private Set<String> myUrls; // urls caching
|
||||
private final Module[] myAffectedModules;
|
||||
|
||||
public FileSetCompileScope(final Collection<VirtualFile> files, Module[] modules) {
|
||||
public FileSetCompileScope(@NotNull Collection<VirtualFile> files, @NotNull Module[] modules) {
|
||||
myAffectedModules = modules;
|
||||
ApplicationManager.getApplication().runReadAction(
|
||||
() -> {
|
||||
@@ -55,6 +56,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements
|
||||
return myAffectedModules;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<VirtualFile> getRootFiles() {
|
||||
return Collections.unmodifiableCollection(myRootFiles);
|
||||
}
|
||||
@@ -95,6 +97,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Set<String> getUrls() {
|
||||
if (myUrls == null) {
|
||||
myUrls = new HashSet<>();
|
||||
@@ -106,7 +109,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements
|
||||
return myUrls;
|
||||
}
|
||||
|
||||
private void addFile(VirtualFile file) {
|
||||
private void addFile(@NotNull VirtualFile file) {
|
||||
if (file.isDirectory()) {
|
||||
myDirectoryUrls.add(file.getUrl() + "/");
|
||||
}
|
||||
@@ -114,7 +117,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements
|
||||
myUrls = null;
|
||||
}
|
||||
|
||||
private static void addRecursively(final Collection<? super VirtualFile> container, VirtualFile fromDirectory, final FileType fileType) {
|
||||
private static void addRecursively(@NotNull Collection<? super VirtualFile> container, @NotNull VirtualFile fromDirectory, @Nullable FileType fileType) {
|
||||
VfsUtilCore.visitChildrenRecursively(fromDirectory, new VirtualFileVisitor(VirtualFileVisitor.SKIP_ROOT) {
|
||||
@Override
|
||||
public boolean visitFile(@NotNull VirtualFile child) {
|
||||
|
||||
@@ -357,7 +357,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
*/
|
||||
@NotNull
|
||||
@Contract(pure = true)
|
||||
public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection<VirtualFile> files) {
|
||||
public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection<? extends VirtualFile> files) {
|
||||
return filesScope(project, files, null);
|
||||
}
|
||||
|
||||
@@ -369,20 +369,20 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
*/
|
||||
@NotNull
|
||||
@Contract(pure = true)
|
||||
public static GlobalSearchScope filesWithoutLibrariesScope(@NotNull Project project, @NotNull Collection<VirtualFile> files) {
|
||||
public static GlobalSearchScope filesWithoutLibrariesScope(@NotNull Project project, @NotNull Collection<? extends VirtualFile> files) {
|
||||
if (files.isEmpty()) return EMPTY_SCOPE;
|
||||
return new FilesScope(project, files, false, false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Contract(pure = true)
|
||||
public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection<VirtualFile> files) {
|
||||
public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection<? extends VirtualFile> files) {
|
||||
return filesWithLibrariesScope(project, files, false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Contract(pure = true)
|
||||
public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection<VirtualFile> files,
|
||||
public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection<? extends VirtualFile> files,
|
||||
boolean searchOutsideRootModel) {
|
||||
if (files.isEmpty()) return EMPTY_SCOPE;
|
||||
return new FilesScope(project, files, true, searchOutsideRootModel);
|
||||
@@ -393,7 +393,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
*/
|
||||
@NotNull
|
||||
@Contract(pure = true)
|
||||
public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection<VirtualFile> files, @Nullable final String displayName) {
|
||||
public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection<? extends VirtualFile> files, @Nullable final String displayName) {
|
||||
if (files.isEmpty()) return EMPTY_SCOPE;
|
||||
return files.size() == 1? fileScope(project, files.iterator().next(), displayName) : new FilesScope(project, files) {
|
||||
@NotNull
|
||||
@@ -425,8 +425,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
private boolean containsScope(@NotNull GlobalSearchScope scope) {
|
||||
if (myScope1.equals(scope) || myScope2.equals(scope) || equals(scope)) return true;
|
||||
if (myScope1 instanceof IntersectionScope && ((IntersectionScope)myScope1).containsScope(scope)) return true;
|
||||
if (myScope2 instanceof IntersectionScope && ((IntersectionScope)myScope2).containsScope(scope)) return true;
|
||||
return false;
|
||||
return myScope2 instanceof IntersectionScope && ((IntersectionScope)myScope2).containsScope(scope);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -494,6 +493,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
|
||||
@Override
|
||||
public int calcHashCode() {
|
||||
//noinspection deprecation
|
||||
return 31 * myScope1.hashCode() + myScope2.hashCode();
|
||||
}
|
||||
|
||||
@@ -791,16 +791,16 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
}
|
||||
|
||||
public static class FilesScope extends GlobalSearchScope implements Iterable<VirtualFile> {
|
||||
private final Collection<VirtualFile> myFiles;
|
||||
private final Collection<? extends VirtualFile> myFiles;
|
||||
private final boolean mySearchOutsideRootModel;
|
||||
private volatile Boolean myHasFilesOutOfProjectRoots;
|
||||
|
||||
private FilesScope(@Nullable Project project, @NotNull Collection<VirtualFile> files) {
|
||||
private FilesScope(@Nullable Project project, @NotNull Collection<? extends VirtualFile> files) {
|
||||
this(project, files, null, false);
|
||||
}
|
||||
|
||||
// Optimization
|
||||
private FilesScope(@Nullable Project project, @NotNull Collection<VirtualFile> files, @Nullable Boolean hasFilesOutOfProjectRoots,
|
||||
private FilesScope(@Nullable Project project, @NotNull Collection<? extends VirtualFile> files, @Nullable Boolean hasFilesOutOfProjectRoots,
|
||||
boolean searchOutsideRootModel) {
|
||||
super(project);
|
||||
myFiles = files;
|
||||
@@ -846,14 +846,16 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
List<VirtualFile> files = myFiles.size() <= 20 ? new ArrayList<>(myFiles) : new ArrayList<>(myFiles).subList(0, 20);
|
||||
List<VirtualFile> files = ContainerUtil.getFirstItems(new ArrayList<>(myFiles), 20);
|
||||
return "Files: ("+ files +"); search in libraries: " + (myHasFilesOutOfProjectRoots != null ? myHasFilesOutOfProjectRoots : "unknown");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Iterator<VirtualFile> iterator() {
|
||||
return myFiles.iterator();
|
||||
//noinspection unchecked
|
||||
return (Iterator<VirtualFile>) // optimization hack: avoid copying in `new ArrayList(myFiles).iterator()`
|
||||
myFiles.iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user