scripting: Replace getAnalysis() by createScriptedAnalysis()

For consistency with the getTraceAnalysis method, the method to create a
scripted analysis also takes the trace in parameter, along with the
name. It also deprecates the getAnalysis method.

[Added] createScriptedAnalysis(ITmfTrace, String) method
[Deprecated] The getAnalysis(String) is deprecated

Change-Id: I3631d830cef9d89d39b1304e5d1a1f58da179c70
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/151117
Tested-by: CI Bot
diff --git a/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/src/org/eclipse/tracecompass/incubator/scripting/core/tests/analysis/AnalysisModuleTest.java b/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/src/org/eclipse/tracecompass/incubator/scripting/core/tests/analysis/AnalysisModuleTest.java
index 846ab89..f678afb 100644
--- a/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/src/org/eclipse/tracecompass/incubator/scripting/core/tests/analysis/AnalysisModuleTest.java
+++ b/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/src/org/eclipse/tracecompass/incubator/scripting/core/tests/analysis/AnalysisModuleTest.java
@@ -56,7 +56,7 @@
 
         ITmfTrace trace = ScriptingTestUtils.getTrace();
         try {
-            ScriptedAnalysis analysis = scriptModule.getAnalysis(ANALYSIS_NAME);
+            ScriptedAnalysis analysis = scriptModule.createScriptedAnalysis(trace, ANALYSIS_NAME);
             assertNotNull(analysis);
 
             Iterator<ITmfEvent> eventIterator = analysis.getEventIterator();
diff --git a/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/stubs/org/eclipse/tracecompass/incubator/scripting/core/tests/stubs/ScriptingTestUtils.java b/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/stubs/org/eclipse/tracecompass/incubator/scripting/core/tests/stubs/ScriptingTestUtils.java
index 8358fde..b088d46 100644
--- a/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/stubs/org/eclipse/tracecompass/incubator/scripting/core/tests/stubs/ScriptingTestUtils.java
+++ b/analyses/org.eclipse.tracecompass.incubator.scripting.core.tests/stubs/org/eclipse/tracecompass/incubator/scripting/core/tests/stubs/ScriptingTestUtils.java
@@ -81,7 +81,7 @@
     public static ScriptedAnalysis getAnalysis(ITmfTrace trace, String analysisName) {
         AnalysisScriptingModule scriptModule = new AnalysisScriptingModule();
 
-        ScriptedAnalysis analysis = scriptModule.getAnalysis(analysisName);
+        ScriptedAnalysis analysis = scriptModule.createScriptedAnalysis(trace, analysisName);
         assertNotNull(analysis);
 
         return analysis;
diff --git a/analyses/org.eclipse.tracecompass.incubator.scripting.core/src/org/eclipse/tracecompass/incubator/scripting/core/analysis/AnalysisScriptingModule.java b/analyses/org.eclipse.tracecompass.incubator.scripting.core/src/org/eclipse/tracecompass/incubator/scripting/core/analysis/AnalysisScriptingModule.java
index 07d5bdc..3db87d9 100644
--- a/analyses/org.eclipse.tracecompass.incubator.scripting.core/src/org/eclipse/tracecompass/incubator/scripting/core/analysis/AnalysisScriptingModule.java
+++ b/analyses/org.eclipse.tracecompass.incubator.scripting.core/src/org/eclipse/tracecompass/incubator/scripting/core/analysis/AnalysisScriptingModule.java
@@ -9,6 +9,8 @@
 
 package org.eclipse.tracecompass.incubator.scripting.core.analysis;
 
+import java.util.Objects;
+
 import org.eclipse.ease.modules.WrapToScript;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
@@ -50,8 +52,11 @@
      *            The name of the analysis
      * @return The new analysis, for the active trace, or <code>null</code> if
      *         there is no active trace.
+     * @deprecated Use {@module #createScriptedAnalysis(ITmfTrace, String)}
+     *             instead
      */
     @WrapToScript
+    @Deprecated
     public @Nullable ScriptedAnalysis getAnalysis(String name) {
         ITmfTrace activeTrace = TmfTraceManager.getInstance().getActiveTrace();
         if (activeTrace == null) {
@@ -113,4 +118,21 @@
         return null;
     }
 
+    /**
+     * Create a scripted analysis with the given name for a trace. If the trace
+     * is <code>null</code>, it will throw a {@link NullPointerException}.
+     *
+     * @param trace
+     *            The trace being analyzed.
+     * @param analysisName
+     *            The name of the analysis to create. If backends like state
+     *            systems are saved by this analysis, this name will be used to
+     *            retrieve the previous data.
+     * @return The module
+     */
+    @WrapToScript
+    public ScriptedAnalysis createScriptedAnalysis(@Nullable ITmfTrace trace, String analysisName) {
+        return new ScriptedAnalysis(Objects.requireNonNull(trace, "Trace should not be null"), analysisName); //$NON-NLS-1$
+    }
+
 }