[project model api] annotate classes and interfaces from project model API as NonExte...
authornik <Nikolay.Chashnikov@jetbrains.com>
Thu, 26 Dec 2019 11:54:25 +0000 (14:54 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 26 Dec 2019 12:01:26 +0000 (12:01 +0000)
Plugins aren't supposed to provide their own implementations of these classes, and such implementations may cause problems when we start using different storage for the project model.

GitOrigin-RevId: 9233e3cf142c05463d9429f6cc28a2760c010adc

platform/projectModel-api/src/com/intellij/openapi/module/ModifiableModuleModel.java
platform/projectModel-api/src/com/intellij/openapi/module/ModuleManager.java
platform/projectModel-api/src/com/intellij/openapi/module/ModulePointer.java
platform/projectModel-api/src/com/intellij/openapi/module/ModulePointerManager.java
platform/projectModel-api/src/com/intellij/openapi/project/ProjectLocator.java
platform/projectModel-api/src/com/intellij/openapi/project/ProjectManager.java
platform/projectModel-api/src/com/intellij/openapi/projectRoots/ProjectJdkTable.java
platform/projectModel-api/src/com/intellij/openapi/projectRoots/Sdk.java

index 2602a61fc512d734f6e71d09560623ad431755d3..14ddf5eb6948f429be580fab2fcda2128e75370a 100644 (file)
@@ -2,6 +2,7 @@
 package com.intellij.openapi.module;
 
 import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.annotations.SystemIndependent;
@@ -15,6 +16,7 @@ import java.util.Map;
  *
  * @see ModuleManager#getModifiableModel()
  */
+@ApiStatus.NonExtendable
 public interface ModifiableModuleModel {
   /**
    * Returns the list of all modules in the project. Same as {@link ModuleManager#getModules()}.
index 9d84cb28d30e0682731789e7c56736062a987582..a9fd4fc37567d5c9c079bc60b787ee4a8572e584 100644 (file)
@@ -33,6 +33,7 @@ import java.util.List;
 /**
  * Provides services for working with the modules of a project.
  */
+@ApiStatus.NonExtendable
 public abstract class ModuleManager extends SimpleModificationTracker {
   /**
    * Returns the module manager instance for the current project.
index bf7fd7a48f47f449afd8c1e45903d8e0b056105d..a07859798f00b472d1a3d4e3bf25dece23c91936 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.openapi.module;
 
+import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -24,6 +25,7 @@ import org.jetbrains.annotations.Nullable;
  * This allows you to get a Module instance via {@link #getModule()} which is more efficient than {@link ModuleManager#findModuleByName}, and
  * {@link #getModuleName() module name} encapsulated inside the instance will be properly updated if the module it refers to is renamed.
  */
+@ApiStatus.NonExtendable
 public interface ModulePointer {
   @Nullable 
   Module getModule();
index 74e2abe9123a144de28613c5a3488dca74cb38b3..b851d1d58d1f47117bb9c72841c7b37b3b7a851f 100644 (file)
@@ -17,8 +17,10 @@ package com.intellij.openapi.module;
 
 import com.intellij.openapi.components.ServiceManager;
 import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 
+@ApiStatus.NonExtendable
 public abstract class ModulePointerManager {
   public static ModulePointerManager getInstance(@NotNull Project project) {
     return ServiceManager.getService(project, ModulePointerManager.class);
index a2a90eae57961933546199c48d666f61b6db49c2..9a0b8bd8bd7c5fed126c6e31dc5b8eba9e30be03 100644 (file)
@@ -9,6 +9,7 @@ import com.intellij.openapi.application.AccessToken;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.application.CachedSingletonsRegistry;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -16,6 +17,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+@ApiStatus.NonExtendable
 public abstract class ProjectLocator {
   // called very often by StubUpdatingIndex
   private static ProjectLocator ourInstance = CachedSingletonsRegistry.markCachedField(ProjectLocator.class);
index 64c6b3e6cc9c08bdaabea40ddcc89d071c598616..a06e1011a5614596f010a32e26669a76edab5262 100644 (file)
@@ -17,6 +17,7 @@ import java.nio.file.Path;
 /**
  * Provides project management.
  */
+@ApiStatus.NonExtendable
 public abstract class ProjectManager {
   public static final Topic<ProjectManagerListener> TOPIC = new Topic<>("Project open and close events", ProjectManagerListener.class);
 
index c29364cf0c980af349615f9d41b2e342eb38c61e..87324cfcd5d502bd1efbe912f2d0c592fc0f3f36 100644 (file)
@@ -16,6 +16,7 @@ import org.jetbrains.annotations.TestOnly;
 import java.util.EventListener;
 import java.util.List;
 
+@ApiStatus.NonExtendable
 public abstract class ProjectJdkTable {
   public static ProjectJdkTable getInstance() {
     return ServiceManager.getService(ProjectJdkTable.class);
index 6480d14849b6df45d7ab4d92427d8764238e4a0a..a6ea0532825a17cf3138a43722710621feb74a40 100644 (file)
@@ -19,6 +19,7 @@ import com.intellij.openapi.roots.ProjectRootManager;
 import com.intellij.openapi.roots.RootProvider;
 import com.intellij.openapi.util.UserDataHolder;
 import com.intellij.openapi.vfs.VirtualFile;
+import org.jetbrains.annotations.ApiStatus;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -28,6 +29,7 @@ import org.jetbrains.annotations.Nullable;
  * @see ProjectRootManager#getProjectSdk()
  * @see SdkTracker
  */
+@ApiStatus.NonExtendable
 public interface Sdk extends UserDataHolder {
   @NotNull
   SdkTypeId getSdkType();