TMF: Add an API to query analyses to obtain their requirements
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / stubs / org / eclipse / linuxtools / 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 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.tests.stubs.analysis;
14
15 import java.util.Collections;
16
17 import org.eclipse.core.runtime.Platform;
18 import org.eclipse.linuxtools.tmf.core.analysis.IAnalysisModule;
19 import org.eclipse.linuxtools.tmf.core.analysis.IAnalysisModuleHelper;
20 import org.eclipse.linuxtools.tmf.core.analysis.TmfAnalysisRequirement;
21 import org.eclipse.linuxtools.tmf.core.exceptions.TmfAnalysisException;
22 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
23 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
24 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub2;
25 import org.osgi.framework.Bundle;
26
27 /**
28 * Analysis Module Helper for the stub analysis source
29 *
30 * @author Geneviève Bastien
31 */
32 public class AnalysisModuleTestHelper implements IAnalysisModuleHelper {
33
34 /**
35 * Enum to select an analysis module for this stub
36 */
37 public enum moduleStubEnum {
38 /** Test analysis */
39 TEST,
40 /** Test analysis 2 */
41 TEST2
42 }
43
44 private moduleStubEnum fModule;
45
46 /**
47 * Constructor
48 *
49 * @param module
50 * The type identifying the module for this helper
51 */
52 public AnalysisModuleTestHelper(moduleStubEnum module) {
53 fModule = module;
54 }
55
56 @Override
57 public String getId() {
58 return fModule.name();
59 }
60
61 @Override
62 public String getName() {
63 return fModule.name();
64 }
65
66 @Override
67 public boolean isAutomatic() {
68 return false;
69 }
70
71 @Override
72 public String getHelpText() {
73 return "";
74 }
75
76 @Override
77 public String getIcon() {
78 return "";
79 }
80
81 @Override
82 public Bundle getBundle() {
83 return Platform.getBundle("org.eclipse.linuxtools.tmf.core.tests");
84 }
85
86 @Override
87 public boolean appliesToTraceType(Class<? extends ITmfTrace> traceclass) {
88 switch (fModule) {
89 case TEST:
90 return TmfTraceStub.class.isAssignableFrom(traceclass);
91 case TEST2:
92 return TmfTraceStub2.class.isAssignableFrom(traceclass);
93 default:
94 return false;
95 }
96 }
97
98 @Override
99 public IAnalysisModule newModule(ITmfTrace trace) throws TmfAnalysisException {
100 IAnalysisModule module = null;
101 switch (fModule) {
102 case TEST:
103 module = new TestAnalysis();
104 module.setName(getName());
105 module.setId(getId());
106 module.setAutomatic(isAutomatic());
107 module.setTrace(trace);
108 break;
109 case TEST2:
110 module = new TestAnalysis2();
111 module.setName(getName());
112 module.setId(getId());
113 module.setAutomatic(isAutomatic());
114 module.setTrace(trace);
115 break;
116 default:
117 break;
118
119 }
120 return module;
121 }
122
123 @Override
124 public Iterable<Class<? extends ITmfTrace>> getValidTraceTypes() {
125 return Collections.EMPTY_SET;
126 }
127
128 @Override
129 public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
130 return Collections.EMPTY_SET;
131 }
132 }
This page took 0.03378 seconds and 5 git commands to generate.