PsiDirectoryImpl to core-impl, refactor its dependencies
authorDmitry Jemerov <yole@jetbrains.com>
Sat, 1 Oct 2011 10:55:08 +0000 (12:55 +0200)
committerDmitry Jemerov <yole@jetbrains.com>
Tue, 4 Oct 2011 14:02:16 +0000 (16:02 +0200)
13 files changed:
java/compiler/impl/src/com/intellij/compiler/impl/javaCompiler/BackendCompilerWrapper.java
java/java-tests/testSrc/com/intellij/psi/impl/cache/impl/SCR17650Test.java
platform/core-api/src/com/intellij/ide/util/PsiNavigationSupport.java
platform/core-api/src/com/intellij/openapi/vfs/VfsUtilCore.java
platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java [moved from platform/lang-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java with 94% similarity]
platform/core-impl/src/com/intellij/psi/impl/file/UpdateAddedFileProcessor.java [moved from platform/lang-impl/src/com/intellij/psi/impl/file/UpdateAddedFileProcessor.java with 100% similarity]
platform/core-impl/src/com/intellij/psi/search/PsiFileSystemItemProcessor.java [moved from platform/lang-impl/src/com/intellij/psi/search/PsiFileSystemItemProcessor.java with 100% similarity]
platform/lang-impl/src/com/intellij/ide/util/PsiNavigationSupportImpl.java
platform/lang-impl/src/com/intellij/psi/impl/file/PsiDirectoryFactoryImpl.java
platform/platform-api/src/com/intellij/openapi/vfs/VfsUtil.java
platform/platform-impl/src/com/intellij/openapi/vfs/ex/temp/TempFileSystem.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/TempDirTestFixtureImpl.java

index 1c764325466a2aa9e98721e376dfb63943129e60..f6a16b5c281ebb99b3e5fa8337cd7cf43c659b6a 100644 (file)
@@ -55,7 +55,6 @@ import com.intellij.openapi.util.Ref;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vfs.LocalFileSystem;
-import com.intellij.openapi.vfs.VfsUtil;
 import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.JavaPsiFacade;
@@ -522,7 +521,7 @@ public class BackendCompilerWrapper {
         }
       }
     }
-    return VfsUtil.copyFile(this, file, tempDir);
+    return VfsUtilCore.copyFile(this, file, tempDir);
   }
 
   private VirtualFile getTempDir(Module module) throws IOException {
index 634f37e0bb2eb108a4625ccca9a27d5efdf80eb8..afd47795fa095faf58c827b4bc770b4c018a35f9 100644 (file)
@@ -10,6 +10,7 @@ import com.intellij.openapi.roots.libraries.Library;
 import com.intellij.openapi.util.io.FileUtil;
 import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.openapi.vfs.VfsUtil;
+import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.testFramework.PsiTestCase;
 
@@ -43,7 +44,7 @@ public class SCR17650Test extends PsiTestCase {
 
           VirtualFile file1 = myDir.createChildData(null, "A.java");
           VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }");
-          VfsUtil.copyFile(null, getClassFile(), myDir);
+          VfsUtilCore.copyFile(null, getClassFile(), myDir);
 
           final ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel();
           final ContentEntry contentEntry1 = rootModel.addContentEntry(myDir);
index 6ea0defa8dc854e456b1689db596d38a849a3e54..b66430f2907887c23ed82ba1b77d4754a78d8aa4 100644 (file)
@@ -17,6 +17,7 @@ package com.intellij.ide.util;
 
 import com.intellij.openapi.components.ServiceManager;
 import com.intellij.pom.Navigatable;
+import com.intellij.psi.PsiDirectory;
 import com.intellij.psi.PsiElement;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,4 +32,5 @@ public abstract class PsiNavigationSupport {
   @Nullable
   public abstract Navigatable getDescriptor(final PsiElement element);
   public abstract boolean canNavigate(final PsiElement element);
+  public abstract void navigateToDirectory(PsiDirectory psiDirectory, boolean requestFocus);
 }
index a13c5e7dbd464524f392ba0580fdcf38ba4b26d4..4b4b4a3689cfa0ca7c5e26e32bd8e143d3810dff 100644 (file)
  */
 package com.intellij.openapi.vfs;
 
+import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+import java.io.IOException;
+
 public class VfsUtilCore {
   /**
    * Checks whether the <code>ancestor {@link com.intellij.openapi.vfs.VirtualFile}</code> is parent of <code>file
@@ -91,4 +94,40 @@ public class VfsUtilCore {
     String localPath = path.substring(0, separatorIndex);
     return VirtualFileManager.getInstance().findFileByUrl("file://" + localPath);
   }
+
+  /**
+   * Makes a copy of the <code>file</code> in the <code>toDir</code> folder and returns it.
+   *
+   * @param requestor any object to control who called this method. Note that
+   *                  it is considered to be an external change if <code>requestor</code> is <code>null</code>.
+   *                  See {@link com.intellij.openapi.vfs.VirtualFileEvent#getRequestor}
+   * @param file      file to make a copy of
+   * @param toDir     directory to make a copy in
+   * @return a copy of the file
+   * @throws java.io.IOException if file failed to be copied
+   */
+  public static VirtualFile copyFile(Object requestor, @NotNull VirtualFile file, @NotNull VirtualFile toDir) throws IOException {
+    return copyFile(requestor, file, toDir, file.getName());
+  }
+
+  /**
+   * Makes a copy of the <code>file</code> in the <code>toDir</code> folder with the <code>newName</code> and returns it.
+   *
+   * @param requestor any object to control who called this method. Note that
+   *                  it is considered to be an external change if <code>requestor</code> is <code>null</code>.
+   *                  See {@link com.intellij.openapi.vfs.VirtualFileEvent#getRequestor}
+   * @param file      file to make a copy of
+   * @param toDir     directory to make a copy in
+   * @param newName   new name of the file
+   * @return a copy of the file
+   * @throws java.io.IOException if file failed to be copied
+   */
+  public static VirtualFile copyFile(Object requestor, @NotNull VirtualFile file, @NotNull VirtualFile toDir, @NotNull @NonNls String newName)
+    throws IOException {
+    final VirtualFile newChild = toDir.createChildData(requestor, newName);
+    // [jeka] TODO: to be discussed if the copy should have the same timestamp as the original
+    //OutputStream out = newChild.getOutputStream(requestor, -1, file.getActualTimeStamp());
+    newChild.setBinaryContent(file.contentsToByteArray());
+    return newChild;
+  }
 }
similarity index 94%
rename from platform/lang-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java
rename to platform/core-impl/src/com/intellij/psi/impl/file/PsiDirectoryImpl.java
index e250b843e8bbd6405d6d28a98bd5d927591c8572..f5922c4d07a98ada5507b40ab0a220b38cd006bb 100644 (file)
 
 package com.intellij.psi.impl.file;
 
-import com.intellij.ide.impl.ProjectViewSelectInTarget;
-import com.intellij.ide.projectView.impl.ProjectViewPane;
+import com.intellij.ide.util.PsiNavigationSupport;
 import com.intellij.lang.ASTNode;
 import com.intellij.lang.Language;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
-import com.intellij.openapi.progress.ProgressManager;
+import com.intellij.openapi.progress.ProgressIndicatorProvider;
 import com.intellij.openapi.ui.Queryable;
 import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.util.SystemInfo;
 import com.intellij.openapi.util.TextRange;
 import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.openapi.vfs.VfsBundle;
-import com.intellij.openapi.vfs.VfsUtil;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.openapi.vfs.ex.dummy.DummyFileSystem;
-import com.intellij.openapi.vfs.ex.temp.TempFileSystem;
+import com.intellij.openapi.vfs.*;
 import com.intellij.psi.*;
 import com.intellij.psi.impl.CheckUtil;
 import com.intellij.psi.impl.PsiElementBase;
@@ -45,7 +40,6 @@ import com.intellij.psi.impl.source.tree.ChangeUtil;
 import com.intellij.psi.impl.source.tree.TreeElement;
 import com.intellij.psi.search.PsiElementProcessor;
 import com.intellij.psi.search.PsiFileSystemItemProcessor;
-import com.intellij.psi.util.PsiUtilBase;
 import com.intellij.psi.util.PsiUtilCore;
 import com.intellij.util.ArrayUtil;
 import com.intellij.util.IncorrectOperationException;
@@ -199,7 +193,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
 
   public boolean processChildren(PsiElementProcessor<PsiFileSystemItem> processor) {
     checkValid();
-    ProgressManager.checkCanceled();
+    ProgressIndicatorProvider.checkCanceled();
 
     for (VirtualFile vFile : myFile.getChildren()) {
       if (processor instanceof PsiFileSystemItemProcessor &&
@@ -235,7 +229,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
       }
     });
 
-    return PsiUtilBase.toPsiElementArray(children);
+    return PsiUtilCore.toPsiElementArray(children);
   }
 
   private void checkValid() {
@@ -294,7 +288,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
   }
 
   public boolean isPhysical() {
-    return !(myFile.getFileSystem() instanceof DummyFileSystem) && !(myFile.getFileSystem() instanceof TempFileSystem);
+    return !(myFile.getFileSystem() instanceof NonPhysicalFileSystem) && !(myFile.getFileSystem().getProtocol().equals("temp"));
   }
 
   /**
@@ -362,7 +356,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
         copyVFile = vFile.copy(this, parent, newName);
       }
       else {
-        copyVFile = VfsUtil.copyFile(this, vFile, parent, newName);
+        copyVFile = VfsUtilCore.copyFile(this, vFile, parent, newName);
       }
       final PsiFile copyPsi = myManager.findFile(copyVFile);
       if (copyPsi == null) {
@@ -443,7 +437,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
             newVFile.setBinaryContent(storedContents);
           }
           else {
-            newVFile = VfsUtil.copyFile(null, originalFile.getVirtualFile(), myFile);
+            newVFile = VfsUtilCore.copyFile(null, originalFile.getVirtualFile(), myFile);
           }
         }
         psiDocumentManager.commitAllDocuments();
@@ -553,7 +547,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
   }
 
   public void navigate(boolean requestFocus) {
-    ProjectViewSelectInTarget.select(getProject(), this, ProjectViewPane.ID, null, getVirtualFile(), requestFocus);
+    PsiNavigationSupport.getInstance().navigateToDirectory(this, false);
   }
 
   protected Icon getElementIcon(final int flags) {
index 523d102e46dea2de9d1516bddfe5a5b893629727..69373974cfa271525110421d88897fef099cfdd4 100644 (file)
  */
 package com.intellij.ide.util;
 
+import com.intellij.ide.impl.ProjectViewSelectInTarget;
+import com.intellij.ide.projectView.impl.ProjectViewPane;
 import com.intellij.pom.Navigatable;
+import com.intellij.psi.PsiDirectory;
 import com.intellij.psi.PsiElement;
 import org.jetbrains.annotations.Nullable;
 
@@ -33,4 +36,9 @@ public class PsiNavigationSupportImpl extends PsiNavigationSupport {
   public boolean canNavigate(PsiElement element) {
     return EditSourceUtil.canNavigate(element);
   }
+
+  @Override
+  public void navigateToDirectory(PsiDirectory psiDirectory, boolean requestFocus) {
+    ProjectViewSelectInTarget.select(psiDirectory.getProject(), this, ProjectViewPane.ID, null, psiDirectory.getVirtualFile(), requestFocus);
+  }
 }
index a18744feac7ada5fdbb154f7dde5bd79de78cbb1..427db0d700f6897b10f011c32ede3e804c802b1c 100644 (file)
@@ -21,7 +21,6 @@ import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiDirectory;
 import com.intellij.psi.PsiDirectoryContainer;
 import com.intellij.psi.impl.PsiManagerImpl;
-import com.intellij.util.PlatformUtils;
 import org.jetbrains.annotations.NotNull;
 
 /**
index 724a2f1340f339fd2afedc8e631c7c8ab23ac391..1df3e7eb31fed51b4549e3cdb2aa95a3c6f5fde2 100644 (file)
@@ -90,42 +90,6 @@ public class VfsUtil extends VfsUtilCore {
     }
   }
 
-  /**
-   * Makes a copy of the <code>file</code> in the <code>toDir</code> folder and returns it.
-   *
-   * @param requestor any object to control who called this method. Note that
-   *                  it is considered to be an external change if <code>requestor</code> is <code>null</code>.
-   *                  See {@link VirtualFileEvent#getRequestor}
-   * @param file      file to make a copy of
-   * @param toDir     directory to make a copy in
-   * @return a copy of the file
-   * @throws IOException if file failed to be copied
-   */
-  public static VirtualFile copyFile(Object requestor, @NotNull VirtualFile file, @NotNull VirtualFile toDir) throws IOException {
-    return copyFile(requestor, file, toDir, file.getName());
-  }
-
-  /**
-   * Makes a copy of the <code>file</code> in the <code>toDir</code> folder with the <code>newName</code> and returns it.
-   *
-   * @param requestor any object to control who called this method. Note that
-   *                  it is considered to be an external change if <code>requestor</code> is <code>null</code>.
-   *                  See {@link VirtualFileEvent#getRequestor}
-   * @param file      file to make a copy of
-   * @param toDir     directory to make a copy in
-   * @param newName   new name of the file
-   * @return a copy of the file
-   * @throws IOException if file failed to be copied
-   */
-  public static VirtualFile copyFile(Object requestor, @NotNull VirtualFile file, @NotNull VirtualFile toDir, @NotNull @NonNls String newName)
-    throws IOException {
-    final VirtualFile newChild = toDir.createChildData(requestor, newName);
-    // [jeka] TODO: to be discussed if the copy should have the same timestamp as the original
-    //OutputStream out = newChild.getOutputStream(requestor, -1, file.getActualTimeStamp());
-    newChild.setBinaryContent(file.contentsToByteArray());
-    return newChild;
-  }
-
   /**
    * Copies content of resource to the given file
    *
index 6e4df52e232c62e3a6483599c46f51a0694bcdd4..0018bcbe1034740341d267cc692f6e24b913524f 100644 (file)
@@ -20,7 +20,7 @@
 package com.intellij.openapi.vfs.ex.temp;
 
 import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.vfs.VfsUtil;
+import com.intellij.openapi.vfs.VfsUtilCore;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.openapi.vfs.newvfs.ManagingFS;
 import com.intellij.openapi.vfs.newvfs.NewVirtualFileSystem;
@@ -72,7 +72,7 @@ public class TempFileSystem extends NewVirtualFileSystem {
 
   public VirtualFile copyFile(final Object requestor, @NotNull final VirtualFile file, @NotNull final VirtualFile newParent, @NotNull final String copyName)
       throws IOException {
-    return VfsUtil.copyFile(requestor, file, newParent, copyName);
+    return VfsUtilCore.copyFile(requestor, file, newParent, copyName);
   }
 
   @NotNull
index 9a9aefddc574eeba37541dec518fd159dbecbe8a..7713db7828d62aa510c41119c7afc32e3dde9e85 100644 (file)
@@ -68,7 +68,7 @@ public class LightTempDirTestFixtureImpl extends BaseFixture implements TempDirT
             return existing;
           }
 
-          return VfsUtil.copyFile(this, file, targetDir, newName);
+          return VfsUtilCore.copyFile(this, file, targetDir, newName);
         }
         catch (IOException e) {
           throw new RuntimeException(e);
index c0d4a417691762b19af82109deac8417554da94b..493706ef411f672d947c777680b88c5198386413 100644 (file)
@@ -20,10 +20,7 @@ import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.util.Computable;
 import com.intellij.openapi.util.Ref;
 import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.openapi.vfs.LocalFileSystem;
-import com.intellij.openapi.vfs.VfsUtil;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.openapi.vfs.VirtualFileFilter;
+import com.intellij.openapi.vfs.*;
 import com.intellij.testFramework.fixtures.TempDirTestFixture;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -45,7 +42,7 @@ public class TempDirTestFixtureImpl extends BaseFixture implements TempDirTestFi
       createTempDirectory();
       VirtualFile tempDir =
         LocalFileSystem.getInstance().refreshAndFindFileByPath(myTempDir.getCanonicalPath().replace(File.separatorChar, '/'));
-      return VfsUtil.copyFile(this, file, tempDir);
+      return VfsUtilCore.copyFile(this, file, tempDir);
     }
     catch (IOException e) {
       throw new RuntimeException("Cannot copy " + file, e);