TMF: Have IAnalysisModule#setTrace return boolean instead of throw exception
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / stubs / org / eclipse / tracecompass / tmf / tests / stubs / analysis / AnalysisModuleTestHelper.java
1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 École Polytechnique de Montréal
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
11 * Guilliano Molaire - Implementation of requirements and valid trace types getters
12 *******************************************************************************/
13
14 package org.eclipse.tracecompass.tmf.tests.stubs.analysis;
15
16 import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
17
18 import java.util.Collections;
19
20 import org.eclipse.core.runtime.Platform;
21 import org.eclipse.jdt.annotation.NonNull;
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;
29 import org.osgi.framework.Bundle;
30
31 import com.google.common.collect.ImmutableList;
32
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,
46 /** Test analysis 2 */
47 TEST2
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() {
64 return getName();
65 }
66
67 @Override
68 public String getName() {
69 return checkNotNull(fModule.name());
70 }
71
72 @Override
73 public boolean isAutomatic() {
74 return false;
75 }
76
77 @Override
78 public boolean appliesToExperiment() {
79 return false;
80 }
81
82 @Override
83 public String getHelpText() {
84 return "";
85 }
86
87 @Override
88 public String getHelpText(@NonNull ITmfTrace trace) {
89 return "";
90 }
91
92 @Override
93 public String getIcon() {
94 return "";
95 }
96
97 @Override
98 public Bundle getBundle() {
99 return Platform.getBundle("org.eclipse.tracecompass.tmf.core.tests");
100 }
101
102 @Override
103 public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
104 switch (fModule) {
105 case TEST:
106 return TmfTraceStub.class.isAssignableFrom(traceclass);
107 case TEST2:
108 return TmfTraceStub2.class.isAssignableFrom(traceclass);
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());
123 if (!module.setTrace(trace)) {
124 module.dispose();
125 module = null;
126 }
127 break;
128 case TEST2:
129 module = new TestAnalysis2();
130 module.setName(getName());
131 module.setId(getId());
132 module.setAutomatic(isAutomatic());
133 if (!module.setTrace(trace)) {
134 module.dispose();
135 module = null;
136 }
137 break;
138 default:
139 break;
140
141 }
142 return module;
143 }
144
145 @Override
146 public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() {
147 return ImmutableList.<Class<? extends ITmfTrace>> of(
148 TmfTraceStub.class,
149 TmfTraceStub2.class);
150 }
151
152 @Override
153 public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
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 }
166 }
167
168 }
This page took 0.034347 seconds and 5 git commands to generate.