362740eca84711d47ba53cea4feb88dcb5562d89
[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 String getHelpText() {
79 return "";
80 }
81
82 @Override
83 public String getHelpText(@NonNull ITmfTrace trace) {
84 return "";
85 }
86
87 @Override
88 public String getIcon() {
89 return "";
90 }
91
92 @Override
93 public Bundle getBundle() {
94 return Platform.getBundle("org.eclipse.linuxtools.tmf.core.tests");
95 }
96
97 @Override
98 public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
99 switch (fModule) {
100 case TEST:
101 return TmfTraceStub.class.isAssignableFrom(traceclass);
102 case TEST2:
103 return TmfTraceStub2.class.isAssignableFrom(traceclass);
104 default:
105 return false;
106 }
107 }
108
109 @Override
110 public IAnalysisModule newModule(ITmfTrace trace) throws TmfAnalysisException {
111 IAnalysisModule module = null;
112 switch (fModule) {
113 case TEST:
114 module = new TestAnalysis();
115 module.setName(getName());
116 module.setId(getId());
117 module.setAutomatic(isAutomatic());
118 module.setTrace(trace);
119 break;
120 case TEST2:
121 module = new TestAnalysis2();
122 module.setName(getName());
123 module.setId(getId());
124 module.setAutomatic(isAutomatic());
125 module.setTrace(trace);
126 break;
127 default:
128 break;
129
130 }
131 return module;
132 }
133
134 @Override
135 public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() {
136 return ImmutableList.<Class<? extends ITmfTrace>> of(
137 TmfTraceStub.class,
138 TmfTraceStub2.class);
139 }
140
141 @Override
142 public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
143 switch (fModule) {
144 case TEST:
145 return ImmutableList.of(
146 AnalysisRequirementFactory.REQUIREMENT_1,
147 AnalysisRequirementFactory.REQUIREMENT_3);
148 case TEST2:
149 return ImmutableList.of(
150 AnalysisRequirementFactory.REQUIREMENT_2,
151 AnalysisRequirementFactory.REQUIREMENT_3);
152 default:
153 return Collections.EMPTY_SET;
154 }
155 }
156 }
This page took 0.039046 seconds and 4 git commands to generate.