TMF: Specify if an analysis applies differently to an experiment
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core / schema / org.eclipse.linuxtools.tmf.core.analysis.exsd
CommitLineData
c068a752
GB
1<?xml version='1.0' encoding='UTF-8'?>
2<!-- Schema file written by PDE -->
3<schema targetNamespace="org.eclipse.linuxtools.tmf.core" xmlns="http://www.w3.org/2001/XMLSchema">
4<annotation>
5 <appinfo>
ec40d3ab 6 <meta.schema plugin="org.eclipse.linuxtools.tmf.core" id="analysis" name="Trace Analysis Module"/>
c068a752
GB
7 </appinfo>
8 <documentation>
9 This extension point is used to contribute new analysis modules to the TMF framework. Analysis modules provide new independent functionalities that can be run on traces.
10 </documentation>
11 </annotation>
12
13 <element name="extension">
14 <annotation>
15 <appinfo>
16 <meta.element />
17 </appinfo>
18 </annotation>
19 <complexType>
20 <sequence minOccurs="0" maxOccurs="unbounded">
21 <element ref="module"/>
b3b03da0 22 <element ref="source"/>
fe96d03c 23 <element ref="output"/>
c068a752
GB
24 </sequence>
25 <attribute name="point" type="string" use="required">
26 <annotation>
27 <documentation>
28 a fully qualified identifier of the target extension point
29 </documentation>
30 </annotation>
31 </attribute>
32 <attribute name="id" type="string">
33 <annotation>
34 <documentation>
35 an optional identifier of the extension instance
36 </documentation>
37 </annotation>
38 </attribute>
39 <attribute name="name" type="string">
40 <annotation>
41 <documentation>
42 an optional name of the extension instance
43 </documentation>
44 <appinfo>
45 <meta.attribute translatable="true"/>
46 </appinfo>
47 </annotation>
48 </attribute>
49 </complexType>
50 </element>
51
52 <element name="module">
53 <complexType>
54 <sequence minOccurs="0" maxOccurs="unbounded">
55 <element ref="parameter"/>
56 <element ref="tracetype"/>
57 </sequence>
58 <attribute name="id" type="string" use="required">
59 <annotation>
60 <documentation>
61 The unique ID that identifies this analysis module.
62 </documentation>
63 </annotation>
64 </attribute>
65 <attribute name="name" type="string" use="required">
66 <annotation>
67 <documentation>
68 The trace analysis module&apos;s name as it is displayed to the end user
69 </documentation>
70 </annotation>
71 </attribute>
72 <attribute name="analysis_module" type="string" use="required">
73 <annotation>
74 <documentation>
75 The fully qualified name of a class that implements the &lt;samp&gt;IAnalysisModule&lt;/samp&gt; interface.
76 </documentation>
77 <appinfo>
ec40d3ab 78 <meta.attribute kind="java" basedOn=":org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule"/>
c068a752
GB
79 </appinfo>
80 </annotation>
81 </attribute>
82 <attribute name="icon" type="string">
83 <annotation>
84 <documentation>
85 The icon associated to this analysis module.
86 </documentation>
87 <appinfo>
88 <meta.attribute kind="resource"/>
89 </appinfo>
90 </annotation>
91 </attribute>
92 <attribute name="automatic" type="boolean">
93 <annotation>
94 <documentation>
95 Whether to execute this analysis automatically when trace is opened, or wait for the user to ask for it
96 </documentation>
97 </annotation>
98 </attribute>
ff7b95a5
GB
99 <attribute name="applies_experiment" type="boolean">
100 <annotation>
101 <documentation>
102 If true, indicate that an instance of this analysis will also be added to an experiment containing one or more trace(s) it applies to. In this case, the analysis will be run on the full experiment and the result is more than just the aggregation of each trace's analysis (default false).
103 </documentation>
104 </annotation>
105 </attribute>
c068a752
GB
106 </complexType>
107 </element>
108
109 <element name="parameter">
110 <annotation>
111 <documentation>
112 Parameter for this module
113 </documentation>
114 </annotation>
115 <complexType>
116 <attribute name="name" type="string" use="required">
117 <annotation>
118 <documentation>
119 The parameter name
120 </documentation>
121 </annotation>
122 </attribute>
123 <attribute name="default_value" type="string">
124 <annotation>
125 <documentation>
126 A default value for this parameter
127 </documentation>
128 </annotation>
129 </attribute>
130 </complexType>
131 </element>
132
133 <element name="tracetype">
134 <annotation>
135 <documentation>
136 Allow to define the tracetypes this analysis applies to.
137 </documentation>
138 </annotation>
139 <complexType>
140 <attribute name="class" type="string" use="required">
141 <annotation>
142 <documentation>
143 The base trace class this analysis applies to or not (it also applies to traces extending this class).
144 </documentation>
145 <appinfo>
ec40d3ab 146 <meta.attribute kind="java" basedOn=":org.eclipse.tracecompass.tmf.core.trace.ITmfTrace"/>
c068a752
GB
147 </appinfo>
148 </annotation>
149 </attribute>
150 <attribute name="applies" type="boolean">
151 <annotation>
152 <documentation>
153 Does this tracetype element mean the class applies or not (default true)
154 </documentation>
155 </annotation>
156 </attribute>
157 </complexType>
158 </element>
159
b3b03da0
GB
160 <element name="source">
161 <annotation>
162 <documentation>
163 Specifies a class that provides analysis modules.
164 </documentation>
165 </annotation>
166 <complexType>
167 <attribute name="class" type="string" use="required">
168 <annotation>
169 <documentation>
170 The fully qualified name of a class that implements the &lt;samp&gt;IAnalysisModuleSource&lt;/samp&gt; interface.
171 </documentation>
172 <appinfo>
ec40d3ab 173 <meta.attribute kind="java" basedOn=":org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleSource"/>
b3b03da0
GB
174 </appinfo>
175 </annotation>
176 </attribute>
177 </complexType>
178 </element>
179
fe96d03c
GB
180 <element name="output">
181 <annotation>
182 <documentation>
183 Associates an output with an analysis module or a class of analysis modules.
184 </documentation>
185 </annotation>
186 <complexType>
187 <choice>
188 <element ref="analysisId"/>
189 <element ref="analysisModuleClass"/>
190 </choice>
191 <attribute name="class" type="string" use="required">
192 <annotation>
193 <documentation>
194 The class of this output.
195 </documentation>
196 <appinfo>
ec40d3ab 197 <meta.attribute kind="java" basedOn=":org.eclipse.tracecompass.tmf.core.analysis.IAnalysisOutput"/>
fe96d03c
GB
198 </appinfo>
199 </annotation>
200 </attribute>
201 <attribute name="id" type="string">
202 <annotation>
203 <documentation>
204 An ID for this output. For example, for a view, it would be the view ID.
205 </documentation>
206 </annotation>
207 </attribute>
208 </complexType>
209 </element>
210
211 <element name="analysisId">
212 <annotation>
213 <documentation>
214 The output will be associated with a single analysis identified by the ID attribute.
215 </documentation>
216 </annotation>
217 <complexType>
218 <attribute name="id" type="string" use="required">
219 <annotation>
220 <documentation>
221 The full ID of the analysis.
222 </documentation>
6866ca4c
GB
223 <appinfo>
224 <meta.attribute kind="identifier" basedOn="org.eclipse.linuxtools.tmf.core.analysis/module/@id"/>
225 </appinfo>
fe96d03c
GB
226 </annotation>
227 </attribute>
228 </complexType>
229 </element>
230
231 <element name="analysisModuleClass">
232 <annotation>
233 <documentation>
6866ca4c 234 The output will be associated with all modules extending or implementing the &apos;class&apos; attribute.
fe96d03c
GB
235 </documentation>
236 </annotation>
237 <complexType>
238 <attribute name="class" type="string" use="required">
239 <annotation>
240 <documentation>
241 The module class or interface the modules need to extend or implement for this output to be applicable.
242 </documentation>
243 <appinfo>
ec40d3ab 244 <meta.attribute kind="java" basedOn=":org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule"/>
fe96d03c
GB
245 </appinfo>
246 </annotation>
247 </attribute>
248 </complexType>
249 </element>
250
c068a752
GB
251 <annotation>
252 <appinfo>
253 <meta.section type="since"/>
254 </appinfo>
255 <documentation>
256 3.0
257 </documentation>
258 </annotation>
259
260 <annotation>
261 <appinfo>
262 <meta.section type="examples"/>
263 </appinfo>
264 <documentation>
265 &lt;p&gt;
266For an example implementation of an analysis module see:
267&lt;pre&gt;
268plug-in: org.eclipse.linuxtools.tmf.core.tests
269package: org.eclipse.linuxtools.tmf.core.tests.stubs.analysis
270class: TestCtfAnalysis
271&lt;/pre&gt;
272&lt;/p&gt;
273
274&lt;p&gt;
275The following is an example of the extension point:
276&lt;pre&gt;
277&lt;extension
278 point=&quot;org.eclipse.linuxtools.tmf.core.analysis&quot;&gt;
279 &lt;module
280 id=&quot;org.eclipse.linuxtools.tmf.core.tests.analysis.testctf&quot;
281 name=&quot;Test analysis ctf&quot;
282 analysis_module=&quot;org.eclipse.linuxtools.tmf.tests.stubs.analysis.TestCtfAnalysis&quot;
283 automatic=&quot;true&quot;&gt;
284 &lt;/module&gt;
285 &lt;/extension&gt;
286&lt;/pre&gt;
287&lt;/p&gt;
288 </documentation>
289 </annotation>
290
291 <annotation>
292 <appinfo>
293 <meta.section type="apiinfo"/>
294 </appinfo>
295 <documentation>
296 &lt;p&gt;
297For this extension point, a class implementing IAnalysisModule must be defined (org.eclipse.linuxtools.tmf.core.analysis.IAnalysisModule). Most analysis can just extend the org.eclipse.linuxtools.tmf.core.analysis.TmfAbstractAnalysisModule class, since it already contains everything to manage the trace&apos;s, the analysis&apos; execution, cancellation, completion, the help texts, etc.
298&lt;/p&gt;
299&lt;p&gt;
300The key method to implement if extending TmfAbstractAnalysisModule is executeAnalysis(final IProgressMonitor monitor). It contains the code of the analysis itself and is executed inside an Eclipse job.
301&lt;/p&gt;
302 </documentation>
303 </annotation>
304
305
306 <annotation>
307 <appinfo>
308 <meta.section type="copyright"/>
309 </appinfo>
310 <documentation>
311 Copyright (c) 2013 École Polytechnique de Montréal
312
313All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
314 </documentation>
315 </annotation>
316
317</schema>
This page took 0.060051 seconds and 5 git commands to generate.