tmf: bug 493661 Return analyses who apply to experiment
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.core / src / org / eclipse / tracecompass / tmf / core / analysis / TmfAnalysisModuleHelperConfigElement.java
index 8487f54088b2526d0bdad3146465766c80b07a10..8cce5b15b9f8b093d45ad3dd60f5ce4345b29866 100644 (file)
@@ -24,6 +24,7 @@ import org.eclipse.core.runtime.InvalidRegistryObjectException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.tracecompass.internal.tmf.core.Activator;
 import org.eclipse.tracecompass.internal.tmf.core.analysis.TmfAnalysisModuleSourceConfigElement;
+import org.eclipse.tracecompass.tmf.core.analysis.requirements.TmfAbstractAnalysisRequirement;
 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
 import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType;
 import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper;
@@ -106,8 +107,7 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
         return ContributorFactoryOSGi.resolve(fCe.getContributor());
     }
 
-    @Override
-    public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
+    private boolean appliesToTraceClass(Class<? extends ITmfTrace> traceclass) {
         boolean applies = false;
 
         /* Get the module's applying tracetypes */
@@ -139,6 +139,17 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
         return applies;
     }
 
+    @Override
+    public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
+        boolean applies = appliesToTraceClass(traceclass);
+
+        /* Check if it applies to an experiment */
+        if (!applies && TmfExperiment.class.isAssignableFrom(traceclass)) {
+            applies = appliesToExperiment();
+        }
+        return applies;
+    }
+
     @Override
     public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() {
         Set<Class<? extends ITmfTrace>> traceTypes = new HashSet<>();
@@ -153,7 +164,7 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
     }
 
     @Override
-    public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
+    public Iterable<TmfAbstractAnalysisRequirement> getAnalysisRequirements() {
         IAnalysisModule module = createModule();
         if (module != null) {
             return module.getAnalysisRequirements();
@@ -182,14 +193,14 @@ public class TmfAnalysisModuleHelperConfigElement implements IAnalysisModuleHelp
     public IAnalysisModule newModule(ITmfTrace trace) throws TmfAnalysisException {
 
         /* Check if it applies to trace itself */
-        boolean applies = appliesToTraceType(trace.getClass());
+        boolean applies = appliesToTraceClass(trace.getClass());
         /*
          * If the trace is an experiment, check if this module would apply to an
          * experiment should it apply to one of its traces.
          */
         if (!applies && (trace instanceof TmfExperiment) && appliesToExperiment()) {
             for (ITmfTrace expTrace : TmfTraceManager.getTraceSet(trace)) {
-                if (appliesToTraceType(expTrace.getClass())) {
+                if (appliesToTraceClass(expTrace.getClass())) {
                     applies = true;
                     break;
                 }
This page took 0.030378 seconds and 5 git commands to generate.