TMF: Specify if an analysis applies differently to an experiment
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / stubs / org / eclipse / tracecompass / tmf / tests / stubs / analysis / TestRequirementAnalysis.java
CommitLineData
8c736b3c
MR
1/*******************************************************************************
2 * Copyright (c) 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 * Mathieu Rail - Initial API and implementation
11 *******************************************************************************/
12
2bdf0193 13package org.eclipse.tracecompass.tmf.tests.stubs.analysis;
8c736b3c 14
ba27dd38 15import java.util.Collection;
8c736b3c
MR
16import java.util.HashMap;
17import java.util.Map;
18
19import org.eclipse.core.runtime.IProgressMonitor;
ba27dd38 20import org.eclipse.jdt.annotation.NonNull;
2bdf0193
AM
21import org.eclipse.tracecompass.tmf.core.analysis.TmfAbstractAnalysisModule;
22import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement;
23import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement.ValuePriorityLevel;
24import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
25import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
26import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
8c736b3c
MR
27
28/**
29 * Analysis type to test requirements acquisition
30 */
31@SuppressWarnings({ "javadoc", "nls" })
32public class TestRequirementAnalysis extends TmfAbstractAnalysisModule {
33 /* Test requirement types */
34 public static final String EVENT_TYPE = "event";
35 public static final String FIELD_TYPE = "field";
36
37 /* A few event names */
38 public static final String EXIT_SYSCALL = "exit_syscall";
39 public static final String SCHED_SWITCH = "sched_switch";
40 public static final String SCHED_WAKEUP = "sched_wakeup";
41
42 /* A few fields */
43 public static final String PID = "pid";
44 public static final String TID = "tid";
45
46 @Override
47 public boolean canExecute(ITmfTrace trace) {
48 /* This just makes sure the trace is a ctf stub trace */
49 return (TmfTraceStub.class.isAssignableFrom(trace.getClass()));
50 }
51
52 @Override
53 protected void canceling() {
54
55 }
56
57 @Override
58 protected boolean executeAnalysis(final IProgressMonitor monitor) {
59 return true;
60 }
61
62 @Override
63 public void setTrace(ITmfTrace trace) throws TmfAnalysisException {
64 }
65
66 @Override
67 public Iterable<TmfAnalysisRequirement> getAnalysisRequirements() {
68 Map<String, TmfAnalysisRequirement> requirements = new HashMap<>();
69
70 /* Event type requirement and values */
71 requirements.put(EVENT_TYPE, new TmfAnalysisRequirement(EVENT_TYPE));
72 requirements.get(EVENT_TYPE).addValue(EXIT_SYSCALL, ValuePriorityLevel.MANDATORY);
73 requirements.get(EVENT_TYPE).addValue(SCHED_SWITCH, ValuePriorityLevel.MANDATORY);
74 requirements.get(EVENT_TYPE).addValue(SCHED_WAKEUP, ValuePriorityLevel.MANDATORY);
75
76 /* Field type requirement and values */
77 requirements.put(FIELD_TYPE, new TmfAnalysisRequirement(FIELD_TYPE));
78 requirements.get(FIELD_TYPE).addValue(PID, ValuePriorityLevel.MANDATORY);
79 requirements.get(FIELD_TYPE).addValue(TID, ValuePriorityLevel.MANDATORY);
80
ba27dd38
GB
81 @SuppressWarnings("null")
82 @NonNull Collection<TmfAnalysisRequirement> values = requirements.values();
83 return values;
8c736b3c
MR
84 }
85}
This page took 0.081118 seconds and 5 git commands to generate.