Commit | Line | Data |
---|---|---|
b3b03da0 | 1 | /******************************************************************************* |
60ae41e1 | 2 | * Copyright (c) 2013, 2014 École Polytechnique de Montréal |
b3b03da0 GB |
3 | * |
4 | * All rights reserved. This program and the accompanying materials are | |
5 | * made available under the terms of the Eclipse Public License v1.0 which | |
6 | * accompanies this distribution, and is available at | |
7 | * http://www.eclipse.org/legal/epl-v10.html | |
8 | * | |
9 | * Contributors: | |
10 | * Geneviève Bastien - Initial API and implementation | |
7076c47b | 11 | * Guilliano Molaire - Implementation of requirements and valid trace types getters |
b3b03da0 GB |
12 | *******************************************************************************/ |
13 | ||
2bdf0193 | 14 | package org.eclipse.tracecompass.tmf.tests.stubs.analysis; |
b3b03da0 | 15 | |
5db5a3a4 AM |
16 | import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; |
17 | ||
63c43609 MR |
18 | import java.util.Collections; |
19 | ||
b3b03da0 | 20 | import org.eclipse.core.runtime.Platform; |
54eae41f | 21 | import org.eclipse.jdt.annotation.NonNull; |
2bdf0193 AM |
22 | import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule; |
23 | import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper; | |
24 | import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement; | |
25 | import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException; | |
26 | import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; | |
27 | import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub; | |
28 | import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub2; | |
b3b03da0 GB |
29 | import org.osgi.framework.Bundle; |
30 | ||
7076c47b GM |
31 | import com.google.common.collect.ImmutableList; |
32 | ||
b3b03da0 GB |
33 | /** |
34 | * Analysis Module Helper for the stub analysis source | |
35 | * | |
36 | * @author Geneviève Bastien | |
37 | */ | |
38 | public class AnalysisModuleTestHelper implements IAnalysisModuleHelper { | |
39 | ||
40 | /** | |
41 | * Enum to select an analysis module for this stub | |
42 | */ | |
43 | public enum moduleStubEnum { | |
44 | /** Test analysis */ | |
45 | TEST, | |
4d2857be GB |
46 | /** Test analysis 2 */ |
47 | TEST2 | |
b3b03da0 GB |
48 | } |
49 | ||
50 | private moduleStubEnum fModule; | |
51 | ||
52 | /** | |
53 | * Constructor | |
54 | * | |
55 | * @param module | |
56 | * The type identifying the module for this helper | |
57 | */ | |
58 | public AnalysisModuleTestHelper(moduleStubEnum module) { | |
59 | fModule = module; | |
60 | } | |
61 | ||
62 | @Override | |
63 | public String getId() { | |
ba27dd38 | 64 | return getName(); |
b3b03da0 GB |
65 | } |
66 | ||
67 | @Override | |
68 | public String getName() { | |
5db5a3a4 | 69 | return checkNotNull(fModule.name()); |
b3b03da0 GB |
70 | } |
71 | ||
72 | @Override | |
73 | public boolean isAutomatic() { | |
74 | return false; | |
75 | } | |
76 | ||
ff7b95a5 GB |
77 | @Override |
78 | public boolean appliesToExperiment() { | |
79 | return false; | |
80 | } | |
81 | ||
b3b03da0 GB |
82 | @Override |
83 | public String getHelpText() { | |
84 | return ""; | |
85 | } | |
86 | ||
87 | @Override | |
54eae41f GB |
88 | public String getHelpText(@NonNull ITmfTrace trace) { |
89 | return ""; | |
90 | } | |
91 | ||
92 | @Override | |
b3b03da0 GB |
93 | public String getIcon() { |
94 | return ""; | |
95 | } | |
96 | ||
97 | @Override | |
98 | public Bundle getBundle() { | |
2c7fb5af | 99 | return Platform.getBundle("org.eclipse.tracecompass.tmf.core.tests"); |
b3b03da0 GB |
100 | } |
101 | ||
102 | @Override | |
103 | public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) { | |
104 | switch (fModule) { | |
105 | case TEST: | |
106 | return TmfTraceStub.class.isAssignableFrom(traceclass); | |
4d2857be GB |
107 | case TEST2: |
108 | return TmfTraceStub2.class.isAssignableFrom(traceclass); | |
b3b03da0 GB |
109 | default: |
110 | return false; | |
111 | } | |
112 | } | |
113 | ||
114 | @Override | |
115 | public IAnalysisModule newModule(ITmfTrace trace) throws TmfAnalysisException { | |
116 | IAnalysisModule module = null; | |
117 | switch (fModule) { | |
118 | case TEST: | |
119 | module = new TestAnalysis(); | |
120 | module.setName(getName()); | |
121 | module.setId(getId()); | |
122 | module.setAutomatic(isAutomatic()); | |
f479550c GB |
123 | if (!module.setTrace(trace)) { |
124 | module.dispose(); | |
125 | module = null; | |
126 | } | |
b3b03da0 | 127 | break; |
4d2857be GB |
128 | case TEST2: |
129 | module = new TestAnalysis2(); | |
b3b03da0 GB |
130 | module.setName(getName()); |
131 | module.setId(getId()); | |
132 | module.setAutomatic(isAutomatic()); | |
f479550c GB |
133 | if (!module.setTrace(trace)) { |
134 | module.dispose(); | |
135 | module = null; | |
136 | } | |
b3b03da0 GB |
137 | break; |
138 | default: | |
139 | break; | |
140 | ||
141 | } | |
142 | return module; | |
143 | } | |
144 | ||
63c43609 MR |
145 | @Override |
146 | public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() { | |
7076c47b GM |
147 | return ImmutableList.<Class<? extends ITmfTrace>> of( |
148 | TmfTraceStub.class, | |
149 | TmfTraceStub2.class); | |
63c43609 MR |
150 | } |
151 | ||
152 | @Override | |
153 | public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() { | |
7076c47b GM |
154 | switch (fModule) { |
155 | case TEST: | |
156 | return ImmutableList.of( | |
157 | AnalysisRequirementFactory.REQUIREMENT_1, | |
158 | AnalysisRequirementFactory.REQUIREMENT_3); | |
159 | case TEST2: | |
160 | return ImmutableList.of( | |
161 | AnalysisRequirementFactory.REQUIREMENT_2, | |
162 | AnalysisRequirementFactory.REQUIREMENT_3); | |
163 | default: | |
164 | return Collections.EMPTY_SET; | |
165 | } | |
63c43609 | 166 | } |
ff7b95a5 | 167 | |
b3b03da0 | 168 | } |