run configurations: allow a run configuration producer to easily check if the context...
authorSergey Simonchik <sergey.simonchik@jetbrains.com>
Tue, 11 Oct 2016 10:26:14 +0000 (13:26 +0300)
committerSergey Simonchik <sergey.simonchik@jetbrains.com>
Tue, 11 Oct 2016 10:26:34 +0000 (13:26 +0300)
platform/lang-api/src/com/intellij/execution/actions/ConfigurationContext.java

index a4c4b0cf8db742b2d8cbd7070696430b17e7fc46..ebaa48dc15eb216d805df412925eb466492cfaf9 100644 (file)
@@ -295,6 +295,20 @@ public class ConfigurationContext {
     return null;
   }
 
+  /**
+   * Checks if the original run configuration matches the passed type.
+   * If the original run configuration is undefined, the check is passed too.
+   * An original run configuration is a run configuration associated with given context.
+   * For example, it could be a test framework run configuration that had been launched
+   * and that had brought a result test tree on which a right-click action was performed (and this context was created). In this case, other run configuration producers might want to not work on such elements.
+   *
+   * @param type {@link ConfigurationType} instance to match the original run configuration
+   * @return true if the original run configuration is of the same type or it's undefined; false otherwise
+   */
+  public boolean isCompatibleWithOriginalRunConfiguration(@NotNull ConfigurationType type) {
+    return myRuntimeConfiguration == null || ConfigurationTypeUtil.equals(myRuntimeConfiguration.getType(), type);
+  }
+
   @Deprecated
   @Nullable
   public List<RuntimeConfigurationProducer> findPreferredProducers() {