reducing dependencies of VirtualFilePointerContainerImpl

This commit is contained in:
Dmitry Jemerov
2012-05-11 15:59:02 +02:00
parent 66668cf34c
commit de743033df
4 changed files with 18 additions and 15 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@@ -194,4 +195,12 @@ public class VfsUtilCore {
reader.close();
}
}
@NotNull
public static VirtualFile[] toVirtualFileArray(@NotNull Collection<? extends VirtualFile> files) {
int size = files.size();
if (size == 0) return VirtualFile.EMPTY_ARRAY;
//noinspection SSBasedInspection
return files.toArray(new VirtualFile[size]);
}
}
@@ -17,11 +17,12 @@ package com.intellij.openapi.vfs.pointers;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.util.ModificationTracker;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public abstract class VirtualFilePointerManager implements Disposable {
public abstract class VirtualFilePointerManager implements Disposable, ModificationTracker {
public static VirtualFilePointerManager getInstance() {
return ApplicationManager.getApplication().getComponent(VirtualFilePointerManager.class);
}
@@ -669,14 +669,6 @@ public class VfsUtil extends VfsUtilCore {
return null;
}
@NotNull
public static VirtualFile[] toVirtualFileArray(@NotNull Collection<? extends VirtualFile> files) {
int size = files.size();
if (size == 0) return VirtualFile.EMPTY_ARRAY;
//noinspection SSBasedInspection
return files.toArray(new VirtualFile[size]);
}
@NotNull
public static String getReadableUrl(@NotNull final VirtualFile file) {
return file.isInLocalFileSystem() ? file.getPresentableUrl() : file.getUrl();
@@ -20,11 +20,12 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Trinity;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.pointers.VirtualFilePointer;
import com.intellij.openapi.vfs.pointers.VirtualFilePointerContainer;
import com.intellij.openapi.vfs.pointers.VirtualFilePointerListener;
import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager;
import com.intellij.util.ArrayUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.ContainerUtilRt;
@@ -44,7 +45,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vfs.pointers.VirtualFilePointerContainer");
@NotNull private final List<VirtualFilePointer> myList = ContainerUtilRt.createEmptyCOWList();
private final List<VirtualFilePointer> myReadOnlyList = Collections.unmodifiableList(myList);
@NotNull private final VirtualFilePointerManagerImpl myVirtualFilePointerManager;
@NotNull private final VirtualFilePointerManager myVirtualFilePointerManager;
@NotNull private final Disposable myParent;
private final VirtualFilePointerListener myListener;
private VirtualFile[] myCachedDirectories;
@@ -54,7 +55,7 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai
@NonNls private static final String URL_ATTR = "url";
private boolean myDisposed;
public VirtualFilePointerContainerImpl(@NotNull VirtualFilePointerManagerImpl manager, @NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) {
public VirtualFilePointerContainerImpl(@NotNull VirtualFilePointerManager manager, @NotNull Disposable parent, @Nullable VirtualFilePointerListener listener) {
myVirtualFilePointerManager = manager;
myParent = parent;
myListener = listener;
@@ -201,10 +202,10 @@ public class VirtualFilePointerContainerImpl implements VirtualFilePointerContai
}
}
}
VirtualFile[] directories = VfsUtil.toVirtualFileArray(cachedDirectories);
VirtualFile[] directories = VfsUtilCore.toVirtualFileArray(cachedDirectories);
myCachedDirectories = directories;
VirtualFile[] filesArray;
myCachedFiles = filesArray = VfsUtil.toVirtualFileArray(cachedFiles);
myCachedFiles = filesArray = VfsUtilCore.toVirtualFileArray(cachedFiles);
String[] urlsArray;
myCachedUrls = urlsArray = ArrayUtil.toStringArray(cachedUrls);
return Trinity.create(urlsArray, filesArray, directories);