blob: f6e6bc9b69608ee2fdb800035a21408287c90141 [file] [log] [blame]
Stephan Herrmann01664412010-04-01 20:28:43 +00001<?xml version='1.0' encoding='UTF-8'?>
2<!-- Schema file written by PDE -->
3<schema targetNamespace="org.eclipse.objectteams.otequinox" xmlns="http://www.w3.org/2001/XMLSchema">
4<annotation>
5 <appInfo>
6 <meta.schema plugin="org.eclipse.objectteams.otequinox" id="aspectBindings" name="OT/J Aspect Bindings"/>
7 </appInfo>
8 <documentation>
9 This extension point allows to define a new &lt;strong&gt;relationship&lt;/strong&gt; between plug-ins
10called &lt;strong&gt;&quot;aspectBinding&quot;&lt;/strong&gt;.
11By an aspectBinding an aspect plug-in declares which &lt;strong&gt;base plug-ins&lt;/strong&gt; it wishes to adapt
12and which &lt;strong&gt;team classes&lt;/strong&gt; are used for that purpose.
13Only teams in this list are allowed to adapt classes from another plug-in, and such
14adaptation is restricted to classes residing in the specified base plug-in.
15
16Each team class mentioned in an aspectBinding is automatically &lt;strong&gt;instantiated&lt;/strong&gt;
17before the corresponding base plug-in is fully activated.
18In addition extensions may specify that a given team is also &lt;strong&gt;activated&lt;/strong&gt;
19after instantiation.
20 </documentation>
21 </annotation>
22
23 <element name="extension">
24 <annotation>
25 <appInfo>
26 <meta.element />
27 </appInfo>
28 </annotation>
29 <complexType>
30 <sequence>
31 <element ref="aspectBinding" minOccurs="1" maxOccurs="unbounded"/>
32 </sequence>
33 <attribute name="id" type="string">
34 <annotation>
35 <documentation>
36
37 </documentation>
38 </annotation>
39 </attribute>
40 <attribute name="point" type="string" use="required">
41 <annotation>
42 <documentation>
43
44 </documentation>
45 </annotation>
46 </attribute>
47 <attribute name="name" type="string">
48 <annotation>
49 <documentation>
50
51 </documentation>
52 <appInfo>
53 <meta.attribute translatable="true"/>
54 </appInfo>
55 </annotation>
56 </attribute>
57 </complexType>
58 </element>
59
60 <element name="aspectBinding">
61 <annotation>
62 <appInfo>
63 <meta.element icon="icon"/>
64 </appInfo>
65 <documentation>
66 Specifies an individual aspect binding by which a given team class adapts classes from a given base plugin.
67 </documentation>
68 </annotation>
69 <complexType>
70 <sequence>
71 <element ref="basePlugin"/>
72 <element ref="team" minOccurs="1" maxOccurs="unbounded"/>
73 </sequence>
74 <attribute name="icon" type="string" use="default" value="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/calloutbinding_obj.gif">
75 <annotation>
76 <documentation>
77 &lt;i&gt;Default value to provide an icon for this element kind. No need to edit&lt;/i&gt;
78 </documentation>
79 <appInfo>
80 <meta.attribute kind="resource"/>
81 </appInfo>
82 </annotation>
83 </attribute>
84 </complexType>
85 </element>
86
87 <element name="basePlugin">
88 <annotation>
89 <appInfo>
90 <meta.element icon="icon"/>
91 </appInfo>
92 <documentation>
93 &lt;p&gt;
94The base plug-in whose classes may be adapted by the given team(s).
95The base bundle must be a regular bundle, not a fragment.
96If a bundle &lt;b&gt;fragment&lt;/b&gt; should be adapted the aspect binding must refer to the fragment&apos;s host bundle
97and additionally a &lt;code&gt;requiredFragment&lt;/code&gt; should be added.
98&lt;/p&gt;
99&lt;p&gt;
100By specifying &lt;code&gt;SELF&lt;/code&gt; as the basePlugin, a team may adapt classes from its own bundle.
101&lt;/p&gt;
102 </documentation>
103 </annotation>
104 <complexType>
105 <sequence>
106 <element ref="forcedExports" minOccurs="0" maxOccurs="1"/>
107 <element ref="requiredFragment" minOccurs="0" maxOccurs="unbounded"/>
108 </sequence>
109 <attribute name="id" type="string" use="required">
110 <annotation>
111 <documentation>
112 Qualified identifier of the base plug-in.
113 </documentation>
114 </annotation>
115 </attribute>
Stephan Herrmann2276b5d2015-05-22 21:46:00 +0200116 <attribute name="icon" type="string" use="default" value="platform:/plugin/org.eclipse.pde.ui/icons/obj16/plugin_obj.png">
Stephan Herrmann01664412010-04-01 20:28:43 +0000117 <annotation>
118 <documentation>
119 &lt;i&gt;Default value to provide an icon for this element kind. No need to edit&lt;/i&gt;
120 </documentation>
121 <appInfo>
122 <meta.attribute kind="resource"/>
123 </appInfo>
124 </annotation>
125 </attribute>
126 </complexType>
127 </element>
128
129 <element name="team">
130 <annotation>
131 <appInfo>
132 <meta.element labelAttribute="class" icon="icon"/>
133 </appInfo>
134 <documentation>
Stephan Herrmann2200af22010-05-01 20:37:32 +0000135 The team class of this plug-in which is allowed to adapt classes of the given base plug-in.&lt;br/&gt;
Stephan Herrmann5c619682015-06-09 22:40:30 +0200136If a nested team shall be used it must be specified using either its binary name (using a &apos;$&apos; separator).
Stephan Herrmann01664412010-04-01 20:28:43 +0000137 </documentation>
138 </annotation>
139 <complexType>
Stephan Herrmanndd8e0b52016-05-22 19:50:29 +0200140 <sequence>
Stephan Herrmannd2f85282016-05-23 21:50:04 +0200141 <element ref="superBase" minOccurs="0" maxOccurs="unbounded"/>
Stephan Herrmanndd8e0b52016-05-22 19:50:29 +0200142 </sequence>
Stephan Herrmann01664412010-04-01 20:28:43 +0000143 <attribute name="class" type="string" use="required">
144 <annotation>
145 <documentation>
146 Fully qualified name of a team class.
147 </documentation>
148 <appInfo>
Stephan Herrmann2fd32442013-07-20 18:26:04 +0200149 <meta.attribute kind="java" basedOn="org.objectteams.Team"/>
Stephan Herrmann01664412010-04-01 20:28:43 +0000150 </appInfo>
151 </annotation>
152 </attribute>
153 <attribute name="superclass" type="string">
154 <annotation>
155 <documentation>
156 Fully qualified name of the team&apos;s super-class if that is not org.objectteams.Team but another team of the same plugin.
157 </documentation>
158 <appInfo>
Stephan Herrmann2fd32442013-07-20 18:26:04 +0200159 <meta.attribute kind="java" basedOn="org.objectteams.Team"/>
Stephan Herrmann01664412010-04-01 20:28:43 +0000160 </appInfo>
161 </annotation>
162 </attribute>
163 <attribute name="activation">
164 <annotation>
165 <documentation>
166 Request activation of this team class:
167NONE: don&apos;t automatically activate (default)
168THREAD: activate for one thread (discouraged)
169ALL_THREADS: activate for all threads
170 </documentation>
171 </annotation>
172 <simpleType>
173 <restriction base="string">
174 <enumeration value="NONE">
175 </enumeration>
176 <enumeration value="THREAD">
177 </enumeration>
178 <enumeration value="ALL_THREADS">
179 </enumeration>
180 </restriction>
181 </simpleType>
182 </attribute>
183 <attribute name="icon" type="string" use="default" value="platform:/plugin/org.eclipse.objectteams.otdt.ui/icons/ot/team_obj.gif">
184 <annotation>
185 <documentation>
186 &lt;i&gt;Default value to provide an icon for this element kind. No need to edit&lt;/i&gt;
187 </documentation>
188 <appInfo>
189 <meta.attribute kind="resource"/>
190 </appInfo>
191 </annotation>
192 </attribute>
193 </complexType>
194 </element>
195
196 <element name="forcedExports" type="string">
197 <annotation>
198 <documentation>
199 Declare any requests to access packages from the base plugin which are not exported.
200Provide comma separated list of package names (as in the OSGi Export-Package: header).
201 </documentation>
202 </annotation>
203 </element>
204
205 <element name="requiredFragment">
206 <annotation>
207 <documentation>
208 Name of a fragment of the base bundle that is required by the aspect.
209 </documentation>
210 </annotation>
211 <complexType>
212 <attribute name="id" type="string" use="required">
213 <annotation>
214 <documentation>
215 Symbolic name of the fragment.
216 </documentation>
217 </annotation>
218 </attribute>
219 </complexType>
220 </element>
221
Stephan Herrmanndd8e0b52016-05-22 19:50:29 +0200222 <element name="superBase">
223 <annotation>
224 <documentation>
Stephan Herrmannfa404212016-06-07 15:47:34 +0200225 Relevant super classes of bound base classes. A super base class is relevant, if it defines a method, whose override in the exact base is bound by callin or decapsulating callout.
Stephan Herrmanndd8e0b52016-05-22 19:50:29 +0200226 </documentation>
227 </annotation>
228 <complexType>
229 <attribute name="plugin" type="string">
230 <annotation>
231 <documentation>
232 the plugin holding the super base class (can be omitted if same as the basePlugin of the enclosing aspectBinding).
233 </documentation>
234 </annotation>
235 </attribute>
236 <attribute name="class" type="string" use="required">
237 <annotation>
238 <documentation>
239 Fully qualified dot/dollar-separated base class that is a super class of a bound base class.
240 </documentation>
241 <appInfo>
242 <meta.attribute kind="java"/>
243 </appInfo>
244 </annotation>
245 </attribute>
246 </complexType>
247 </element>
248
Stephan Herrmann01664412010-04-01 20:28:43 +0000249 <annotation>
250 <appInfo>
251 <meta.section type="since"/>
252 </appInfo>
253 <documentation>
254 OTDT 0.9.1 based on Eclipse 3.2.
255 </documentation>
256 </annotation>
257
258 <annotation>
259 <appInfo>
260 <meta.section type="examples"/>
261 </appInfo>
262 <documentation>
263 See example plugin org.eclipse.objectteams.otequinox.branding.
264 </documentation>
265 </annotation>
266
267 <annotation>
268 <appInfo>
269 <meta.section type="apiInfo"/>
270 </appInfo>
271 <documentation>
272 The &lt;code&gt;class&lt;/code&gt; named in the class property must be a team class thus implementing the &lt;code&gt;org.objectteams.ITeam&lt;/code&gt; interface.
273 </documentation>
274 </annotation>
275
276 <annotation>
277 <appInfo>
278 <meta.section type="implementation"/>
279 </appInfo>
280 <documentation>
281 None.
282 </documentation>
283 </annotation>
284
285 <annotation>
286 <appInfo>
287 <meta.section type="copyright"/>
288 </appInfo>
289 <documentation>
290 &lt;em&gt;
291&lt;p&gt;
292This file is part of &quot;Object Teams Development Tooling&quot;-Software
293&lt;/p&gt;&lt;p&gt;
294Copyright 2006, 2010 Technical University Berlin, Germany.
295All rights reserved. This program and the accompanying materials
296are made available under the terms of the Eclipse Public License v1.0
297which accompanies this distribution, and is available at
298&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;
299&lt;/p&gt;&lt;p&gt;
300Please visit &lt;a href=&quot;http://www.objectteams.org&quot;&gt;www.objectteams.org&lt;/a&gt; for updates and contact.
301&lt;/p&gt;&lt;p&gt;
302Contributors:&lt;br&gt;
303Technical University Berlin - Initial API and implementation
304&lt;/p&gt;
305&lt;/em&gt;
306 </documentation>
307 </annotation>
308
309</schema>