From 4557afed00b087253eb72d9cf0915e9cf0a34d60 Mon Sep 17 00:00:00 2001 From: Leonid Shalupov Date: Mon, 20 May 2019 19:39:20 +0200 Subject: [PATCH] treePM: get rid of duplicate code for ProjectImpl, ModuleImpl, ProjectManagerImpl Now all code is reused with minimal changes GitOrigin-RevId: 140c89e13c4011a76dc67083ebb40e9525e20542 --- .../openapi/project/impl/ProjectManagerImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java index 4dca9d95a30b..322b66021ffd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java @@ -289,7 +289,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { } @NotNull - private static ProjectEx doCreateProject(@Nullable String projectName, @NotNull String filePath) { + protected ProjectEx doCreateProject(@Nullable String projectName, @NotNull String filePath) { return new ProjectImpl(FileUtilRt.toSystemIndependentName(filePath), projectName); } @@ -384,6 +384,8 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { Runnable process = () -> { assertInTransaction(); + beforeProjectOpened(project); + TransactionGuard.getInstance().submitTransactionAndWait(() -> fireProjectOpened(project)); StartupManagerImpl startupManager = (StartupManagerImpl)StartupManager.getInstance(project); @@ -420,6 +422,9 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { return true; } + protected void beforeProjectOpened(Project project) { + } + private static void assertInTransaction() { if (!ApplicationManager.getApplication().isUnitTestMode() && ApplicationManager.getApplication().isInternal() && @@ -753,7 +758,7 @@ public class ProjectManagerImpl extends ProjectManagerEx implements Disposable { LOG.assertTrue(removed); } - private void fireProjectOpened(@NotNull Project project) { + protected void fireProjectOpened(@NotNull Project project) { if (LOG.isDebugEnabled()) { LOG.debug("projectOpened"); }