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
CommitLineData
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 14package org.eclipse.tracecompass.tmf.tests.stubs.analysis;
b3b03da0 15
5db5a3a4
AM
16import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
17
63c43609
MR
18import java.util.Collections;
19
b3b03da0 20import org.eclipse.core.runtime.Platform;
54eae41f 21import org.eclipse.jdt.annotation.NonNull;
2bdf0193
AM
22import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
23import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
24import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement;
25import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
26import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
27import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
28import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub2;
b3b03da0
GB
29import org.osgi.framework.Bundle;
30
7076c47b
GM
31import 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 */
38public 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}
This page took 0.056624 seconds and 5 git commands to generate.