From 61d879a2a48298b025174e5a5242acd48557ea3e Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Thu, 14 May 2015 16:22:45 +0300 Subject: [PATCH] [vcs] Deprecate VcsContextFactory.create FilePath with directory detector Detector is called right away, so there is no point in it. Just inline the call & deprecate the method. --- .../intellij/openapi/vcs/actions/VcsContextFactory.java | 3 +++ .../src/com/intellij/peer/impl/VcsContextFactoryImpl.java | 5 ++--- .../jetbrains/idea/svn/history/SvnRepositoryLocation.java | 8 +++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java b/platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java index 1ee4c13973c2..ad9501ba32c2 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/actions/VcsContextFactory.java @@ -74,7 +74,10 @@ public interface VcsContextFactory { * @param file the file for which the FilePath should be created. * @param detector - called to get to know whether the file is directory, if local file is not found * @return the FilePath instance. + * + * @deprecated to remove in IDEA 16. Check the virtual file right away and pass to the right constructor. */ + @Deprecated FilePath createFilePathOn(final File file, final NotNullFunction detector); /** diff --git a/platform/vcs-impl/src/com/intellij/peer/impl/VcsContextFactoryImpl.java b/platform/vcs-impl/src/com/intellij/peer/impl/VcsContextFactoryImpl.java index ab6b69250ce8..89a7eacad02b 100644 --- a/platform/vcs-impl/src/com/intellij/peer/impl/VcsContextFactoryImpl.java +++ b/platform/vcs-impl/src/com/intellij/peer/impl/VcsContextFactoryImpl.java @@ -54,10 +54,9 @@ public class VcsContextFactoryImpl implements VcsContextFactory { public FilePath createFilePathOn(final File file, final NotNullFunction detector) { VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByIoFile(file); if (virtualFile != null) { - // detector information (loaded here lazily) is not needed - we have real file - return FilePathImpl.create(file); + return createFilePathOn(virtualFile); } - return FilePathImpl.create(file, detector.fun(file).booleanValue()); + return createFilePathOn(file, detector.fun(file).booleanValue()); } public FilePath createFilePathOn(final File file, final boolean isDirectory) { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java index d46378eeda45..cf91735987b5 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/SvnRepositoryLocation.java @@ -18,8 +18,10 @@ package org.jetbrains.idea.svn.history; import com.intellij.openapi.vcs.FilePath; import com.intellij.openapi.vcs.RepositoryLocation; import com.intellij.openapi.vcs.VcsException; -import com.intellij.openapi.vcs.actions.VcsContextFactory; +import com.intellij.openapi.vfs.LocalFileSystem; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.NotNullFunction; +import com.intellij.vcsUtil.VcsUtil; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.svn.RootUrlInfo; import org.jetbrains.idea.svn.SvnUtil; @@ -84,8 +86,8 @@ public class SvnRepositoryLocation implements RepositoryLocation { if (rootForUrl != null) { String relativePath = SvnUtil.getRelativeUrl(rootForUrl.getUrl(), fullPath); File file = new File(rootForUrl.getPath(), relativePath); - - result = VcsContextFactory.SERVICE.getInstance().createFilePathOn(file, detector); + VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByIoFile(file); + result = virtualFile != null ? VcsUtil.getFilePath(virtualFile) : VcsUtil.getFilePath(file, detector.fun(file).booleanValue()); } return result;