From f0320f824b0a78b24b448ee61e791aaece2de7ba Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Sun, 16 Feb 2014 18:54:30 +0400 Subject: [PATCH] unnecessary methods from HgVersion deleted; HgVcs used instead of project; IllegalArgumentException thrown instead if assertion --- .../zmlx/hg4idea/repo/HgRepositoryImpl.java | 14 +++++++++----- .../zmlx/hg4idea/repo/HgRepositoryReader.java | 14 ++++++-------- .../src/org/zmlx/hg4idea/util/HgVersion.java | 18 +++++++----------- .../test/repo/HgRealRepositoryReaderTest.java | 2 +- .../test/repo/HgRepositoryReaderTest.java | 2 +- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryImpl.java b/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryImpl.java index 70f85d2a82d0..898dbfab8037 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryImpl.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryImpl.java @@ -53,20 +53,24 @@ public class HgRepositoryImpl extends RepositoryImpl implements HgRepository { @SuppressWarnings("ConstantConditions") - private HgRepositoryImpl(@NotNull VirtualFile rootDir, @NotNull Project project, + private HgRepositoryImpl(@NotNull VirtualFile rootDir, @NotNull HgVcs vcs, @NotNull Disposable parentDisposable) { - super(project, rootDir, parentDisposable); + super(vcs.getProject(), rootDir, parentDisposable); myHgDir = rootDir.findChild(HgUtil.DOT_HG); assert myHgDir != null : ".hg directory wasn't found under " + rootDir.getPresentableUrl(); - myReader = new HgRepositoryReader(project, VfsUtilCore.virtualToIoFile(myHgDir)); - myConfig = HgConfig.getInstance(project, rootDir); + myReader = new HgRepositoryReader(vcs, VfsUtilCore.virtualToIoFile(myHgDir)); + myConfig = HgConfig.getInstance(getProject(), rootDir); update(); } @NotNull public static HgRepository getInstance(@NotNull VirtualFile root, @NotNull Project project, @NotNull Disposable parentDisposable) { - HgRepositoryImpl repository = new HgRepositoryImpl(root, project, parentDisposable); + HgVcs vcs = HgVcs.getInstance(project); + if (vcs == null) { + throw new IllegalArgumentException("Vcs not found for project " + project); + } + HgRepositoryImpl repository = new HgRepositoryImpl(root, vcs, parentDisposable); repository.setupUpdater(); return repository; } diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryReader.java b/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryReader.java index 043449a2e086..e35d7892d331 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryReader.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/repo/HgRepositoryReader.java @@ -19,7 +19,6 @@ import com.intellij.dvcs.repo.RepoStateException; import com.intellij.dvcs.repo.Repository; import com.intellij.dvcs.repo.RepositoryUtil; import com.intellij.openapi.components.ServiceManager; -import com.intellij.openapi.project.Project; import com.intellij.vcs.log.Hash; import com.intellij.vcs.log.VcsLogObjectsFactory; import org.jetbrains.annotations.NotNull; @@ -57,11 +56,9 @@ public class HgRepositoryReader { @NotNull private final VcsLogObjectsFactory myVcsObjectsFactory; private final boolean myStatusInBranchFile; - public HgRepositoryReader(@NotNull Project project, @NotNull File hgDir) { + public HgRepositoryReader(@NotNull HgVcs vcs, @NotNull File hgDir) { myHgDir = hgDir; RepositoryUtil.assertFileExists(myHgDir, ".hg directory not found in " + myHgDir); - HgVcs vcs = HgVcs.getInstance(project); - assert vcs != null : "Vcs not found for project " + project; HgVersion version = vcs.getVersion(); myStatusInBranchFile = version.hasBranch2Served(); myCacheDir = new File(myHgDir, "cache"); @@ -71,7 +68,7 @@ public class HgRepositoryReader { myCurrentBookmark = new File(myHgDir, "bookmarks.current"); myLocalTagsFile = new File(myHgDir, "localtags"); myTagsFile = new File(myHgDir.getParentFile(), ".hgtags"); - myVcsObjectsFactory = ServiceManager.getService(project, VcsLogObjectsFactory.class); + myVcsObjectsFactory = ServiceManager.getService(vcs.getProject(), VcsLogObjectsFactory.class); } /** @@ -80,9 +77,10 @@ public class HgRepositoryReader { @NotNull private static File identifyBranchHeadFile(@NotNull HgVersion version, @NotNull File parentCacheFile) { //before 2.5 only branchheads exist; branchheads-served after mercurial 2.5; branch2-served after 2.9; - return version.hasBranch2Served() - ? new File(parentCacheFile, "branch2-served") - : version.hasBranchHeadsServed() ? new File(parentCacheFile, "branchheads-served") : new File(parentCacheFile, "branchheads"); + String branchFileName = version.hasBranch2Served() + ? "branch2-served" + : version.hasBranchHeadsServed() ? "branchheads-served" : "branchheads"; + return new File(parentCacheFile, branchFileName); } /** diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgVersion.java b/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgVersion.java index 9ead36c857d3..910a1a7239d6 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgVersion.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/util/HgVersion.java @@ -144,31 +144,31 @@ public final class HgVersion implements Comparable { * @return true if the version is supported by the plugin */ public boolean isSupported() { - return !isNull() && compareTo(MIN) >= 0; + return compareTo(MIN) >= 0; } public boolean isAmendSupported() { - return !isNull() && compareTo(AMEND_SUPPORTED) >= 0; + return compareTo(AMEND_SUPPORTED) >= 0; } public boolean isBuiltInFunctionSupported() { - return !isNull() && compareTo(BUILT_IN_FUNCTION_SUPPORTED) >= 0; + return compareTo(BUILT_IN_FUNCTION_SUPPORTED) >= 0; } public boolean isLargeFilesWithFollowSupported() { - return !isNull() && compareTo(LARGEFILES_WITH_FOLLOW_SUPPORTED) >= 0; + return compareTo(LARGEFILES_WITH_FOLLOW_SUPPORTED) >= 0; } public boolean isParentRevisionTemplateSupported() { - return !isNull() && compareTo(PARENT_REVISION_TEMPLATES_SUPPORTED) >= 0; + return compareTo(PARENT_REVISION_TEMPLATES_SUPPORTED) >= 0; } public boolean hasBranchHeadsServed() { - return !isNull() && compareTo(BRANCH_HEADS_SERVED_FILE_EXIST) >= 0 && compareTo(BRANCH2_SERVED_FILE_EXIST) < 0; + return compareTo(BRANCH_HEADS_SERVED_FILE_EXIST) >= 0 && compareTo(BRANCH2_SERVED_FILE_EXIST) < 0; } public boolean hasBranch2Served() { - return !isNull() && compareTo(BRANCH2_SERVED_FILE_EXIST) >= 0; + return compareTo(BRANCH2_SERVED_FILE_EXIST) >= 0; } public boolean hasUnsupportedExtensions() { @@ -221,8 +221,4 @@ public final class HgVersion implements Comparable { public String toString() { return myMajor + "." + myMiddle + "." + myMinor; } - - public boolean isNull() { - return myMajor == 0 && myMiddle == 0 && myMinor == 0; - } } diff --git a/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRealRepositoryReaderTest.java b/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRealRepositoryReaderTest.java index 1d20e1da7c40..0702f44cc4d8 100644 --- a/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRealRepositoryReaderTest.java +++ b/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRealRepositoryReaderTest.java @@ -43,7 +43,7 @@ public class HgRealRepositoryReaderTest extends HgPlatformTest { File hgDir = new File(myRepository.getPath(), ".hg"); assertTrue(hgDir.exists()); createBranchesAndTags(); - myRepositoryReader = new HgRepositoryReader(myProject, hgDir); + myRepositoryReader = new HgRepositoryReader(myVcs, hgDir); } public void testMergeState() { diff --git a/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRepositoryReaderTest.java b/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRepositoryReaderTest.java index dec100404c24..9aeda2bda272 100644 --- a/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRepositoryReaderTest.java +++ b/plugins/hg4idea/testSrc/hg4idea/test/repo/HgRepositoryReaderTest.java @@ -63,7 +63,7 @@ public class HgRepositoryReaderTest extends HgPlatformTest { FileUtil.copy(testTagFile, new File(myHgDir.getParentFile(), ".hgtags")); FileUtil.copy(testLocalTagFile, new File(myHgDir, "localtags")); - myRepositoryReader = new HgRepositoryReader(myProject, myHgDir); + myRepositoryReader = new HgRepositoryReader(myVcs, myHgDir); myBranches = readBranches(); myBookmarks = readRefs(testBookmarkFile); myTags = readRefs(testTagFile);