IG: use ThreeState enum instead of inventing own
[idea/community.git] / platform / projectModel-api / src / com / intellij / openapi / module / ModuleComponent.java
1 // Copyright 2000-2018 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.openapi.module;
3
4 import com.intellij.openapi.components.BaseComponent;
5 import com.intellij.openapi.project.Project;
6
7 /**
8  * @deprecated Components are deprecated. If you register a class as a module component it will be loaded, its instance will be created and
9  * {@link #initComponent()}, {@link #moduleAdded()} methods will be called for each module even if user doesn't use
10  * any feature of your plugin. Also, plugins declaring module components do not support dynamic loading.
11  * <p/>
12  * Please see <a href="http://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_components.html">SDK Docs</a> for guidelines on migrating to other APIs.
13  */
14 @Deprecated
15 public interface ModuleComponent extends BaseComponent {
16   /**
17    * Invoked when the project corresponding to this component instance is opened.<p>
18    * Note that components may be created for even unopened projects and this method can be never
19    * invoked for a particular component instance (for example for default project).
20    *
21    * @deprecated Please use {@link com.intellij.openapi.project.ProjectManager#TOPIC} ({@link com.intellij.openapi.project.ProjectManagerListener#projectOpened(Project)} (Project, Module)})
22    */
23   @Deprecated
24   default void projectOpened() {
25   }
26
27   /**
28    * Invoked when the project corresponding to this component instance is closed.<p>
29    * Note that components may be created for even unopened projects and this method can be never
30    * invoked for a particular component instance (for example for default project).
31    *
32    * @deprecated Please use {@link com.intellij.openapi.project.ProjectManager#TOPIC} ({@link com.intellij.openapi.project.ProjectManagerListener#projectClosed(Project)} (Project, Module)})
33    */
34   @Deprecated
35   default void projectClosed() {
36   }
37
38   /**
39    * Invoked when the module corresponding to this component instance has been completely
40    * loaded and added to the project.
41    * <p>
42    * @deprecated Consider to use {@link com.intellij.ProjectTopics#MODULES} ({@link com.intellij.openapi.project.ModuleListener#moduleAdded(Project, Module)})
43    */
44   @Deprecated
45   default void moduleAdded() {
46   }
47 }