Got rid of protected fields.

This commit is contained in:
Evgeny Gerashchenko
2013-08-19 19:09:55 +04:00
committed by Pavel V. Talanov
parent d5e86c38de
commit aec54bcbac
3 changed files with 31 additions and 28 deletions
@@ -21,6 +21,7 @@ import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.util.ThrowableComputable;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VfsUtilCore;
@@ -45,8 +46,6 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase {
protected static final String SOURCES_PATH = TEST_DATA_PATH + "/library"; protected static final String SOURCES_PATH = TEST_DATA_PATH + "/library";
protected static final String SRC_DIR_NAME = "src"; protected static final String SRC_DIR_NAME = "src";
private static File tempDirWithCompiled; private static File tempDirWithCompiled;
protected VirtualFile libraryDir;
protected VirtualFile librarySourceDir;
protected abstract boolean isWithSources(); protected abstract boolean isWithSources();
@@ -70,16 +69,13 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase {
super.setUp(); super.setUp();
final VirtualFile baseDir = getProject().getBaseDir(); final VirtualFile baseDir = getProject().getBaseDir();
assertNotNull(baseDir); assertNotNull(baseDir);
ApplicationManager.getApplication().runWriteAction(new Runnable() {
final VirtualFile libraryDir = ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<VirtualFile, IOException>() {
@Override @Override
public void run() { public VirtualFile compute() throws IOException {
try { VirtualFile libraryDir = baseDir.createChildDirectory(this, "lib");
libraryDir = baseDir.createChildDirectory(this, "lib"); baseDir.createChildDirectory(this, SRC_DIR_NAME);
baseDir.createChildDirectory(this, SRC_DIR_NAME); return libraryDir;
}
catch (IOException e) {
throw new RuntimeException(e);
}
} }
}); });
@@ -93,7 +89,7 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase {
return true; return true;
} }
}); });
librarySourceDir = LocalFileSystem.getInstance().findFileByPath(SOURCES_PATH); final VirtualFile librarySourceDir = LocalFileSystem.getInstance().findFileByPath(SOURCES_PATH);
assertNotNull(librarySourceDir); assertNotNull(librarySourceDir);
FileUtil.copyDir(getTempDirWithCompiled(), new File(libraryDir.getPath())); FileUtil.copyDir(getTempDirWithCompiled(), new File(libraryDir.getPath()));
@@ -19,11 +19,16 @@ package org.jetbrains.jet.plugin.libraries;
import com.beust.jcommander.internal.Maps; import com.beust.jcommander.internal.Maps;
import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.roots.LibraryOrderEntry;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.OrderEntry;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetDeclaration;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
@@ -116,8 +121,21 @@ public class NavigateToDecompiledLibraryTest extends AbstractNavigateToLibraryTe
return document.getText(); return document.getText();
} }
@Nullable
private LibraryOrderEntry findOurTestLibrary() {
for (OrderEntry orderEntry : ModuleRootManager.getInstance(getModule()).getOrderEntries()) {
if (orderEntry instanceof LibraryOrderEntry) {
return (LibraryOrderEntry) orderEntry;
}
}
return null;
}
private VirtualFile getClassFile() { private VirtualFile getClassFile() {
VirtualFile packageDir = libraryDir.findFileByRelativePath(PACKAGE.replace(".", "/")); LibraryOrderEntry library = findOurTestLibrary();
assertNotNull(library);
VirtualFile packageDir = library.getFiles(OrderRootType.CLASSES)[0].findFileByRelativePath(PACKAGE.replace(".", "/"));
assertNotNull(packageDir); assertNotNull(packageDir);
VirtualFile classFile = packageDir.findChild(getTestName(false) + ".class"); VirtualFile classFile = packageDir.findChild(getTestName(false) + ".class");
assertNotNull(classFile); assertNotNull(classFile);
@@ -19,15 +19,14 @@ package org.jetbrains.jet.plugin.libraries;
import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiReference; import com.intellij.psi.PsiReference;
import com.intellij.util.containers.MultiMap; import com.intellij.util.containers.MultiMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.plugin.references.JetPsiReference; import org.jetbrains.jet.plugin.references.JetPsiReference;
@@ -120,7 +119,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest {
if (targetNavPsiFile == null) continue; if (targetNavPsiFile == null) continue;
VirtualFile targetNavFile = targetNavPsiFile.getVirtualFile(); VirtualFile targetNavFile = targetNavPsiFile.getVirtualFile();
if (targetNavFile == null) continue; if (targetNavFile == null) continue;
if (VfsUtilCore.isAncestor(librarySourceDir, targetNavFile, true)) { if (ProjectFileIndex.SERVICE.getInstance(getProject()).isInLibrarySource(targetNavFile)) {
referenceContainersToReferences.put(ref.getElement(), (JetPsiReference)ref); referenceContainersToReferences.put(ref.getElement(), (JetPsiReference)ref);
} }
} }
@@ -128,16 +127,6 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest {
return referenceContainersToReferences.values(); return referenceContainersToReferences.values();
} }
@NotNull
private String getRelativePath(@NotNull PsiFile librarySourceFile) {
VirtualFile virtualFile = librarySourceFile.getVirtualFile();
if (virtualFile == null) {
return "";
}
String relativePath = VfsUtilCore.getRelativePath(virtualFile, librarySourceDir, '/');
return relativePath == null ? "" : relativePath;
}
private String getActualAnnotatedLibraryCode() { private String getActualAnnotatedLibraryCode() {
MultiMap<PsiFile, Pair<Integer, Integer>> filesToNumbersAndOffsets = new MultiMap<PsiFile, Pair<Integer, Integer>>(); MultiMap<PsiFile, Pair<Integer, Integer>> filesToNumbersAndOffsets = new MultiMap<PsiFile, Pair<Integer, Integer>>();
int refNumber = 1; int refNumber = 1;
@@ -157,7 +146,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest {
Collections.sort(files, new Comparator<PsiFile>() { Collections.sort(files, new Comparator<PsiFile>() {
@Override @Override
public int compare(PsiFile o1, PsiFile o2) { public int compare(PsiFile o1, PsiFile o2) {
return getRelativePath(o1).compareTo(getRelativePath(o2)); return o1.getName().compareTo(o2.getName());
} }
}); });
@@ -191,7 +180,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest {
Document annotated = EditorFactory.getInstance().createDocument(resultForFile); Document annotated = EditorFactory.getInstance().createDocument(resultForFile);
String filePart = annotated.getText().substring(annotated.getLineStartOffset(minLine), String filePart = annotated.getText().substring(annotated.getLineStartOffset(minLine),
annotated.getLineEndOffset(maxLine)); annotated.getLineEndOffset(maxLine));
result.append(" ").append(getRelativePath(file)).append("\n"); result.append(" ").append(file.getName()).append("\n");
result.append(filePart).append("\n"); result.append(filePart).append("\n");
} }
return result.toString(); return result.toString();