tmf: Move the analysis requirements to their own package
[deliverable/tracecompass.git] / tmf / 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 java.util.Collections;
17
18 import org.eclipse.core.runtime.Platform;
19 import org.eclipse.jdt.annotation.NonNull;
20 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
21 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
22 import org.eclipse.tracecompass.tmf.core.analysis.requirements.TmfAnalysisRequirement;
23 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
24 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
25 import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
26 import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub2;
27 import org.osgi.framework.Bundle;
28
29 import com.google.common.collect.ImmutableList;
30
31 /**
32 * Analysis Module Helper for the stub analysis source
33 *
34 * @author Geneviève Bastien
35 */
36 public class AnalysisModuleTestHelper implements IAnalysisModuleHelper {
37
38 /**
39 * Enum to select an analysis module for this stub
40 */
41 public enum moduleStubEnum {
42 /** Test analysis */
43 TEST,
44 /** Test analysis 2 */
45 TEST2
46 }
47
48 private moduleStubEnum fModule;
49
50 /**
51 * Constructor
52 *
53 * @param module
54 * The type identifying the module for this helper
55 */
56 public AnalysisModuleTestHelper(moduleStubEnum module) {
57 fModule = module;
58 }
59
60 @Override
61 public String getId() {
62 return getName();
63 }
64
65 @Override
66 public String getName() {
67 return fModule.name();
68 }
69
70 @Override
71 public boolean isAutomatic() {
72 return false;
73 }
74
75 @Override
76 public boolean appliesToExperiment() {
77 return false;
78 }
79
80 @Override
81 public String getHelpText() {
82 return "";
83 }
84
85 @Override
86 public String getHelpText(@NonNull ITmfTrace trace) {
87 return "";
88 }
89
90 @Override
91 public String getIcon() {
92 return "";
93 }
94
95 @Override
96 public Bundle getBundle() {
97 return Platform.getBundle("org.eclipse.tracecompass.tmf.core.tests");
98 }
99
100 @Override
101 public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
102 switch (fModule) {
103 case TEST:
104 return TmfTraceStub.class.isAssignableFrom(traceclass);
105 case TEST2:
106 return TmfTraceStub2.class.isAssignableFrom(traceclass);
107 default:
108 return false;
109 }
110 }
111
112 @Override
113 public IAnalysisModule newModule(ITmfTrace trace) throws TmfAnalysisException {
114 IAnalysisModule module = null;
115 switch (fModule) {
116 case TEST:
117 module = new TestAnalysis();
118 module.setName(getName());
119 module.setId(getId());
120 module.setAutomatic(isAutomatic());
121 if (!module.setTrace(trace)) {
122 module.dispose();
123 module = null;
124 }
125 break;
126 case TEST2:
127 module = new TestAnalysis2();
128 module.setName(getName());
129 module.setId(getId());
130 module.setAutomatic(isAutomatic());
131 if (!module.setTrace(trace)) {
132 module.dispose();
133 module = null;
134 }
135 break;
136 default:
137 break;
138
139 }
140 return module;
141 }
142
143 @Override
144 public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() {
145 return ImmutableList.<Class<? extends ITmfTrace>> of(
146 TmfTraceStub.class,
147 TmfTraceStub2.class);
148 }
149
150 @Override
151 public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
152 switch (fModule) {
153 case TEST:
154 return ImmutableList.of(
155 AnalysisRequirementFactory.REQUIREMENT_1,
156 AnalysisRequirementFactory.REQUIREMENT_3);
157 case TEST2:
158 return ImmutableList.of(
159 AnalysisRequirementFactory.REQUIREMENT_2,
160 AnalysisRequirementFactory.REQUIREMENT_3);
161 default:
162 return Collections.EMPTY_SET;
163 }
164 }
165
166 }
This page took 0.034777 seconds and 5 git commands to generate.