From 85fce1ba1f513c1b5d11591a4ab350b11af0bbcd Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Thu, 26 Jan 2017 16:38:27 +0300 Subject: [PATCH] svn: Refactored "SvnStatusUtil", "IgnoreGroupHelperAction" --- .../org/jetbrains/idea/svn/SvnStatusUtil.java | 27 ++++++++--------- .../src/org/jetbrains/idea/svn/SvnVcs.java | 10 ++----- .../idea/svn/actions/CleanupAction.java | 2 +- .../idea/svn/actions/LockAction.java | 5 +--- .../idea/svn/actions/MarkResolvedAction.java | 2 +- .../idea/svn/actions/RelocateAction.java | 2 +- .../idea/svn/actions/UnlockAction.java | 2 +- .../branchConfig/CreateBranchOrTagAction.java | 2 +- .../svn/ignore/IgnoreGroupHelperAction.java | 30 ++++++++----------- 9 files changed, 35 insertions(+), 47 deletions(-) diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnStatusUtil.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnStatusUtil.java index da128ad93b23..a68bcc52d744 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnStatusUtil.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnStatusUtil.java @@ -21,32 +21,31 @@ import com.intellij.openapi.vcs.FileStatusManager; import com.intellij.openapi.vcs.changes.ChangeListManager; import com.intellij.openapi.vcs.changes.ChangeListManagerImpl; import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; public class SvnStatusUtil { private SvnStatusUtil() { } - public static boolean isUnderControl(final Project project, final VirtualFile file) { - final ChangeListManager clManager = ChangeListManager.getInstance(project); - return (! isIgnoredInAnySense(clManager, file)) && (! clManager.isUnversioned(file)); + public static boolean isUnderControl(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { + return isUnderControl(vcs.getProject(), file); } - public static boolean isAdded(final Project project, final VirtualFile file) { - final FileStatus status = FileStatusManager.getInstance(project).getStatus(file); - return FileStatus.ADDED.equals(status); + public static boolean isUnderControl(@NotNull Project project, @NotNull VirtualFile file) { + return !isIgnoredInAnySense(project, file) && !ChangeListManager.getInstance(project).isUnversioned(file); } - public static boolean isExplicitlyLocked(final Project project, final VirtualFile file) { - final ChangeListManager clManager = ChangeListManager.getInstance(project); - return ((ChangeListManagerImpl) clManager).isLogicallyLocked(file); + public static boolean isAdded(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { + return FileStatus.ADDED.equals(FileStatusManager.getInstance(vcs.getProject()).getStatus(file)); } - public static boolean isIgnoredInAnySense(final ChangeListManager clManager, final VirtualFile file) { - return clManager.isIgnoredFile(file) || FileStatus.IGNORED.equals(clManager.getStatus(file)); + public static boolean isExplicitlyLocked(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { + return ChangeListManagerImpl.getInstanceImpl(vcs.getProject()).isLogicallyLocked(file); } - public static boolean fileCanBeAdded(final Project project, final VirtualFile file) { - final ChangeListManager clManager = ChangeListManager.getInstance(project); - return isIgnoredInAnySense(clManager, file) || clManager.isUnversioned(file); + public static boolean isIgnoredInAnySense(@NotNull Project project, @NotNull VirtualFile file) { + ChangeListManager manager = ChangeListManager.getInstance(project); + + return manager.isIgnoredFile(file) || FileStatus.IGNORED.equals(manager.getStatus(file)); } } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java index 2b4faed73178..d15ba352fc21 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnVcs.java @@ -586,13 +586,9 @@ public class SvnVcs extends AbstractVcs { } @Override - public boolean fileIsUnderVcs(FilePath path) { - final ChangeListManager clManager = ChangeListManager.getInstance(myProject); - final VirtualFile file = path.getVirtualFile(); - if (file == null) { - return false; - } - return !SvnStatusUtil.isIgnoredInAnySense(clManager, file) && !clManager.isUnversioned(file); + public boolean fileIsUnderVcs(@NotNull FilePath path) { + VirtualFile file = path.getVirtualFile(); + return file != null && SvnStatusUtil.isUnderControl(this, file); } @Nullable diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/CleanupAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/CleanupAction.java index 5544fff72a61..622962f4403a 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/CleanupAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/CleanupAction.java @@ -36,7 +36,7 @@ public class CleanupAction extends BasicAction { @Override protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { - return SvnStatusUtil.isUnderControl(vcs.getProject(), file); + return SvnStatusUtil.isUnderControl(vcs, file); } @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/LockAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/LockAction.java index 01510f2c51bf..84d478815b59 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/LockAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/LockAction.java @@ -38,10 +38,7 @@ public class LockAction extends BasicAction { @Override protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { - return !file.isDirectory() && - isUnderControl(vcs.getProject(), file) && - !isAdded(vcs.getProject(), file) && - !isExplicitlyLocked(vcs.getProject(), file); + return !file.isDirectory() && isUnderControl(vcs, file) && !isAdded(vcs, file) && !isExplicitlyLocked(vcs, file); } @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/MarkResolvedAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/MarkResolvedAction.java index d8581f3e4a7e..90a7b03da1f9 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/MarkResolvedAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/MarkResolvedAction.java @@ -67,7 +67,7 @@ public class MarkResolvedAction extends BasicAction { FileStatus status = FileStatusManager.getInstance(vcs.getProject()).getStatus(file); return file.isDirectory() - ? SvnStatusUtil.isUnderControl(vcs.getProject(), file) + ? SvnStatusUtil.isUnderControl(vcs, file) : FileStatus.MERGED_WITH_CONFLICTS.equals(status) || FileStatus.MERGED_WITH_BOTH_CONFLICTS.equals(status) || FileStatus.MERGED_WITH_PROPERTY_CONFLICTS.equals(status); diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/RelocateAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/RelocateAction.java index ba551d2f78e6..9e132d900a80 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/RelocateAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/RelocateAction.java @@ -42,7 +42,7 @@ public class RelocateAction extends BasicAction { @Override protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { - return SvnStatusUtil.isUnderControl(vcs.getProject(), file); + return SvnStatusUtil.isUnderControl(vcs, file); } @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/UnlockAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/UnlockAction.java index 044e52d4a171..ef9c9a4ea32e 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/UnlockAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/actions/UnlockAction.java @@ -38,7 +38,7 @@ public class UnlockAction extends BasicAction { @Override protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { - return !file.isDirectory() && SvnStatusUtil.isExplicitlyLocked(vcs.getProject(), file); + return !file.isDirectory() && SvnStatusUtil.isExplicitlyLocked(vcs, file); } @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/CreateBranchOrTagAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/CreateBranchOrTagAction.java index 55ea8df59c20..fc5dddb3d394 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/CreateBranchOrTagAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/CreateBranchOrTagAction.java @@ -58,7 +58,7 @@ public class CreateBranchOrTagAction extends BasicAction { @Override protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { - return SvnStatusUtil.isUnderControl(vcs.getProject(), file); + return SvnStatusUtil.isUnderControl(vcs, file); } @Override diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/ignore/IgnoreGroupHelperAction.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/ignore/IgnoreGroupHelperAction.java index 9e3c37789697..cb49be1e29b9 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/ignore/IgnoreGroupHelperAction.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/ignore/IgnoreGroupHelperAction.java @@ -34,7 +34,7 @@ public class IgnoreGroupHelperAction { private boolean myAllAreIgnored; private FileIterationListener myListener; - public void update(@NotNull final AnActionEvent e) { + public void update(@NotNull AnActionEvent e) { myAllAreIgnored = true; myAllCanBeIgnored = true; @@ -53,24 +53,20 @@ public class IgnoreGroupHelperAction { Stream.of(files).allMatch(file -> isEnabled(vcs, file)); } - public void setFileIterationListener(final FileIterationListener listener) { + public void setFileIterationListener(FileIterationListener listener) { myListener = listener; } - private boolean isEnabledImpl(final SvnVcs vcs, final VirtualFile file) { - final ChangeListManager clManager = ChangeListManager.getInstance(vcs.getProject()); - - if (SvnStatusUtil.isIgnoredInAnySense(clManager, file)) { + private boolean isEnabledImpl(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { + if (SvnStatusUtil.isIgnoredInAnySense(vcs.getProject(), file)) { myAllCanBeIgnored = false; - return myAllAreIgnored | myAllCanBeIgnored; - } else if (clManager.isUnversioned(file)) { - // check parent - final VirtualFile parent = file.getParent(); - if (parent != null) { - if ((! SvnStatusUtil.isIgnoredInAnySense(clManager, parent)) && (! clManager.isUnversioned(parent))) { - myAllAreIgnored = false; - return myAllAreIgnored | myAllCanBeIgnored; - } + return myAllAreIgnored; + } + else if (ChangeListManager.getInstance(vcs.getProject()).isUnversioned(file)) { + VirtualFile parent = file.getParent(); + if (parent != null && SvnStatusUtil.isUnderControl(vcs, parent)) { + myAllAreIgnored = false; + return myAllCanBeIgnored; } } myAllCanBeIgnored = false; @@ -78,8 +74,8 @@ public class IgnoreGroupHelperAction { return false; } - protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull final VirtualFile file) { - final boolean result = isEnabledImpl(vcs, file); + protected boolean isEnabled(@NotNull SvnVcs vcs, @NotNull VirtualFile file) { + boolean result = isEnabledImpl(vcs, file); if (result) { myListener.onFileEnabled(file); }