f9bb61870eb9e47b927e06a7f21de4f325488469
[idea/community.git] / platform / lang-impl / src / com / intellij / util / indexing / FileBasedIndexPluginListener.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.util.indexing;
3
4 import com.intellij.ide.plugins.DynamicPluginListener;
5 import com.intellij.ide.plugins.IdeaPluginDescriptor;
6 import com.intellij.openapi.project.DumbService;
7 import com.intellij.openapi.project.Project;
8 import com.intellij.openapi.project.ProjectManager;
9 import org.jetbrains.annotations.NotNull;
10
11 class FileBasedIndexPluginListener implements DynamicPluginListener {
12   @NotNull
13   private final FileBasedIndexSwitcher mySwitcher;
14
15   FileBasedIndexPluginListener(@NotNull FileBasedIndexImpl index) {
16     mySwitcher = new FileBasedIndexSwitcher(index);
17   }
18
19   @Override
20   public void beforePluginLoaded(@NotNull IdeaPluginDescriptor pluginDescriptor) {
21     beforePluginSetChanged();
22   }
23
24   @Override
25   public void beforePluginUnload(@NotNull IdeaPluginDescriptor pluginDescriptor, boolean isUpdate) {
26     beforePluginSetChanged();
27   }
28
29   @Override
30   public void pluginLoaded(@NotNull IdeaPluginDescriptor pluginDescriptor) {
31     afterPluginSetChanged();
32   }
33
34   @Override
35   public void pluginUnloaded(@NotNull IdeaPluginDescriptor pluginDescriptor, boolean isUpdate) {
36     afterPluginSetChanged();
37   }
38
39   private void beforePluginSetChanged() {
40     mySwitcher.turnOff();
41   }
42
43   private void afterPluginSetChanged() {
44     mySwitcher.turnOn();
45   }
46 }