initial commit in accordance with CQ 3784
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/builder.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/builder.html
new file mode 100644
index 0000000..15a1a84
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/builder.html
@@ -0,0 +1,29 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Java builder extended for Object Teams</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Java builder extended for Object Teams</h1>
+    <p>The <b>OT/J builder</b> is a seamless extension of the Java builder for Object Teams.
+    It manages the incremental compilation of individual source files within a project,
+    which aims at performing minimal work only, as to speed up compilation for large 
+    projects if only small changes have been performed.
+    </p><p>
+    By the introduction of role files 
+    (<a href="otjld/def/s1.html#s1.2.5"><img src="../icons/ot_paragraph.gif"> 1.2.5</a>)
+    even inner classes (here: roles) can be compiled individually.
+    Incremental compilation is guided by an analysis of the various dependencies among classes.
+    </p><p>    
+	If for some reason incremental compilation fails were it should not, a full build can
+	be triggered by <span class="ui">Project-&gt;Clean...</code>.
+	</p>
+    <p>Note that the produced class files contain standard Java byte code. However, for execution
+    the Object Teams Runtime Environment (OTRE) is needed in order to weave aspect code into
+    base classes. Additional options in the launching dialog will take care of this detail for you
+    (see <a href="running.html">Running Object Teams programs</a>).
+  </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callhierarchy.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callhierarchy.html
new file mode 100644
index 0000000..273fc99
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callhierarchy.html
@@ -0,0 +1,37 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<style type="text/css">
+		body { margin:10px; }
+		.high { background-color:#a5b7bd;color:white; }
+		.low { background-color:#fff0c8; padding:2px; }
+		.caption { text-decoration:underline; vertical-align:top;position:relative;top:20px; margin-top:10px;}
+	</style>
+    <title>Call hierarchy extended for OT/J</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+	<h1 align="center">Call hierarchy extended for OT/J<a name="callhierarchy"></a></h1>
+      <p>
+         The purpose of the Java call hierarchy view is to statically display all potential
+         control flows originating from or leading to a specific program element.
+         Since callout and callin method bindings in OT/J introduce new kinds of control flows,
+         it is only appropriate to also visualize the control flows induced by such method bindings.
+      </p>
+      <p>
+      	Whenever a given method can be invoked via a <b>callout method binding</b>,
+      	the call hierarchy shows a <img src="../images/calloutbinding_obj.gif"> callout node.
+      	Here all calls to the corresponding role method will be forwarded to the base method.
+      </p>
+      <p>
+      	Whenever a <b>callin method binding</b> may intercept a given control flow,
+      	a <img src="../images/callinbindingreplace_obj.gif"> callin node is shown.
+      	Note, that a callin control flow is only taken at runtime, 
+      	if the enclosing team is active and no guard predicate evaluates to false.
+      </p>
+      <img src="images/screenshots/CallHierarchy.png"
+	  	   alt="Call hierarchy showing Object Teams method bindings">
+   </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callinmarker.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callinmarker.html
new file mode 100644
index 0000000..9e96af4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/callinmarker.html
@@ -0,0 +1,65 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+	<style type="text/css">
+		body { margin:10px; }
+		.high { background-color:#a5b7bd;color:white; }
+		.low { background-color:#fff0c8; padding:2px; }
+		.caption { text-decoration:underline; vertical-align:top;position:relative;top:20px; margin-top:10px;}
+	</style>
+    <title>Binding markers</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Binding markers</h1>
+	<p><b>Binding</b> <a href="/help/topic/org.eclipse.platform.doc.user/concepts/concepts-11.htm">
+	markers</a>	are OT/J specific annotations on the vertical ruler (marker bar) left of the
+	extended <a href="editor.html">Java Editor</a>. These markers come in three flavors:
+	<ul>
+	<li>A <b>playedBy marker</b> <img src="../images/playedBy_obj.gif"> signals that one or more roles is bound
+	    to the current class using <code class="keyword">playedBy</code> (<a href="otjld/def/s2.html#s2.1"><img src="../icons/ot_paragraph.gif"> 2.1</a>).</li>
+	<li>A <b>callin marker</b> <img src="../images/callinbinding_obj.gif"> signals that one or more callin bindings
+		(<a href="otjld/def/s4.html#s4"><img src="../icons/ot_paragraph.gif"> 4</a>) affect the given base method.
+	<li>A <b>callout marker</b> <img src="../images/callout_marker.gif"> signals that one or more callout bindings (<a href="otjld/def/s3.html#s3"><img src="../icons/ot_paragraph.gif"> 3</a>)
+	    affect the given base method <b>and</b> that these callout bindings apply decapsulation 
+	    (<a href="otjld/def/s3.html#s3.4"><img src="../icons/ot_paragraph.gif"> 3.4</a>)
+	    &mdash;&nbsp;(callout bindings <em>without</em> decapsulation are ranked like regular method calls
+	    and thus not considered relevant for marking in the ruler).
+	</ul>  
+	<table>
+	<tr><td class="caption">PlayedBy and callin markers</td>
+	  <td><img src="images/screenshots/callinmarkers.png" 
+	  	   alt="Callin marker annotation in vertical ruler (marker bar)">
+	</tr>
+	<tr><td class="caption">Callout decapsulation marker</td>
+	  <td><img src="images/screenshots/calloutmarker.png" 
+	  	   alt="Callout decapsulation marker annotation in vertical ruler (marker bar)">
+	</tr>
+	</table>
+	<p>
+	Aside from raising awareness of these bindings, the markers can also be used to directly
+	navigate to the corresponding role or callin/callout binding.
+	When right clicking on a binding marker a pop-up menu will open which contains
+	a corresponding submenu <span class="ui">OT/J bound roles</span>, or <span class="ui">OT/J callin bindings</span>, or <span class="ui">OT/J callout decapsulation</span>. 
+	This submenu in turn holds all bindings relevant at the current position,
+	sorted by teams.
+	</p>
+	<table>
+	<tr><td class="caption">PlayedBy marker menu
+	  <td><img src="images/screenshots/callinmarker-menu.png"
+	  	   alt="PlayedBy marker menu">
+	</tr>
+	<tr><td class="caption">Callin marker menu
+	  <td><img src="images/screenshots/callinmarker-menu3.png"
+	  	   alt="Callin marker menu">
+	</tr>
+	</table>
+	<p>
+	Binding markers are enabled/disabled globally on the <span class="ui">Object Teams</span> preference page.<br>
+	Detailed configuration is possible via <span class="ui">Window->Preferences->General->Editors->Text Editors->Annotations</span>
+	</p>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/compilation.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/compilation.html
new file mode 100644
index 0000000..87bc131
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/compilation.html
@@ -0,0 +1,47 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Compiling Object Teams programs</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Compiling Object Teams programs</h1>
+    <p>
+    Object Teams programs are compiled <u>automatically</u> and <u>incrementally</u> using
+    an <b><a href="builder.html">extended Java builder</a></b>.
+    </p>
+    <p>The language accepted by the compiler is defined in the <a href="otjld/def/index.html">OTJLD</a>
+    (OT/J Language Definition), which is bundled with the OTDT.
+    <p>Problems detected by the compiler are classified as either <b><i>warnings</i></b> or
+    <b><i>errors</i></b>.<br />
+    The existence of a warning does not prohibit the execution of the program; 
+    some warnings only signal a programming style that is not recommended,
+    others may report situations that are potentially unsafe such that an undeclared 
+    exception might occur at runtime.<br />
+	Compile-time errors (as specified by the OT/J Language Specification) imply 
+	that byte code generation was incomplete (it may be possible to run even programs with
+	compile errors, but the program will terminate as soon as it tries to execute an
+	erroneous method).
+	<p>
+	<h3>Configuring Diagnostics</h3>
+    For a number of problems you can specify if you want the OT/J compiler
+    to report them as warnings, errors or to ignore them. 
+    To change the default settings, use the <span class="ui">Window > Preferences > Java >
+    Compiler (OT/J)</span> preference page (or change the project properties to specify
+    project specific settings).<br />
+    For easy reference, on the preference page each group of diagnostics 
+    mentions the paragraph in the language definition that defines the issue at hand.</p>
+    Also note that many of these diagnostics can be fixed using a <a href="quickfix.html">quick fix</a>.
+    
+    <h3>Consulting the language definition on problems</h3>
+    <p>When viewing OT/J-specific error/warning messages in the Problems view, the context menu
+    offers a &nbsp;<img src="../icons/ot_paragraph.gif"> <span class="ui">Go To Language Definition</span> &nbsp;link,
+    taking you directly to the paragraph
+    that defines the rule which is being violated by the compiled source code. For presenting the
+    language definition the internal HTML-browser is used to allow easy navigation within the
+    language definition.</p>
+    <img title="Language Definition Integrated in the OTDT" src="images/screenshots/langdef.png"/>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/completion.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/completion.html
new file mode 100644
index 0000000..2310011
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/completion.html
@@ -0,0 +1,99 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<style type="text/css">
+		body { margin:10px; }
+		.high { background-color:#a5b7bd;color:white; }
+		.low { background-color:#fff0c8; padding:2px; }
+		.caption { text-decoration:underline; vertical-align:top;position:relative;top:20px; margin-top:10px;}
+	</style>
+    <title>OT/J content/code assist</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+	<h1 align="center">OT/J code completion<a name="completion"></a></h1>
+	<u>On this page:</u>
+	<br /><a href="#completeBase">1. Completing a role's base class</a>
+	<br /><a href="#completeMapping">2. Creating callout/callin method bindings</a>
+	<br /><a href="#completeCall">3. Completing special method calls</a>
+	<br /><a href="#completeTemplate">4. Completion templates</a>
+	
+    <h2><a name="completeBase">1. Completing a role's base class</a></h2>
+        When expanding the base type after the keyword <code class="keyword">playedBy</code>,
+        completion will also generate an "<code class="keyword">import <strong>base</strong> ...</code>" declaration 
+        (<a href="otjld/def/s2.html#s2.1.2.d"><img src="../icons/ot_paragraph.gif"> 2.1.2(d)</a>), if needed.
+        
+
+	<h2><a name="completeMapping">2. Creating callout/callin method bindings</a></h2>
+	
+	Specific support for code completion exists to facilitate the creation of <b>callout</b> (<a href="otjld/def/s3.html"><img src="../icons/ot_paragraph.gif"> 3.</a>) and <b>callin</b> (<a href="otjld/def/s4.html"><img src="../icons/ot_paragraph.gif"> 4.</a>) method bindings.<br />
+	Completion can be used for
+	<ul>
+	<li><a href="#full">Creating full method bindings (callout/callin)</a>
+	<li><a href="#partial">Completing partial callout/callin bindings</a>
+	<li><a href="#correct">Corrections after callin creation.</a>
+	</ul>
+	
+	<h3><a name="full">2.1 Creating full method bindings (callout/callin)</a></h3>
+	Just activating the completion anywhere in the body of a role class allows you to create a full callout or callin binding to an existing base method (or field &mdash; "callout to field", see <a href="otjld/def/s3.html#s3.5"><img src="../icons/ot_paragraph.gif"> 3.5</a>).<br />
+	<table>
+	<tr><td colspan=2>
+	After pressing <code>Ctrl-space</code>, selection of the desired binding happens in three steps: 
+	<tr><td class="caption">a) Select a base method</td>
+	<td><img src="images/screenshots/complete_binding_1.png">
+	<tr><td class="caption">b) Change the role method name if desired.</td>
+	<td><img src="images/screenshots/complete_binding_2.png">
+	<tr><td class="caption">c) Select the binding kind.</td>
+	<td><img src="images/screenshots/complete_binding_3.png">
+	</table>
+	<h4>2.1.1 Creating callout to field</h4>
+	<p>	
+	Two additional kinds of callouts can be generated, by typing "<code>get</code>" or "<code>set</code>" before invoking completion:
+	<table class="border" cellpadding=3>
+	<tr class="z2"><td>after typing <code class="keyword">get</code>
+	<td>Create a callout to field <i>getter</i>.</tr>
+	<tr class="z3">
+	<td>after typing <code class="keyword">set</code>
+	<td>Create a callout to field <i>setter</i>.
+        </table>
+    </p> 
+    <h4>2.1.2 Mapping signatures using lifting/lowering</h4>
+    <p>
+    When binding to a base method/field, whose signature contains other base types for which a bound role exists in the current team,
+    completion lets you select whether the role side of the binding should use base or role types.
+    If role types are selected, they will be conform to the corresponding base type by implicitly using lifting (<a href="otjld/def/s2.html#s2.3"><img src="../icons/ot_paragraph.gif"> 2.3</a>) or lowering (<a href="otjld/def/s2.html#s2.2"><img src="../icons/ot_paragraph.gif"> 2.2</a>).
+    </p>
+    
+    <h3><a name="partial">2.2 Completing partial callin/callout bindings</a></h3>
+        <p>
+        If a callin or callout binding has been typed up-to and including the "<code class="keyword">&lt;-</code>" or "<code class="keyword">-&gt;</code>" token, completion can be used to expand the right hand side specifying the base method or field. For callin bindings you may optionally first type the callin modifier (<code class="keyword">before, replace</code> or <code class="keyword">after</code>). Otherwise you will be prompted for the desired callin modifier.
+        In this case the proposed modifier is inferred to match the bound base method:<br />
+        <table class="border">
+        <tr class="z2"><td>regular method<td>Default is <code class="keyword">before</code> (also <code class="keyword">after</code> is legal).
+        <tr class="z3"><td><code class="keyword">callin</code> method<td>Default is <code class="keyword">replace</code>
+        </table>
+        </p><p>
+        Normally, after "<code class="keyword">-&gt;</code>" (as well as for "<code class="keyword">&lt;-</code>") completion will try to expand a base <i>method</i>, if for a callout one of the modifiers <code>get</code> or <code>set</code> has been typed, a <i>field</i> is searched instead.
+        
+    <h3><a name="correct">2.3 Corrections after callin creation</a></h3>
+        After generating a callin binding using completion, the following two corrections might be especially helpful:
+        <ul>
+        <li>Adjusting the role method's <code class="keyword">callin</code> modifier, to match the binding's callin modifier.
+        <li>Creating a missing role method.
+        </ul>
+        Both corrections can easily be performed by a <a href="quickfix.html">quickfix</a> offered on the erroneous role method spec.
+
+	<h2><a name="completeCall">3. Completing special method calls</a></h2>
+	<ul>
+	<li>After <code class="keyword">base.</code> (<a href="otjld/def/s4.html#s4.3"><img src="../icons/ot_paragraph.gif"> 4.3</a>) and <code class="keyword">tsuper.</code> (<a href="otjld/def/s1.html#s1.3.1.f"><img src="../icons/ot_paragraph.gif"> 1.3.1(f)</a>) completion offers only those methods that are actually legal in this context,
+	 which in bose cases implies the same name and signature as the surrounding role (callin) method.</li>
+	<li>Completion also offers calls to members of the bound base class which are implicitly available using <b>inferred callout</b> (<a href="otjld/def/s3.html#s3.1.j"><img src="../icons/ot_paragraph.gif"> 3.1(j)</a>, <a href="otjld/def/s3.html#s3.5.h"><img src="../icons/ot_paragraph.gif"> 3.5(h)</a>)
+    </ul>        
+    <h2><a name="completeTemplate">4. Completion templates</a></h2>
+	 Content assist in the
+	form of <a href="/help/topic/org.eclipse.jdt.doc.user/concepts/ctemplates.htm">
+	templates</a> exists for a few specific OT/J language constructs like <span class="low"><code class="keyword">within</code> (<i>Expression</i>)</span>.
+	</p>
+	
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/contentassist.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/contentassist.html
new file mode 100644
index 0000000..c9dc06d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/contentassist.html
@@ -0,0 +1,26 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+    <title>OT/J content/code assist</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body style="margin:10px">
+    <h1 align="center">OT/J content/code assist</h1>
+	<p>The <a href="/help/topic/org.eclipse.jdt.doc.user/reference/ref-143.htm">content/code
+	assist (code completions)</a> inherent in the
+	<a href="/help/topic/org.eclipse.jdt.doc.user/concepts/concepts-7.htm">Java editor</a>
+	has been extended in order to provide for Object Teams specific keywords and modifiers (e.g.
+	<code class="keyword">team, playedBy, callin, before, after, replace</code> etc.) as well.
+	Code completion and quick fixes provide more specific assistance depending on the current context of editing.
+	<p>
+	<u>OT/J specific content assist comprises:</u>
+	<ul>
+	<li><a href="completion.html">Completion</a> (<a href="completion.html#completeMapping">callout, callin</a>, <a href="completion.html#completeBase">base class</a>).
+	<li><a href="quickfix.html">Quick fixes</a>
+	</ul>
+	</p>
+
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/debugging.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/debugging.html
new file mode 100644
index 0000000..42b715c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/debugging.html
@@ -0,0 +1,40 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Debugging Object Teams programs</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Debugging Object Teams programs</h1>
+    <p>Debugging support has been extended in order to help debugging OT/J programs.
+    Debugging OT/J may give rise to a new kind of questions: is a declared
+    callin binding actually firing at run-time? In order to analyze this question
+    a developer may need to investigate:
+    <ol>
+    <li>Has a team instance be created and activated?</li>
+    <li>Is the callin blocked by either a guard predicate or a <code>org.objectteams.LiftingVetoException</code>?</li>
+    </ol>
+    Investigating question 1 is supported by the new <b>team monitor view</b>, 
+    support for question 2 is provided by enhancements of the debug view and its stepping actions.
+    </p>
+    <h2><a name="teammonitor" href="teammonitor.html">Team Monitor View</a></h2>
+    A special view exists for monitoring which team instances have been created and whether each 
+    of them is currently active or not. When debugging callin bindings which do not trigger while
+    they are intended to do so, the team monitor should provide first help to find out whether
+    there is any active instance of the team being considered. If no active instance exists,
+    callins can not trigger. <a href="teammonitor.html">Read more...</a>
+    <h2><a name="stepping" href="stepping.html">Stepping through OT/J code</a></h2>
+    The byte code into which OT/J programs are translated has some significant differences
+    to the original source code. In order to hide some generated code and to provided
+    convenient stepping even through declarative method bindings, the debug view has
+    been enhanced for OT/J. <a href="stepping.html">Read more...</a>
+    <h2><a name="variables">Variables View</a></h2>
+    By default the variables view hides some internal fields that are generated by the compiler.
+    However, in some situations these variables might come handy for inspecting the linkage between
+    role/base/team instances. For that reason, filtering of these variables
+    can be toggled from the variable view's menu: <span class="ui">Java &gt; Show OT/J Internal Variables</span>.
+    The same holds for the detail drill down of the team monitor.
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/develop.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/develop.html
new file mode 100644
index 0000000..4e2bedd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/develop.html
@@ -0,0 +1,61 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Key features of the Object Teams Development Tooling</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+	<h1>Object Teams Development Tooling</h1>
+	<p>
+	The OTDT is a development environment for the 
+	<a href="http://trac.objectteams.org/ot/wiki/OTJ">OT/J</a> programming language.
+	</p>
+	<p>
+	Based on the Eclipse Java development tools (JDT), it includes the following key features, which
+	are explained in the next chapters.<br/>
+	
+	</p>
+	
+    <h2>Key features of the OTDT</h2>
+        More details can be found on the comprehensive <a href="features.html"><strong>feature list</strong></a>.
+	<ul>
+	  <li><b><a href="project.html">Creating</a> an Object Teams project</b> using a wizard</li>
+	  <li><b><a href="wizards.html">Creating</a> team and role classes</b> using a wizard</li>
+  	  <li><a href="editor.html"><b>Editing</b></a> OT/J:
+  	  	<ul style="margin-bottom:0px">
+  	  		<li>Syntax highlighting, <a href="editor.html#navigation">navigation</a>, <a href="contentassist.html">content/code assist</a>, <a href="callinmarker.html">base code annotations</a></li>
+  	  		<li>A table based <b>Binding Editor</b> specifically supports the creation of <i>connectors</i></li>
+  	  		<li><a href="methodcompare.html">Comparing bound methods</a></li>
+  	  	</ul></li>
+	  <li>Object Teams <b>structural/navigational views</b> (<a href="packageexplorer.html">package explorer</a>, type hierarchy, outline)</li>
+	  <li><a href="compilation.html"><b>Compiling</b></a> Object Teams programs</li>
+	  <li><a href="running.html"><b>Running</b></a> Object Teams programs</li>
+ 	  <li><a href="debugging.html"><b>Debugging</b></a> Object Teams programs</li>
+	</ul>
+
+	The following feature -- although available in the JDT	-- is only partially adapted for the OTDT:
+	<ul>
+  	  <li><a href="refactoring.html"><b>Refactoring</b></a> Object Teams programs</li>
+	</ul>
+
+	<h2>Prerequisites</h2>
+	If you have never used the eclipse Java IDE before, please consider getting familiar with the
+	<a href="/help/topic/org.eclipse.jdt.doc.user/concepts/concepts-1.htm">Java Development Tooling</a>, as
+	the OTDT is built on top of and extends the JDT.
+  
+  	<h2>Feedback</h2>
+	<p>
+  	If you have questions regarding the <a href="otjld/def/index.html">OT/J</a> 
+  	language or if you experience problems or bugs with the OTDT, do not hesitate to send a mail to the
+  	<a href="mailto:otj-users@objectteams.org">otj-users@objectteams.org</a> mailing list.
+	</p>
+	
+	<p>
+  	<br>
+	Happy hacking,<br>
+	&nbsp;&nbsp;&nbsp;&nbsp;the OTDT Team.
+	</p>
+	
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/editor.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/editor.html
new file mode 100644
index 0000000..9d09bf8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/editor.html
@@ -0,0 +1,62 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Java editor with Object Teams capability</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Java editor with Object Teams capability</h1>
+    The extended Java editor provides specialized features for editing
+    OT/J code. The original <a href="/help/topic/org.eclipse.jdt.doc.user/concepts/concepts-7.htm">Java editor</a> 
+    has been extended for the following features:
+	<ul>
+	  <li><b>Navigation</b> support for Object Teams elements (F3 = <span class="ui">Open Declaration</span>, see below)</li>
+	  <li><b>Syntax highlighting</b> for OT/J keywords and modifiers.<br />
+	      OT/J keywords are enabled based on the contents of the file being edited.
+	      This way the same editor still handles plain Java sources <i>without</i> interpreting OT/J keywords.<br/>
+	      However, within an OT/J file syntax highlighting is determined in a context-free manner, 
+	      which means that scoped keywords
+          (<a href="otjld/def/sA.html#sA.0.1"><img src="../icons/ot_paragraph.gif"> A.0.1</a>)
+	      like <code class="keyword">after, base, before, get, result, set</code> are highlighted,
+	      even in situations where they have no special meaning.
+	      </li>
+	  <li><a href="contentassist.html"><b>Content/code assist</b> (code completions)</a> for Object Teams program elements.
+	  </li>
+	  <li><b>Templates (source patterns)</b> for Object Teams specific language constructs
+	  using content assist (<b>Ctrl+Space</b>),
+	      e.g. <code class="keyword">within</code> (<i>Expression</i>) <i>Statement</i>
+	  </li>
+	  <li>New <a href="callinmarker.html"><b>binding marker</b></a> annotations in the vertical ruler (for base classes/methods bound using playedBy/callin/callout)
+	      allowing navigation to the affecting role.
+	  </li>
+	</ul>
+	<h2><a name="navigation">Navigation</a></h2>
+    Obvious enhancements for the normal F3 navigation regard the following:
+    <ul>
+    <li>Go to a role's base class using the <code class="keyword">playedBy</code> clause.</li>
+    <li>Go to a bound base method or a bound field using a callout or callin binding<br />
+        (the opposite direction is supported by <a href="callinmarker.html">binding markers</a>).</li>
+    </ul>
+    Navigating <strong>role files</strong>
+    (<a href="otjld/def/s1.html#s1.2.5"><img src="../icons/ot_paragraph.gif"> 1.2.5</a>):
+    <ul>
+    <li>Hitting F3 on the <code class="keyword">team package</code> declarations jumps to the enclosing team.</li>
+    <li>In order to navigate from a team to its role file use the quick outline
+        by hitting <code>Ctrl-O</code> twice:<br />
+        role files will be offered for selection along inline members.</li>
+    <li>If javadoc <code>@role</code> tags are used as recommended for listing all role files of the current team
+    	(<a href="otjld/def/s1.html#s1.2.5.d"><img src="../icons/ot_paragraph.gif"> 1.2.5(d)</a>),
+    	the role names in these tags support F3-navigation to the corresponding roles, too.</li>
+    </ul>
+    Navigating the <strong>implicit role hierarchy</strong> (<a href="otjld/def/s1.html#s1.3.1"><img src="../icons/ot_paragraph.gif"> 1.3.1</a>):
+    <ul>
+	<li>A role class that overrides a corresponding role from the super team is decorated with an override marker (<img src="images/over_co.gif">) in the vertical ruler,
+		which supports the <span class="ui">Open Super Implementation</span> action.</li>
+	<li>A role method overriding a corresponding method from any explicit or implicit super role
+		are also decorated with an override marker (<img src="images/over_co.gif">) supporting navigation to the overridden method.</li>
+	</ul>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/features.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/features.html
new file mode 100644
index 0000000..03f1aeb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/features.html
@@ -0,0 +1,417 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../../dtd/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+    <head>
+	    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+        <link rel="stylesheet" href="otjld/css/ot.css" type="text/css" />
+        <link rel="stylesheet" href="otjld/css/otjld.css" type="text/css" />
+		<title>OTDT Feature List</title>
+	    <!-- special padding for the table of tests. -->
+	    <style type="text/css">
+	       td,th { padding-left:15px; padding-right:15px; padding-top:2px; padding-bottom:2px; }
+	    </style>
+    </head>
+    <body>
+        <div id="head">
+            <h1>Features of the OTDT (version 1.4.x)</h1>
+        </div>
+		<div style="margin:10px;">
+        
+			<h2 style="text-align:center;margin-top:0px;"><img style="vertical-align:middle;" alt="Built on Eclipse" src="../images/built-on-eclipse.gif"/> Version 3.5.0</h2>
+
+			The release 1.4.0 M1 is based on Eclipse 3.6.0 M3. It contains a modified version of the JDT core
+			and several added plugins.
+
+			<br/><br/>
+
+			The following components are available:
+			
+			<ul>
+			  <li><a href="#compiler">Compiler</a></li>
+			  <li><a href="#wizards">Wizards</a></li>
+			  <li><a href="#editor">Editor</a></li>
+			  <li><a href="#bindingEditor">Binding Editor</a></li>
+			  <li><a href="#refactoring">Refactoring</a></li>
+			  <li><a href="#structureViewers">Structure Viewers</a></li>
+			  <li><a href="#search">Search</a></li>
+			  <li><a href="#execution">Execution Environment</a></li>
+			  <li><a href="#otequinox">OT/Equinox</a></li>
+			  <li><a href="#debugging">Debugging</a></li>
+			  <li><a href="#help">Help and additional Information</a></li>
+			</ul>
+			
+			
+			<p></p>
+			
+				<div id="compiler" class="headl"><div class="headr">
+			            <h1>Compiler</h1>
+			        </div></div>
+			            
+			The Object Teams Compiler is an incremental compiler, based on the Eclipse Compiler for Java. 
+			<dl>
+			<dt><strong>Language Definition</strong></dt>
+			<dd>The compiler implements the language as defined in the OT/J
+				<a href="otjld/def/index.html">language definition</a> version 1.1 (OTJLD).
+				The language definition has continuously been revised to precisely specify the language 
+				including various corner cases and combinations of features.
+			</dd>
+			<dt><strong>Language Implementation</strong></dt>
+			<dd>
+				The compiler supports all features of OT/J according to the 
+				<a href="otjld/def/index.html"><img alt="otjld" src="../images/ot_paragraph.png"/> OTJLD v1.1</a>
+				&sect;&sect;1-7.
+				Support for the join point sub-language (<a href="http://www.objectteams.org/def/0.9/joinpoints.html"><img alt="otjld"  src="../images/ot_paragraph.png"/> OTJLD &#167; 8</a>) is not included in the stable release 1.3.x.
+				<p></p>
+				The compiler can be <strong>configured</strong> using global <code>Preferences</code> or project
+				specific <code>Properties</code>.
+				<ul>
+				  <li>Configure OT/J-specific compiler diagnostics as "ignore", "warning" or "error".<br/>
+				      Any warnings configured on this property sheet can also be suppressed in the
+				      source code using the <code>@SuppressWarnings</code> annotation.</li>
+				  <li>Scoped keywords <a href="otjld/def/sA.html#sA.0.1"><img alt="otjld"  src="../images/ot_paragraph.png"/> OTJLD &#167; A.0.1</a> can be disabled (default is enabled).
+				  </li>
+				<!--
+				  <li>Compiler support for the join point language (<a href="../def/1.0/joinpoints.html"><img border="0" src="../images/ot_paragraph.png"/> OTJLD &#167 8</a>) is not included in this release. Note, that the runtime environment does not yet support the join point language, thus this feature could mainly be used for learning the join point language.
+				-->  
+				</ul>
+			</dd>
+			<dt><strong>Status of the Compiler</strong></dt>
+			<dd>
+				The OTDT is continuously tested using two growing test suites:
+				<table class="default">
+				<tr><th>Name</th><th>Software under Test</th><th>Kind</th><th>Number of tests</th></tr>
+				<tr class="z1"><td><b>Jacks</b></td><td>compiler and runtime environment</td><td>black box</td><td> &gt;2000 (test programs)</td></tr>
+				<tr class="z2"><td><b>JUnit</b></td><td>all of the OTDT</td>                 <td>white box</td><td> &gt;40000 tests.</td>        </tr>
+				</table>
+				
+				Feel free to have a look at the <a href="http://www.objectteams.org/distrib/otdt.html#testresults">test status</a> and remaining <a href="http://trac.objectteams.org/ot/wiki/JUnitFailures">known problems</a>.
+			</dd>
+			</dl>
+			
+			<div id="wizards" class="headl"><div class="headr">
+			   <h1>Wizards</h1>
+			</div></div>
+			<ul>
+			
+			<li>The first step to developing with Object Teams in Eclipse is creating an <img class="inline" alt="" src="../images/newprj_wiz.gif"/><code>&nbsp;Object&nbsp;Teams&nbsp;Project</code>. A wizard will guide you through that process. It will also add the Object Teams class library (<tt>otre.jar</tt>) to your project's classpath.
+			</li>
+			
+			<li>
+			
+			Having done that, you can start adding classes &mdash; be it regular classes, or <img class="inline" alt="" src="../images/team_obj.gif"/> team or <img class="inline" alt="" src="../images/role_obj.png"/> role classes &mdash; wizards will assist you in creating the classes properly.
+			</li>
+			</ul>
+			
+			
+			<div id="editor" class="headl"><div class="headr">
+				<h1>Editor</h1>
+	        </div></div>
+			<ul>
+			
+			<li>Editing Object Teams source code is supported by an outline view, showing the structure of the edited source file. This includes the Object Teams specific constructs, 
+				<em>teams</em> (<img class="inline" alt=""  src="../images/team_obj.gif"/>),
+				<em>roles</em> (<img class="inline" alt=""  src="../images/role_obj.png"/>),
+				and <em>method bindings</em> (<img class="inline" alt="" src="../images/callinbindingbefore_obj.gif"/>,
+						 <img  class="inline" alt="" src="../images/callinbindingreplace_obj.gif"/>,
+						 <img class="inline" alt=""  src="../images/callinbindingafter_obj.gif"/>,
+						 <img class="inline" alt=""  src="../images/calloutbinding_obj.gif"/>).</li>
+			
+			<li>The editor highlights the Object Teams keywords like "<code class="keyword">team</code>" the same way standard Java keywords are highlighted.</li>
+			<li>All constructs referencing other code elements are navigable. E.g. you can navigate <tt>super()</tt>, <tt>tsuper()</tt>, <tt>base()</tt> calls, as well as <em>callin</em> and <em>callout bindings</em>. 
+				The name in a <code class="keyword">team package</code> declaration lets you navigate from a role file 
+				(<a href="otjld/def/s1.html#s1.2.5"><img alt="otjld" src="../images/ot_paragraph.png"/> OTJLD &#167; 1.2.5</a>) to its enclosing team.</li>
+			
+			<li>Classes to which one or more roles are bound using <code class="keyword">playedBy</code> are 
+				annotated with a marker (<img class="inline" alt="" src="../images/playedBy_obj.gif"/>), 
+				that allows navigating to the role declaration(s).
+				Similarly, methods in a base class that are bound with a <em>callin binding</em> are 
+				annotated with a marker (<img class="inline" alt="" src="../images/callinbinding_obj.gif"/>), 
+				that allows navigating to the method binding declaration(s).
+				
+			<br/>
+			Because this feature may be resource-consuming in a large workspace the global Object Teams preferences page allows to completely disable the generation of callin markers.</li>
+			
+			<li>Semantic highlighting (checkbox "mark occurrences") is fully supported.</li>
+			<li>Code completion (Ctrl-space) is widely supported. It is, e.g., possible to use completion in order to create a callout binding.</li>
+			<li>Content assist provides quick-fixes (Ctrl-1) for a number of OT/J specific errors and warnings. 
+				Also a few templates for specific OT/J language constructs &mdash; 
+				namely <code>with{}</code> and <code>within (<em>Expression</em>){}</code> &mdash; are available.</li>
+			</ul>
+			
+			<div id="bindingEditor" class="headl"><div class="headr">
+				<h1>Binding Editor</h1>
+			</div></div>
+			<ul>
+			<li>Supports easy creation of connector definitions using a table based graphical user interface. In this context, a <b>connector</b> is meant to be a team that inherits structure
+			(roles) and functionality (methods) from its super-team, and its main purpose is to bind 
+			the inherited structure and functionality using <code class="keyword">playedBy</code> 
+			declarations and callin/callout method bindings.</li>
+			<li>Type bindings (<code class="keyword">playedBy</code>) can be defined by choosing a provided role type and the desired base type with a type selection dialog.</li>
+			<li>Method bindings (either callin or callout) can be established by choosing a role method and a base method from the provided role and base method list respectively.
+			  <ul>
+			        <li>Only appropriate binding kinds are selectable in the corresponding context (callin or callout).</li>
+			        <li>Besides the provided role methods, a new role method can be implemented by selecting a provided base method, thus creating a callout binding.</li>
+			  </ul>
+			</li>
+			<li>Parameter and result mappings are definable by typing in an expression in the corresponding text field of the parameter mapping configuration tab.</li>
+			</ul>
+			The binding editor can be opened either from the new team wizard or using the package explore's context menu (<code><img class="inline" alt="" src="../images/calloutbinding_obj.gif"/>&nbsp;Open&nbsp;Binding&nbsp;Editor</code>).
+			<p></p>
+			<div id="refactoring" class="headl"><div class="headr">
+                <h1>Refactoring</h1>
+	        </div></div>
+			<p></p>
+			<div style="margin:15pt"><i><span style="text-decoration:underline;">Note:</span> The extended refactoring support has been developed based on Eclipse 3.0. Some of this functionality has not yet been ported to Eclipse 3.5 and thus is not yet available in OTDT 1.3.x.</i></div>
+			Significant work has been put into supporting the automated refactoring of OT/J code.
+			The following refactorings take into account the Object Teams-specific 
+			relationships (implicit role inheritance, team nesting, role-base bindings and method 
+			bindings).
+			<ul>
+			<li style="color:gray;">Extract Method <i>(extended support currently unavailable)</i></li>
+			<li style="color:gray;">Move Method <i>(extended support currently unavailable)</i></li>
+			<li>Rename Method</li>
+			<li>Rename Project</li>
+			<li>Rename Source folder</li>
+			<li>Rename Field</li>
+			</ul>
+			The Rename Package refactoring is also available, with the only limitation
+			that you cannot rename team-packages. The Rename Type refactoring does not
+			yet support role files (<a href="otjld/def/s1.html#s1.2.5"><img alt="otjld"  src="../images/ot_paragraph.png"/> OTJLD &sect; 1.2.5</a>).
+			<p></p>
+			
+			<div id="structureViewers" class="headl"><div class="headr">
+		       <h1>Structure Viewers</h1>
+	        </div></div>
+			<dl>
+			<dt><strong>The Package Explorer</strong></dt>
+			<dd>
+				<ul>
+				<li>
+				 provides access to all project artifacts and their structure, i.e. source files, used libraries (<em>jar</em>-files), and other documents. Note that team and role classes are annotated with distinct icons (<img class="inline" alt="" src="../images/team_obj.gif"/> for teams and <img class="inline" alt="" src="../images/role_obj.png"/> for roles). (The same icons are used throughout the IDE, whenever a team or role is visible.)
+				</li>
+				<li>
+				 If "Java Type Indicators" is enabled under general preferences/label decorations, OT-specific decorations will also be applied to compilation units (files) and team packages.
+				</li>
+				<li>
+				By opening the tree-branches, you can peek at the structure of e.g. classes.
+				</li>
+				<li>For team classes, there is special support for <b>role files</b> (<a href="otjld/def/s1.html#s1.2.5"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 1.2.5</a>):<br/>
+				Role files are separate files and can be shown either 
+				<em>physically</em> (<img class="inline" alt="" src="../images/team_package.gif"/>) as (separate) files in the team package or
+				<em>logically</em> (<img class="inline" alt="" src="../images/external_roles.gif"/>) as member types of the enclosing team.
+				</li>
+				<li>
+				Furthermore, the Package Explorer provides the current context for other operations. The Team- and Role-Wizards, for example, have a pre-set source folder, package and enclosing class when a team is selected in the Package Explorer.
+				</li>
+			</ul></dd>
+			<dt><strong>The Hierarchy View</strong></dt>
+			<dd><ul>
+			    <li>Object Teams intruduce a new type hierarchy. Besides the normal ("<code>extends</code>") inheritance, there is an additional "<em>implicit</em>" role inheritance, established by role name equality in a team hierarchy. In conjunction with team nesting roles support a controlled form of multiple inheritance.
+			    </li>
+			    <li>
+			    The new implicit inheritance has been integrated completely into the standard JDT 
+			    <em>Hierarchy View</em>.
+			    The revised Hierarchy View supercedes the incomplete support which was provided by 
+			    a specific "Implicit Hierarchy View" in previous releases of the OTDT.
+			    </li>
+			</ul></dd>
+			</dl>
+			
+			
+			<div id="search" class="headl"><div class="headr">
+		        <h1>Search</h1>
+		    </div></div>
+			<p></p>
+			<dl>
+			<dt><strong>Search references</strong></dt>
+			<dd><ul><li>The Java Search functionality has been extended to include search results of 
+			Object Teams code, that is, callin and callout bindings, and 
+			playedBy-relationships.</li></ul></dd>
+			<dt><strong>Call hierarchy</strong></dt>
+			<dd><ul><li>Also the call hierarchy has been extended for browsing control flows passing
+			through method bindings (callin and callout).</li>
+			<li>The OTDT introduced support for call hierarchies regarding field accesses (read, write, any) and class instantiations. As of version 3.4 this functionality has been adopted by Eclipse.</li>
+			</ul>
+			</dd>
+			</dl>
+			<p></p>
+			
+			<div id="execution" class="headl"><div class="headr">
+			    <h1>Execution Environment</h1>
+			</div></div>
+			<dl>
+			<dt><strong>Aspect weaving</strong></dt><dd>
+			<ul><li>
+			All aspect oriented languages have some kind of <em>weaving process</em>, where the aspect code is combined with the other (<em>base</em>) code.
+			</li>
+			<li>
+			Object Teams programs perform the weaving at application <em>startup time</em>, i.e. at the moment, the program is launched. In order to do this, there is the so-called <em>Object Teams Runtime Environment (OTRE)</em>, that wraps around the standard launching procedure.
+			</li>
+			<li>
+			All this is handled transparently using the standard Eclipse "Run" feature.
+			Running any main class of an Object Teams project automatically includes
+			the OTRE (This feature has been <a href="new_in_1.3.html#launch">changed in the OTDT 1.2.2</a>).
+			</li>
+			</ul></dd>
+			<dt><strong>Aspect deployment/activation</strong></dt>
+			<dd><ul>
+			    <li>A new "Team Activation" tab in the "Run-Configuration" allows to instantiate and activate teams without modifying the program's source code.
+			    </li>
+			    <li>
+			        Teams that cause aspect code to be woven into an application can be added to a program 
+			        <ul>
+			        <li> by explicit reference within the program source code or</li>
+			        <li> by a configuration file which is mentioned as a parameter to the VM or</li>
+			        <li> by adding them via the aforementioned "Team Activation" tab.</li>
+			        </ul>
+			        No such configuration is needed for compilation.
+			    </li>
+			    </ul>
+			</dd>
+			<dt><strong>Technology used</strong></dt>
+			<dd><ul>
+			<li id="JPLIS">Alternative support for a Java 5 based weaver.
+			    The original OT/J-weaver uses the <a href="http://roots.iai.uni-bonn.de/research/jmangler/">JMangler</a> framework for 
+			    intercepting classes during class loading. 
+			    The new version uses the Java-agent concept of Java 5 
+			    (<a href="http://java.sun.com/developer/technicalArticles/releases/j2se15/index.html">JPLIS</a>) instead,
+			    which means we are independent of JMangler. In the future this version will support
+			    aspect weaving not only at load time but also while an application is running.<br/>
+			    The launch configuration for OT/J applications contains a new checkbox for selecting
+			    the weaver ("Java 5 JPLIS Launching"). 
+			    </li>
+			</ul></dd>
+			</dl>
+			<p></p>
+			
+			<div id="otequinox" class="headl"><div class="headr">
+	            <h1>OT/Equinox</h1>
+			    <!--<td width="77%"></td>-->
+			    <!--<td align="right" style="margin-top:0px; margin-bottom:0px;">-->
+			    <!--
+			    <img style="margin-top:0px; margin-bottom:-10px; margin-right:5px; height:60px; align=middle;" src="../images/ot_eclipse_120.gif"/>
+			    -->
+			    <!--</td>-->
+	        </div></div>
+			<p></p>
+			Starting with the OTDT version 0.9.9 it is possible to develop Eclipse plugins using
+			OT/J as the implementation language. 
+			<ul>
+			<li>Using the plugin <code>org.eclipse.objectteams.otequinox</code>, a plugin ("aspect plugin") 
+			    may declare that it adapts classes from a specified other plugin ("base plugin").</li>
+			<li>By an integration of the Object Teams Runtime Environment with new hooks in the 
+			    Equinox implementation a <code class="keyword">team</code> class from an <em>aspect plugin</em>
+			    can trigger byte-code aspect weaving into its <em>base plugin</em> at load-time.
+			    As a result an aspect plugin can indeed adapt the behaviour of another plugin.
+			    These bindings are declared using the extension point <code>aspectBindings</code> from
+			    the mentioned plugin <code>org.eclipse.objectteams.otequinox</code>.</li>
+			<li>The initial client of the OT/Equinox technology is a tiny plugin which extends Eclipse's
+			    "about plugins" dialog by additionally displaying which plugins are being adapted by
+			    which aspect plugins. This information is found in the version column of the mentioned dialog.
+			    This way a user of the OTDT can always check whether a given plugin performs as shipped,
+			    or whether it has been adapted by another plugin.</li>
+			<li>The OTDT uses the capabilities of OT/Equinox for some parts of its own implementation.
+			    The technology is mainly used for making the JDT-UI aware of Object Teams without having
+			    to copy source code or modifying source code of the JDT-UI in place.</li>
+			<li>A new project nature <img class="inline" alt="" src="../images/newpprj_wiz.gif"/>     
+				<code>Object Teams Plugin Project</code> is provided, supporting the
+			    development of plugins written in OT/J.</li>
+			<li>Support for OT/Equinox is added to the run/debug dialogs for all Equinox related launches.</li>
+			<li>If desired the load-time weaver can be disabled by commenting out or removing the following
+			    line from the file <code>configuration/config.ini</code>:
+			    <div class="ttindent" style="font-size:small;">
+			    osgi.hook.configurators.include=org.eclipse.objectteams.eclipse.transformer.hook.HookConfigurator</div>
+			    Ideally, disabling OT/Equinox will be handled by temporarily uninstalling this feature,
+			    but the required support by the p2 provisioning system is not yet stable enough to do this.</li>
+			</ul>
+			<p></p>
+			
+			<div id="debugging" class="headl"><div class="headr">
+	            <h1>Debugging</h1>
+	        </div></div>
+			<p></p>
+			The debugger has been enhanced to support debugging of OT/J programs at the
+			source code level. It is possible to set breakpoints and step through Object Teams code.
+			
+			<dl>
+			<dt><b>Stepping through Code</b></dt>
+			<dd>The following language features produce byte codes for which a standard Java debugger
+			    is not able to display appropriate source locations:
+			    <ul>
+			    <li>Role files (<a href="otjld/def/s1.html#s1.2.5"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 1.2.5</a>)</li>
+			    <li>Implicit inheritance (<a href="otjld/def/s1.html#s1.3.1"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 1.3.1</a>)</li>
+			    <li>Callout bindings (<a href="otjld/def/s3.html"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 3</a>) 
+			    	(including callout override (<a href="otjld/def/s3.html#s3.1.e"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 3.1(e)</a>))</li>
+			    <li>Callin bindings (<a href="otjld/def/s4.html"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 4</a>)</li>
+			    </ul>
+			    The OTDT-Debugger re-maps the byte codes produced by all this constructs to the
+			    appropriate source locations.
+			    As a result stepping through these sections of a program completely hides
+			    the internal translations from the user.<p></p>
+			    The following features are not yet fully supported by the debugger:
+			    <ul>
+			    <li>Role constructors (see <a href="otjld/def/s2.html#s2.4"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 2.4</a>)</li>
+			    <li>Parameters with declared lifting (<a href="otjld/def/s2.html#s2.3.2"><img alt="" src="../images/ot_paragraph.png"/> 
+			    	OTJLD &sect; 2.3.2</a> &mdash; code for lifting is not filtered out yet)</li>
+			    </ul></dd>
+			<dt><b>Setting Breakpoints</b></dt>
+			<dd>Use double click on ruler or context menu <code>Toggle Breakpoint</code> to set 
+				breakpoints in OT/J-Code. Setting breakpoint in role files is supported, too.</dd>
+			<dt id="team_monitor"><b>New View: "Team Monitor"</b></dt>
+			<dd>The team monitor (<img src="../images/tm.gif" alt="" class="inline"/>)
+				 view helps to debug issues related to team activation 
+				 (<a href="otjld/def/s5.html#s5"><img alt="" src="../images/ot_paragraph.png"/> OTJLD &sect; 5</a>). 
+				 For this purpose it displays all known team instances and shows their activation status as one of
+				<ul>
+				<li>inactive <img src="../images/team_inact.gif" alt="" class="inline"/>,</li>
+				<li>active <img src="../images/team_act.gif" alt="" class="inline"/> 
+				    (either globally or for the thread selected in the debug view), or</li>
+				<li>implicitly active
+				     <img src="../images/team_act_implicit.gif" alt="" class="inline"/> 
+				    (temporarily active because the team or one of its roles is currently executing code).
+				</li></ul>
+				Also, a selected team can be (de)activated interactively via the context menu.</dd>
+			<dt id="variables_filter"><b>Filtering variables</b></dt>
+			<dd>The OT/J compiler and the loadtime weaver both add some internal variables to the code.
+				By default such internal variables are hidden within the Team Monitor as well 
+				as in the standard variables view. Both views can be configured to also show these internal
+				variables if so desired.</dd>
+			<dt><b>Known Issues and Limitations</b></dt>
+			<dd><ul>
+			    <li>Dynamic code evaluation is not supported yet, 
+			    make sure to clear the Expression view.</li>
+			    <li>Hot code replacement of woven code is not supported.</li>
+			  </ul></dd>
+			</dl>
+			
+			<div id="help" class="headl"><div class="headr">
+			    <h1>Help and additional Information</h1>
+			</div></div>
+			<p></p>
+			The following sources for help and for further information are bundled with the release:
+			<ul>
+			<li>A Tutorial (available via the welcome page) guiding through the first steps of using the OTDT.</li>
+			<li>Example programs demonstrating key features of Object Teams (also via the welcome page).</li>
+			<li>A detailed <a href="guide/webindex.html">guide</a> on using the OTDT via the Help Index, including a link to the
+			    language definition (which is also bundled).</li>
+			<li>Problems that are listed in the problem view are linked (when possible) to a corresponding explanatory entry in the language definition.
+			(Context menu -&gt; <img alt="" src="../images/ot_paragraph.png"/><code>&nbsp;Go&nbsp;to&nbsp;Language&nbsp;Definition</code>).</li>
+			</ul>
+			<p>
+			<!--
+			<table width="100%" class="h2"><tr>
+			          <td class="h2">Movies demonstrating the OTDT</td></tr>
+			    </table>
+			
+			<p>
+			As an introduction to the OTDT you may watch the following movies (requires a plugin for Shockwave Flash Media):
+			<ul>
+			 <li><a href="javascript:popup_window( 'otdt/IntroductionToOTDT_viewlet_swf.html', 'IntroductionToOTDT', 1048, 816 );">Introduction to the Object Teams Development Tooling</a>
+			 <li><a href="javascript:popup_window( 'otdt/OTDTbyExample_viewlet_swf.html', 'OTDTbyExample', 1048, 816 );">Introducing the Object Teams Development Tooling by Example</a>
+			
+			 <li>... more movies will follow.
+			 </ul><p></p>
+			-->
+			</p>
+		</div><!-- content -->
+	</body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/brkp_obj.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/brkp_obj.gif
new file mode 100644
index 0000000..a831fe7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/brkp_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/bundle_obj.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/bundle_obj.gif
new file mode 100644
index 0000000..b6096e2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/bundle_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/debugt_obj.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/debugt_obj.gif
new file mode 100644
index 0000000..c1e4ee3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/debugt_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/disconnect_co.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/disconnect_co.gif
new file mode 100644
index 0000000..d8fdd8a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/disconnect_co.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/eclipse_launcher.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/eclipse_launcher.gif
new file mode 100644
index 0000000..eb7b90c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/eclipse_launcher.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_app.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_app.gif
new file mode 100644
index 0000000..a42a7c8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_app.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_attach.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_attach.gif
new file mode 100644
index 0000000..3c42f63
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/java_attach.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunch.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunch.gif
new file mode 100644
index 0000000..ec4885d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunch.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunchpgn.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunchpgn.gif
new file mode 100644
index 0000000..6e4ff2c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/julaunchpgn.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/junit.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/junit.gif
new file mode 100644
index 0000000..229e93f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/junit.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/library_obj.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/library_obj.gif
new file mode 100644
index 0000000..cb55e33
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/library_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/over_co.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/over_co.gif
new file mode 100644
index 0000000..938767b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/over_co.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/AspectBindingsInPackageExplorer.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/AspectBindingsInPackageExplorer.png
new file mode 100644
index 0000000..377d0c5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/AspectBindingsInPackageExplorer.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CallHierarchy.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CallHierarchy.png
new file mode 100644
index 0000000..139b69e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CallHierarchy.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareMenu.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareMenu.png
new file mode 100644
index 0000000..2745c2d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareMenu.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareWithBaseMethod.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareWithBaseMethod.png
new file mode 100644
index 0000000..5922bd2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/CompareWithBaseMethod.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/ForcedExports.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/ForcedExports.png
new file mode 100644
index 0000000..1cdfaee
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/ForcedExports.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/JRETab.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/JRETab.png
new file mode 100644
index 0000000..0eab727
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/JRETab.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/OSGiLaunchSettings.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/OSGiLaunchSettings.png
new file mode 100644
index 0000000..b42806c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/OSGiLaunchSettings.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RemoteDebugging.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RemoteDebugging.png
new file mode 100644
index 0000000..a9ab7a9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RemoteDebugging.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RuntimeWorkbenchMainTab.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RuntimeWorkbenchMainTab.png
new file mode 100644
index 0000000..70fc20b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/RuntimeWorkbenchMainTab.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/addOTNature.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/addOTNature.png
new file mode 100644
index 0000000..7223ce4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/addOTNature.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinMarker.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinMarker.jpg
new file mode 100644
index 0000000..ba523f3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinMarker.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu.png
new file mode 100644
index 0000000..82c2ed6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu3.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu3.png
new file mode 100644
index 0000000..9898d94
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarker-menu3.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarkers.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarkers.png
new file mode 100644
index 0000000..ca31ef0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/callinmarkers.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/calloutmarker.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/calloutmarker.png
new file mode 100644
index 0000000..df2792f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/calloutmarker.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_1.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_1.png
new file mode 100644
index 0000000..06c014c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_1.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_2.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_2.png
new file mode 100644
index 0000000..47bd64d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_2.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_3.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_3.png
new file mode 100644
index 0000000..c469fc5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/complete_binding_3.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/completion1.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/completion1.png
new file mode 100644
index 0000000..03e1c98
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/completion1.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_callin_stepping.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_callin_stepping.png
new file mode 100644
index 0000000..9aacadd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_callin_stepping.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_filtering.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_filtering.png
new file mode 100644
index 0000000..2415cad
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/debug_prefs_filtering.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/implicitRoleHierarchy.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/implicitRoleHierarchy.jpg
new file mode 100644
index 0000000..9fb553c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/implicitRoleHierarchy.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/langdef.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/langdef.png
new file mode 100644
index 0000000..ceb99ad
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/langdef.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.jpg
new file mode 100644
index 0000000..2e3e404
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.png
new file mode 100644
index 0000000..9a7f728
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/launchConfig.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/outline.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/outline.jpg
new file mode 100644
index 0000000..30d0be8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/outline.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.jpg
new file mode 100644
index 0000000..ec54eb2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.png
new file mode 100644
index 0000000..ee7a1c2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer_logical.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer_logical.png
new file mode 100644
index 0000000..317090b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/packageExplorer_logical.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.jpg
new file mode 100644
index 0000000..46d5145
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.png
new file mode 100644
index 0000000..8f82b02
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/perspective.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/projectWizard.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/projectWizard.jpg
new file mode 100644
index 0000000..3f421b5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/projectWizard.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/roleWizard.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/roleWizard.jpg
new file mode 100644
index 0000000..dafeb96
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/roleWizard.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_callin.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_callin.png
new file mode 100644
index 0000000..dc0158e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_callin.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_earnCredit.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_earnCredit.png
new file mode 100644
index 0000000..9c38c64
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_entered_earnCredit.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_hit_callin.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_hit_callin.png
new file mode 100644
index 0000000..ad6bfb8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_hit_callin.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_lifting.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_lifting.png
new file mode 100644
index 0000000..28d86cc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/stack_lifting.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/teamWizard.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/teamWizard.jpg
new file mode 100644
index 0000000..44cc2f9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/teamWizard.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/team_monitor_marked.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/team_monitor_marked.png
new file mode 100644
index 0000000..9e35920
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/team_monitor_marked.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/typeHierarchy.jpg b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/typeHierarchy.jpg
new file mode 100644
index 0000000..e90444d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/screenshots/typeHierarchy.jpg
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepinto_co.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepinto_co.gif
new file mode 100644
index 0000000..75d165b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepinto_co.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepover_co.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepover_co.gif
new file mode 100644
index 0000000..1ec36ae
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepover_co.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepreturn_co.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepreturn_co.gif
new file mode 100644
index 0000000..4c2f219
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/stepreturn_co.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act.gif
new file mode 100644
index 0000000..58a8638
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act_implicit.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act_implicit.gif
new file mode 100644
index 0000000..41dc6c2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_act_implicit.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_inact.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_inact.gif
new file mode 100644
index 0000000..2b5ea0d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/images/team_inact.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/methodcompare.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/methodcompare.html
new file mode 100644
index 0000000..756ac83
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/methodcompare.html
@@ -0,0 +1,42 @@
+<html>
+<head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Comparing Bound Methods</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+</head>
+<body>
+<h1>Comparing Bound Methods</h1>
+
+
+
+<table><tr><td width="320" valign="top">
+    	<p>
+    	<strong>The OTDT provides a special action for comparing a role method with the base method to which it is bound.</strong>
+    	</p>
+    	<p>
+    	To invoke this action the <strong>context menu</strong> of a callin method binding (in package explorer or outline)
+    	is used: <span class="ui"><nobr>Compare With > <img src="../images/callinbindingreplace_obj.gif"> Bound Base Method</nobr></span>.
+    	Alternatively, the context menu can also be used on a <code class="keyword">callin</code> method.
+    	</p>
+    	<p>
+    	When invoked this action opens a <strong>compare editor</strong>, the left hand side showing the role method
+    	and the right hand side showing the bound base method.
+    	The role method is editable whereas the base method is shown read-only.
+    	</p>
+    	<p>
+    	The action is most useful for <code class="keyword">callin</code> methods that are created
+    	by copying the base method in order to apply fine grained modifications.
+    	In this situation the compare editor can be used to inspect and update the modifications
+    	as well as adopt any changes that might have occurred to the base method during evolution.
+    	</p>
+    	</td>
+    	<td>
+    	<img alt="Compare menu" src="images/screenshots/CompareMenu.png">
+    	</td></tr></table>
+    	<p>
+    	<img alt="Compare editor for bound methods" src="images/screenshots/CompareWithBaseMethod.png">
+    	</p>
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otguide.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otguide.css
new file mode 100644
index 0000000..77c7bba
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otguide.css
@@ -0,0 +1,2 @@
+.ui { background-color:#e0e0e0; padding:2px; }
+body { margin:10px; }
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.css
new file mode 100644
index 0000000..1418b3d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.css
@@ -0,0 +1,468 @@
+/**

+ * @author mosconi

+ */

+

+/**

+ * color table

+ * light-yellow:	#fffce4

+ * light-gray:		#e0e0f0

+ * violet:			#606080

+ * light-violet:	#9090b0

+ */

+

+/* page initialization */

+html, body {

+	overflow: auto;

+    padding: 0;

+    margin: 0;

+	margin-bottom: 4px;

+    border: 0;

+	font-family: helvetica,avalon,sans-serif;

+/*	font-size: 12pt; */

+}

+

+img {

+	border-style: none;

+}

+

+h4 {

+	color: #000060;

+}

+

+dt {

+	margin-top: 10px;

+}

+dd {

+	margin-bottom: 10px;

+}

+

+/* hyperlinks */

+a:link { color: #3010ff; text-decoration: none; }

+a:visited { color: #5060f7; text-decoration: none; }

+a:focus { }

+a:hover { color: black; background-color: #e8e8fc; text-decoration: none; }

+a:active { }

+

+a img, a.img {

+	border-style: none;

+	background-color: transparent;

+}

+

+/* top page area (horizontal) */

+#head {

+    position: absolute; /* switched to 'fixed' by javascript dynamically */

+    top: 0;

+    left: 0;

+    height: 80px; /* defines header height */

+    width: 100%;

+	margin: 0;

+	padding: 0;

+    border: 0;

+    border-bottom: solid 2px #e0e0f0; /* light-gray */

+    background-color: #fffce4; /* light-yellow */

+    background-image: url(../images/WebHeadBar.png);

+    background-position: top;

+    background-repeat: repeat-x;

+    z-index: 5;

+}

+

+/* page heading (title) */

+#head h1 {

+	margin: 0;

+	margin-left: 240px; /* width of #left + #logo */

+	margin-right: 49px; /* width of #logo, to center above content */

+	margin-top: 40px; /* vertically centered in head */

+	padding: 0;

+	text-align: center;

+	font-size: 18pt;

+	white-space: nowrap;

+}

+

+/* left page area (vertical) - contains logo */

+#left {

+    position: fixed;

+    top: 0;

+    left: 0;

+    width: 191px; /* image size */

+    height: 100%;

+	overflow: auto;

+	border: 0;

+    border-right: solid 2px #e0e0f0; /* light-gray */

+    background-color: #fffce4; /* light-yellow */

+    background-image: url(../images/WebHead1.png);

+	background-position: left top;

+    background-repeat: no-repeat;

+	background-attachment: scroll;

+    z-index: 6;

+}

+

+/* right part of the logo */

+#logo {

+    position: absolute; /* switched to 'fixed' by javascript dynamically */

+    top: 0;

+    left: 191px; /* width of #left */

+    width: 49px; /* image size */

+    height: 80px; /* height of #head */

+    border: 0;

+	background-color: #fffce4; /* light-yellow */

+    background-image: url(../images/WebHead2.png);

+	background-position: left top;

+    background-repeat: no-repeat;

+    z-index: 7;

+}

+

+/* rounded top left corner of content area */

+#corner {

+	position: absolute; /* switched to 'fixed' by javascript dynamically */

+	top: 80px; /* height of #head */

+	left: 191px; /* width of #left */

+    width: 30px; /* image size */

+    height: 30px; /* image size */

+	border: 0;

+    background-image: url(../images/bend-trans.png);

+    background-repeat: no-repeat;

+	z-index: 9;

+}

+

+#head.fixed, #logo.fixed, #corner.fixed { /* class applied by javascript dynamically */

+    position: fixed;

+}

+

+/* content page area */

+#content, #footer {

+	position: static;

+	padding-left: 15px;

+	padding-right: 15px;

+	padding-bottom: 0;

+	padding-top: 97px; /* height of #head (+ border) + 15 padding */ /* more compatible than margin-top */

+	margin-left: 193px; /* width of #left (+ border) */

+	border: 0;

+    z-index: 1;

+}

+

+/* page footer: */

+#footer {

+	padding-top: 0;

+	padding-bottom: 10px;

+	margin-bottom: 10px;

+	font-size: 10pt;

+	color: gray;

+}

+.w3c {

+	float: right;

+}

+

+/* navigation box - specializes div.box */

+#nav-box {

+    top: 120px;
+}
+#nav-box li {

+	background: url(../images/arrow-right-trans.png) no-repeat left 50%;

+	padding-left: 23px;

+}

+#nav-box li:hover {

+	background: #e8e8fc url(../images/arrow-right2-trans.png) no-repeat left 50%;

+}

+#nav-box li.active {

+	background: #e8e8fc url(../images/arrow-right2-trans.png) no-repeat left 50%;

+	/* border-right: solid 4px #606080; */

+	margin-right: -4px;

+}

+

+/* news box - specializes div.box */

+#news-box {
+    top: 180px;

+    font-size: 9pt;
+}

+#news-box ul a {

+	margin-bottom: 5px;

+	padding-bottom: 5px;

+	border-bottom: solid 1px #e0e0f0; /* light-gray */

+	color: #000000;

+}

+#news-box .date {

+	font-style: italic;

+	text-decoration: underline;

+}

+#news-box ul a:link .date {

+	color: #3010ff; /* a:link-blue */

+}

+#news-box ul a:visited .date {

+	color: #5060f7; /* a:visited-blue */

+}

+

+/* boxes for #left area */

+div.box {

+    position: relative;

+    left: 10px;

+    width: 165px;

+	margin: 0;

+	padding: 0;

+    border: solid 2px #606080; /* violet */

+    background-color: #ffffff;

+    z-index: 7;

+	font-size: 10pt;

+}

+.box-content {

+	margin-top: 0;

+	margin-bottom: 0;

+	margin-left: 12px;

+	margin-right: 12px;	

+}

+div.box ul {

+	list-style: none;

+	padding-left: 0;

+}

+div.box ul a {

+	width: 100%;

+	display: block;

+	margin: 0;

+	padding: 0;

+}

+div.box ul a:hover {

+	border-right: solid 4px #606080;

+}

+

+/* boxes for #left area - top rounded heading */

+div.boxheadl {

+	position: relative; top: -15px; left: -2px;

+	height: 30px;

+	width: 169px; /* width of div.box + 4px border */

+	background: url(../images/heading-left-small.png) no-repeat left;

+	margin: 0;

+	padding: 0;

+}

+div.boxheadr {

+	height: 30px;

+	background: url(../images/heading-right-small.png) no-repeat top right;

+	margin: 0;

+	padding: 0;

+}

+div.boxheadr h1 {

+	height: 26px;

+	border-top: 2px solid #606080; /* violet */

+	border-bottom: 2px solid #606080; /* violet */

+	background-color: #9090b0; /* light-violet */

+	color: #fffce4; /* light-yellow */

+	font-size: 14pt;

+	font-style: normal;

+	font-weight: normal;

+	text-align: center;

+	line-height: 26px;

+	vertical-align: middle;

+	white-space: nowrap;

+	margin: 0;
+	margin-left: 15px;

+	margin-right: 15px;

+	padding: 0;

+}

+

+/* boxes for #left area - bottom rounded corners */

+div.boxbottoml {

+	position: relative; top: 15px; left: -2px;

+	height: 15px;

+	width: 169px; /* width of div.box + 4px border */

+	background: url(../images/bottom-left-small.png) no-repeat left;

+	margin: 0;

+	margin-top: -15px;

+	padding: 0;

+}

+div.boxbottomr {

+	height: 15px;

+	background: url(../images/bottom-right-small.png) no-repeat right bottom;

+	margin: 0;

+	padding: 0;

+}

+div.boxbottomm{

+	height: 13px;

+	background-color: #ffffff;

+	border-bottom: 2px solid #606080; /* violet */

+	margin: 0;

+	margin-left: 15px;

+	margin-right: 15px;

+}

+

+/* Section heading rounded bar (with icon) */

+div.headl {

+	height: 40px;

+	width: 100%;

+	background: url(../images/heading-left.png) no-repeat left;

+	margin-bottom: 10px;

+	margin-top: 30px;

+	padding: 0;

+}

+div.headr {

+	height: 40px;

+	background: url(../images/heading-right.png) no-repeat right;

+	margin: 0;

+	padding: 0;

+}

+div.headr h1 {

+	height: 36px;

+	border-top: 2px solid #606080; /* violet */

+	border-bottom: 2px solid #606080; /* violet */

+	background: #9090b0 url(../images/ot32.png) no-repeat left 50%;

+	color: #fffce4; /* light-yellow */

+	font-size: 18pt;

+	line-height: 36px;

+	vertical-align: middle;

+	white-space: nowrap;

+	overflow: hidden;

+	margin: 0;

+	margin-left: 20px;

+	margin-right: 20px;

+	padding: 0;

+	padding-left: 50px;

+}

+

+/* horizontal line */

+div.line, span.line, dt.line {

+	display: block;

+	clear: both;

+	width: 100%;

+	height: 4px;

+	background: url(../images/line.gif) no-repeat left;

+}

+

+/* publications: separator line mentioning the year: */

+span.yearline {

+	display: block;

+	clear: both;

+	width: 100%;

+	height: 4px;

+	background: url(../images/line.gif) no-repeat left;

+	margin:0;

+	padding-left:616px;

+	color:gray;

+	font-weight:bold;

+}

+

+/* Intro: */

+div.intro {

+	width: 90%;

+	max-width: 820px;

+	margin: 10px;

+	margin-left: 40px;

+	margin-right: auto;

+}

+

+div.term {

+	float: left;

+	width: 25%;

+	min-width: 130px;

+	max-width: 190px;

+	padding: 2px;

+	color: #000060;

+}

+

+div.termdesc {

+	float: left;

+	width: 70%;

+	min-width: 300px;

+	max-width: 600px;

+	padding: 2px;

+}

+

+

+/* tables: */

+table, td, th { /* from otjld.css - should be refactored */

+	border-style: none;

+	border-width: 0;

+	border-spacing: 0px;

+	border-collapse: collapse;

+	padding: 2px 6px;

+}

+

+.border td {

+	border: 1px solid #e0e0f0;

+}

+

+.noborder td {

+	border: none;

+}

+

+table.default, table.default td {

+	border-style: solid;

+	border-color: #e0e0f0;

+	border-width: 2px;

+	border-spacing: 0px;

+	border-collapse: collapse;

+	padding: 2px 6px;

+	margin: 10px;

+}

+table.default th {

+	background-color:#e0e0f0;

+} 

+

+table.default-mm th {

+	color: #fffce4; /* light-yellow */

+	background-color: #9090b0; /* light-violet */

+}

+table.default td {

+	background-color: #fffce4; /* light-yellow */

+}

+

+span.hint-box {

+	display: inline-block;

+	width: auto;

+	background-color: #fffce4; /* light-yellow */

+	border: 2px solid #e0e0f0;

+	padding: 2px 10px;

+}

+

+a.helplink {

+	background: url(../images/linkto_help.gif) no-repeat left;

+	padding-left: 20px;

+    font-size: 10pt;

+}

+

+/* misc layout options */

+.center {

+	text-align: center;

+}

+.indent5 {

+    padding-left: 5mm;

+}

+div.indent {

+    margin-left:20pt;

+}

+div.ttindent {

+    font-family:courier,monospace;

+    margin-left:20pt;

+}

+/* special highlighting: */

+.black {

+	color: black;

+	font-weight: bold;

+}

+.darkblue {

+	color: #000060;

+}

+.error {

+	color: red;

+}

+.blue {

+	color: blue;

+}

+.green {

+	color: green;

+}

+.underline {

+	text-decoration: underline;

+}

+code.keyword {

+   color:#7F0055;

+   font-weight:bold;

+}

+/* zebra stripes ;-) */

+.z1 { background-color:#fff0c8; }

+.z2 { background-color:#fff8e0; }

+.z3 { background-color:#fffce4; } 

+

+

+/* to clear floats: */

+div.clearer {

+	clear: both;

+	line-height: 0pt;

+	font-size: 1px;

+}

diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.fix-ie6.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.fix-ie6.css
new file mode 100644
index 0000000..2f2055b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/ot.fix-ie6.css
@@ -0,0 +1,45 @@
+/**

+ * contains fixes for IE version < 7

+ * @author mosconi

+ */

+html {

+	height: 100%;

+    max-height: 100%;

+}

+

+#left {

+	position: absolute; /* switched to 'fixed' by javascript dynamically */

+	height: 1000px;

+}

+#left.fixed { /* class applied by javascript dynamically */

+    position: fixed;

+}

+

+/* display content over rounded corner background */

+#content {

+	z-index: 99; /* overwritten by javascript to 1 */

+}

+

+div.boxheadr {

+	margin-right: -4px;

+	overflow: visible;

+}

+div.boxbottomr {

+	margin-right: -4px;

+	overflow: visible;

+}

+div.boxbottomm{

+	height: 13px;

+	overflow: hidden;

+	margin-top: 0;

+	margin-bottom: 0;

+	margin-left: 15px;

+	margin-right: 15px;

+}

+

+#nav-box li {

+	background: none;

+	list-style: url(../images/arrow-right-trans.png);

+	padding-left: 5px;

+	margin-left: 15px;

+}

diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/otjld.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/otjld.css
new file mode 100644
index 0000000..eed8a8b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/css/otjld.css
@@ -0,0 +1,291 @@
+/* override margins from ot.css: */

+body.otdt {

+	margin: 4px;

+	padding: 4px;

+}

+

+body.otdt #content {

+	margin: 0;

+	padding: 0;

+}

+

+body.otdt #footer {

+	margin-top: 10px;

+	margin-left: 4px;

+}

+

+/* Syntax links: */

+a.syntax {

+	border: 1px solid red;

+	margin: 2px;

+	padding: 2px;

+}

+

+/* ToC page: */

+div.toc {

+	font-weight: bold;

+	padding-left: 20px;

+}

+

+div.toc.depth1 {

+	font-size: 1.2em;

+}

+

+div.toc.depth2 {

+	padding-left: 50px;

+}

+div.toc.depth2 a {

+	color: black;

+}

+

+div.toc.depth3 {

+	padding-left: 80px;

+}

+div.toc.depth3 a {

+	color: black;

+}

+

+/* Chapter headings (with icon): */

+div.chapter {

+	margin: 0px;

+	padding: 0px;

+}

+

+/* Mini-ToC-Box: */

+div#toc-box {

+	position: fixed;

+	top: 100px;

+	right: 5px;

+	width: 22pt;

+	z-index: 9;

+	background-color: #fff8e0;

+	border: 2px solid #e0e0f0;

+	border-right: none;

+	font-size: 10pt;

+	white-space: nowrap;

+	opacity: 0.5;

+	-moz-opacity: 0.5;

+	filter: alpha(opacity=50);

+}

+

+div#toc-box.web {

+	top: 200px;

+}

+

+div#toc-box:hover {

+	right: 5px;

+	width: auto;

+	border: 2px solid #e0e0f0;

+	opacity: 0.9;

+	-moz-opacity: 0.9;

+	filter: alpha(opacity=90);

+}

+

+ul.toc-box {

+	list-style-type: none;

+	margin: 5px;

+	padding: 0px;

+}

+

+/* (Sub)sections: */

+div.sect, div.aux {

+	padding-left: 5px;

+	margin-right: 25pt;

+}

+

+h2.sect {

+	position: relative;

+	background-color: #e0e0f0;

+	padding: 2px;

+	padding-left: 10px;

+}

+

+h3.sect, h4.aux {

+	position: relative;

+	background-color: #e0e0f0;

+	padding: 2px;

+	padding-left: 5px;

+}

+

+div.subsect {

+	width: 90%;

+	margin-left: 20px;

+	margin-right: 20px;

+	margin-top: 10px;

+	margin-bottom: 10px;

+}

+

+h4.subsect {

+	font-weight: normal;

+	margin-left: -20px;

+	margin-bottom: 4px;

+}

+h4.subsect + p {

+	margin-top: 2px;

+}

+

+h4.subsect .title {

+	text-decoration: underline;

+}

+

+span.toplink {

+	position: absolute; right: 10px;

+	font-size: 10pt;

+	font-weight: normal;

+}

+

+/* Listings: */

+div.listing {

+	float: none;

+	width: 90%;

+	overflow: auto;

+	font-family: Courier;

+	font-size: 10pt;

+	padding: 0;

+	margin: 2px;

+}

+

+div.listing.frame {

+	border: 4px solid #9090B0;	

+}

+

+table.listing {

+	width: 100%;

+	border: none;

+	border-spacing: 0;

+	border-collapse: collapse;

+}

+

+tr.line.odd {

+	background-color: #fff0c8;

+}

+

+tr.line.even {

+	background-color: #fff8e0;

+}

+

+div.listing pre {

+	margin: 0px;

+	padding: 2px;

+}

+

+td.ln {

+	color: #5060f7;

+	width: 20px;

+	text-align: right;

+	vertical-align: middle;

+	font-size: 12pt;

+	padding-left: 5px;

+	padding-right: 10px;

+}

+

+pre em {

+	font-style: normal;

+	color: blue;

+}

+pre .comment {

+	color: green;

+}

+

+h5.listing {

+	margin-bottom: 0px;

+}

+

+/* other OTJLD elements: */

+div.note {

+	font-style: italic;

+	margin-left: 10px;

+}

+

+div.codecomment {

+	width: 90%;

+	background-color: #fff8e0;

+	font-size: 0.8em;

+	margin-top: 5px;

+	padding: 2px;

+}

+div.codecomment>h5, div.note>h5 {

+	margin: 2px;

+}

+div.codecomment>h5+p, div.note>h5+p {

+	margin-top: 2px;

+}

+

+table.syntaxrule {

+	width: 80%;

+	border: 2px solid #e0e0f0;

+	border-spacing: 0px;

+	border-collapse: collapse;

+	margin: 4px;

+	padding: 0;

+}

+table.syntaxrule td.sect {

+	width: 80px;

+	border: 2px solid #e0e0f0;

+	padding: 5px;

+	vertical-align: top;

+	font-weight: bold;

+}

+table.syntaxrule td.rule {

+	padding-left: 20px;

+	background-color: #fff8e0;

+}

+table.syntaxrule .title {

+	margin-left: -10px;

+	font-weight: bold;

+	font-style: italic;

+	color: blue;

+}

+

+ol.constraints {

+	list-style-type: lower-alpha;

+}

+ol.constraints .title {

+	text-decoration: underline;

+}

+h5.constraints {

+	margin-bottom: 2px;

+}

+

+/* page navigation: */

+table.nav {

+	border: 2px solid #e0e0f0;

+	border-collapse: collapse;

+	width: 95%;

+	white-space: nowrap;

+	margin-left: auto;

+	margin-right: auto;

+	margin-top: 5px;

+	margin-bottom: 5px;

+	background-color: #fff8e0;

+	font-size: 10pt;

+}

+

+td.back {

+	width: 35%;

+	padding-left: 4px;

+	text-align: left;

+	white-space: nowrap;

+}

+td.top {

+	border: 2px solid #e0e0f0;

+	text-align: center;

+	white-space: nowrap;

+}

+td.next {

+	width: 35%;

+	padding-right: 4px;

+	text-align: right;

+	white-space: nowrap;

+}

+

+div.breadcrumb {

+	width: 95%;

+	margin-left: auto;

+	margin-right: auto;

+	white-space: nowrap;

+}

+

+a.nav {

+	font-size: 10pt;

+}

diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_left.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_left.png
new file mode 100644
index 0000000..bc2bff7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_left.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_right.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_right.png
new file mode 100644
index 0000000..3c4af59
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/heading_right.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/line.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/line.gif
new file mode 100644
index 0000000..212443d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/line.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/otjld.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/otjld.css
new file mode 100644
index 0000000..3766d48
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/otjld.css
@@ -0,0 +1,474 @@
+body {
+	background-color: #ffffff;
+	font-family: helvetica,avalon,sans-serif;
+	margin: 4px;
+	padding: 4px;
+}
+
+/* Web-Design: (copied from ot2.css) */
+
+body.web-design {
+  z-index:0;
+  background-image:url(gray.png);
+  background-repeat:repeat-y;
+  background-position: left;
+}
+
+#logo { 
+  position: fixed; top: 0px; left: 0px;
+  white-space: nowrap;
+  width: 100%;
+  z-index: 16;
+}
+
+img#topbar {
+	vertical-align: top;
+}
+
+a#back {
+    background-color: inherit;
+}
+
+a.showmenu { color:#fffce4; background-color:inherit; }
+a:hover.showmenu { color:#FFA500; background-color:inherit; cursor:pointer;} /* color: orange1 */
+div#showmenu {
+  position:fixed;top:10px;left:2px;
+  font-size:6pt;
+  z-index:17;
+}
+
+#chead {
+    position:fixed;top:-7px;left:0px;
+    background-color:#fffce4;
+    background-image:url(gray.png);
+    background-repeat:repeat-x;
+    background-position: bottom;
+    
+    padding-top:13px;
+    padding-left:0px;
+    padding-right:0px;
+    width:100%;
+    height:38px;
+    z-index:10;
+    margin-left:22px;
+    margin-top:35px;
+    font-size:18pt;
+    font-weight:bold;
+    text-align:center;
+    text-shadow: #e4e0d6 2px 3px 1px;
+}
+
+#bend{
+  position:fixed;top:60px;left: 0px;
+  background-image:url(bend-trans.png);
+  background-repeat:no-repeat;
+  width:30px;
+  height:50px;
+  margin-left:0px;
+  margin-top:0px;
+  z-index:11;
+}
+
+#spacer {
+  height: 80px;
+}
+
+
+/* Links: */
+a:visited { color: #5060f7; text-decoration: none; }
+a:link    { color: #3010ff; text-decoration: none; }
+a:hover  { color: black; background-color: #e8e8fc; }
+
+a.syntax {
+	border: 1px solid red;
+	margin: 2px;
+	padding: 2px;
+}
+
+a img {
+	border-style: none;
+}
+
+/* ToC page: */
+div.toc {
+	font-weight: bold;
+	padding-left: 20px;
+}
+
+div.toc.depth1 {
+	font-size: 1.2em;
+}
+
+div.toc.depth2 {
+	padding-left: 50px;
+}
+div.toc.depth2 a {
+	color: black;
+}
+
+div.toc.depth3 {
+	padding-left: 80px;
+}
+div.toc.depth3 a {
+	color: black;
+}
+
+/* Chapter headings (with icon): */
+div.chapter {
+	margin: 0px;
+	padding: 0px;
+}
+
+div.headl {
+	height: 40px;
+	width: 100%;
+	background: url(heading_left.png) no-repeat left;
+	margin-bottom: 10px;
+	margin-top: 0px;
+	padding: 0px;
+}
+
+div.headr {
+	height: 40px;
+	background: url(heading_right.png) no-repeat top right;
+	margin: 0px;
+	padding: 0px;
+}
+
+div.headr h1 {
+	height: 34px;
+	border-top: 2px solid #626280;
+	border-bottom: 2px solid #626280;
+	background-color: #9090B0;
+	color:#ffffe0;
+	font-size: 20pt;
+	margin-left: 50px;
+	margin-right: 22px;
+	padding-left: 10px;
+	padding-top: 2px;
+	margin-top: 0px;
+	margin-bottom: 0px;
+	padding-bottom: 0px;
+}
+
+/* Mini-ToC-Box: */
+div.toc-box, div#toc-box { /* transitionally support both class and id [SH] */
+	position: fixed;
+	top: 100px;
+	right: 5px;
+	width: 22pt;
+	z-index: 9;
+	background-color: #fff8e0;
+	border: 2px solid #e0e0f0;
+	border-right: none;
+	font-size: 10pt;
+	white-space: nowrap;
+	opacity: 0.5;
+	-moz-opacity: 0.5;
+	filter: alpha(opacity=50);
+}
+
+div#toc-box.web-design {
+	top: 180px;
+}
+
+div#toc-box:hover {
+	right: 5px;
+	width: auto;
+	border: 2px solid #e0e0f0;
+	opacity: 0.9;
+	-moz-opacity: 0.9;
+	filter: alpha(opacity=90);
+}
+
+ul.toc-box {
+	list-style-type: none;
+	margin: 5px;
+	padding: 0px;
+}
+
+/* Intro: */
+div.intro {
+	width: 90%;
+	max-width: 820px;
+	margin: 10px;
+	margin-left: 40px;
+	margin-right: auto;
+}
+
+div.line {
+	clear: both;
+	height: 5px;
+	background: url(line.gif) no-repeat left;
+}
+
+div.term {
+	float: left;
+	width: 25%;
+	min-width: 130px;
+	max-width: 190px;
+	padding: 2px;
+	color: #000060;
+}
+
+div.termdesc {
+	float: left;
+	width: 70%;
+	min-width: 300px;
+	max-width: 600px;
+	padding: 2px;
+}
+
+/* (Sub)sections: */
+div.sect, div.aux {
+	padding-left: 5px;
+	margin-right: 25pt;
+}
+
+h2.sect {
+	position: relative;
+	background-color: #e0e0f0;
+	padding: 2px;
+	padding-left: 10px;
+}
+
+h3.sect, h4.aux {
+	position: relative;
+	background-color: #e0e0f0;
+	padding: 2px;
+	padding-left: 5px;
+}
+
+div.subsect {
+	width: 90%;
+	margin-left: 20px;
+	margin-right: 20px;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+
+h4.subsect {
+	font-weight: normal;
+	margin-left: -20px;
+	margin-bottom: 4px;
+}
+h4.subsect + p {
+	margin-top: 2px;
+}
+
+h4.subsect .title {
+	text-decoration: underline;
+}
+
+span.toplink {
+	position: absolute; right: 10px;
+	font-size: 10pt;
+	font-weight: normal;
+}
+
+/* Listings: */
+div.listing {
+	float: none;
+	width: 90%;
+	overflow: auto;
+	font-family: Courier;
+	font-size: 10pt;
+	padding: 0;
+	margin: 2px;
+}
+
+div.listing.frame {
+	border: 4px solid #9090B0;	
+}
+
+table.listing {
+	width: 100%;
+	border: none;
+	border-spacing: 0;
+	border-collapse: collapse;
+}
+
+tr.line.odd {
+	background-color: #fff0c8;
+}
+
+tr.line.even {
+	background-color: #fff8e0;
+}
+
+div.listing pre {
+	margin: 0px;
+	padding: 2px;
+}
+
+td.ln {
+	color: #5060f7;
+	width: 20px;
+	text-align: right;
+	vertical-align: middle;
+	font-size: 12pt;
+	padding-left: 5px;
+	padding-right: 10px;
+}
+
+pre em {
+	font-style: normal;
+	color: blue;
+}
+pre .comment {
+	color: green;
+}
+
+h5.listing {
+	margin-bottom: 0px;
+}
+
+/* other OTJLD elements: */
+div.note {
+	font-style: italic;
+	margin-left: 10px;
+}
+
+div.codecomment {
+	width: 90%;
+	background-color: #fff8e0;
+	font-size: 0.8em;
+	margin-top: 5px;
+	padding: 2px;
+}
+div.codecomment>h5, div.note>h5 {
+	margin: 2px;
+}
+div.codecomment>h5+p, div.note>h5+p {
+	margin-top: 2px;
+}
+
+table.syntaxrule {
+	width: 80%;
+	border: 2px solid #e0e0f0;
+	border-spacing: 0px;
+	border-collapse: collapse;
+	margin: 4px;
+	padding: 0;
+}
+table.syntaxrule td.sect {
+	width: 80px;
+	border: 2px solid #e0e0f0;
+	padding: 5px;
+	vertical-align: top;
+	font-weight: bold;
+}
+table.syntaxrule td.rule {
+	padding-left: 20px;
+	background-color: #fff8e0;
+}
+table.syntaxrule .title {
+	margin-left: -10px;
+	font-weight: bold;
+	font-style: italic;
+	color: blue;
+}
+
+ol.constraints {
+	list-style-type: lower-alpha;
+}
+ol.constraints .title {
+	text-decoration: underline;
+}
+h5.constraints {
+	margin-bottom: 2px;
+}
+
+/* page navigation: */
+table.nav {
+	border: 2px solid #e0e0f0;
+	border-collapse: collapse;
+	width: 95%;
+	white-space: nowrap;
+	margin-left: auto;
+	margin-right: auto;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	background-color: #fff8e0;
+	font-size: 10pt;
+}
+
+td.back {
+	width: 35%;
+	padding-left: 4px;
+	text-align: left;
+	white-space: nowrap;
+}
+td.top {
+	border: 2px solid #e0e0f0;
+	text-align: center;
+	white-space: nowrap;
+}
+td.next {
+	width: 35%;
+	padding-right: 4px;
+	text-align: right;
+	white-space: nowrap;
+}
+
+div.nav {
+	width: 95%;
+	margin-left: auto;
+	margin-right: auto;
+	white-space: nowrap;
+}
+
+a.nav {
+	font-size: 10pt;
+}
+
+/* page footer: */
+div.footer {
+	margin-top: 10px;
+	font-size: 10pt;
+	color: gray;
+}
+
+#w3c {
+	float: right;
+}
+
+/* to clear floats: */
+div.clearer {
+	clear: both;
+	line-height: 0pt;
+	font-size: 1px;
+}
+
+/* tables: */
+table {
+	border-style: solid;
+	border-color: #e0e0f0;
+	border-spacing: 0px;
+	border-collapse: collapse;
+}
+
+/* special highlighting: */
+.error {
+	color: red;
+}
+
+.blue {
+	color: blue;
+}
+.green {
+	color: green;
+}
+
+.underline {
+	text-decoration: underline;
+}
+
+/* zebra stripes ;-) */
+.z1 { background-color:#fff0c8; }
+
+.z2 { background-color:#fff8e0; }
+
+span.indent5 {
+    padding-left: 5mm;
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/valid-xhtml11-blue.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/valid-xhtml11-blue.png
new file mode 100644
index 0000000..88fefcbf
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/css/valid-xhtml11-blue.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/Layering.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/Layering.png
new file mode 100644
index 0000000..0f54738
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/Layering.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/foo.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/foo.png
new file mode 100644
index 0000000..aefdfd6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/foo.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/guards.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/guards.png
new file mode 100644
index 0000000..741696c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/guards.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby.png
new file mode 100644
index 0000000..b76a2cb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby_base.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby_base.png
new file mode 100644
index 0000000..b7c24e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/implicitly_overriding_playedby_base.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/smart_lifting_small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/smart_lifting_small.png
new file mode 100644
index 0000000..362ff65
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/smart_lifting_small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/team_nesting_hor.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/team_nesting_hor.png
new file mode 100644
index 0000000..aa24575
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/images/team_nesting_hor.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/index.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/index.html
new file mode 100644
index 0000000..2be937a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/index.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <div class="headl">
+            <div class="headr">
+               <h1>Table of Contents</h1>
+            </div>
+         </div>
+         <div class="toc depth1"><a href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="toc depth2"><a href="s0.html#s0.1" rel="section">&sect;0.1&nbsp;Purpose(s) of this document</a></div>
+         <div class="toc depth2"><a href="s0.html#s0.2" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+         <div class="toc depth2"><a href="s0.html#s0.3" rel="section">&sect;0.3&nbsp;Compiler messages</a></div>
+         <div class="toc depth2"><a href="s0.html#s0.4" rel="section">&sect;0.4&nbsp;Versions</a></div>
+         <div class="toc depth2"><a href="s0.html#s0.5" rel="section">&sect;0.5&nbsp;Publishing</a></div>
+         <div class="toc depth1"><a href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="toc depth2"><a href="s1.html#s1.1" rel="section">&sect;1.1&nbsp;Team classes</a></div>
+         <div class="toc depth2"><a href="s1.html#s1.2" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.2.1" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.2.2" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.2.3" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.2.4" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.2.5" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="toc depth2"><a href="s1.html#s1.3" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.3.1" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="toc depth3"><a href="s1.html#s1.3.2" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="toc depth2"><a href="s1.html#s1.4" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+         <div class="toc depth2"><a href="s1.html#s1.5" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="toc depth1"><a href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.1" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.1.1" rel="section">&sect;2.1.1&nbsp;Binding interfaces</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.1.2" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.2" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.3" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.3.1" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.3.2" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.3.3" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.3.4" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.4" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.4.1" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.4.2" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+         <div class="toc depth3"><a href="s2.html#s2.4.3" rel="section">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.5" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.6" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="toc depth2"><a href="s2.html#s2.7" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="toc depth1"><a href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="toc depth2"><a href="s3.html#s3.1" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="toc depth2"><a href="s3.html#s3.2" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="toc depth2"><a href="s3.html#s3.3" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="toc depth2"><a href="s3.html#s3.4" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="toc depth2"><a href="s3.html#s3.5" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="toc depth1"><a href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.1" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.2" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.3" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.4" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.5" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.6" rel="section">&sect;4.6&nbsp;Overriding access restrictions</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.7" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.8" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.9" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+         <div class="toc depth3"><a href="s4.html#s4.9.1" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+         <div class="toc depth3"><a href="s4.html#s4.9.2" rel="section">&sect;4.9.2&nbsp;Role side inheritance</a></div>
+         <div class="toc depth3"><a href="s4.html#s4.9.3" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+         <div class="toc depth2"><a href="s4.html#s4.10" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="toc depth1"><a href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="toc depth2"><a href="s5.html#s5.1" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+         <div class="toc depth3"><a href="s5.html#s5.1.1" rel="section">&sect;5.1.1&nbsp;Global vs. thread local team activation</a></div>
+         <div class="toc depth3"><a href="s5.html#s5.1.2" rel="section">&sect;5.1.2&nbsp;Effect on garbage collection</a></div>
+         <div class="toc depth2"><a href="s5.html#s5.2" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+         <div class="toc depth2"><a href="s5.html#s5.3" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="toc depth2"><a href="s5.html#s5.4" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="toc depth3"><a href="s5.html#s5.4.1" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="toc depth3"><a href="s5.html#s5.4.2" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="toc depth3"><a href="s5.html#s5.4.3" rel="section">&sect;5.4.3&nbsp;Multiple guards</a></div>
+         <div class="toc depth2"><a href="s5.html#s5.5" rel="section">&sect;5.5&nbsp;Unanticipated team activation</a></div>
+         <div class="toc depth1"><a href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+         <div class="toc depth2"><a href="s6.html#s6.1" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+         <div class="toc depth2"><a href="s6.html#s6.2" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="toc depth1"><a href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+         <div class="toc depth2"><a href="s7.html#s7.1" rel="section">&sect;7.1&nbsp;Opaque roles</a></div>
+         <div class="toc depth2"><a href="s7.html#s7.2" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+         <div class="toc depth1"><a href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+         <div class="toc depth2"><a href="s8.html#s8.1" rel="section">&sect;8.1&nbsp;Join point queries</a></div>
+         <div class="toc depth2"><a href="s8.html#s8.2" rel="section">&sect;8.2&nbsp;Query expressions</a></div>
+         <div class="toc depth2"><a href="s8.html#s8.3" rel="section">&sect;8.3&nbsp;OT/J meta model</a></div>
+         <div class="toc depth1"><a href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+         <div class="toc depth2"><a href="s9.html#s9.1" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+         <div class="toc depth2"><a href="s9.html#s9.2" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+         <div class="toc depth3"><a href="s9.html#s9.2.1" rel="section">&sect;9.2.1&nbsp;Parameter substitution</a></div>
+         <div class="toc depth3"><a href="s9.html#s9.2.2" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+         <div class="toc depth2"><a href="s9.html#s9.3" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+         <div class="toc depth1"><a href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.0" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+         <div class="toc depth3"><a href="sA.html#sA.0.1" rel="section">&sect;A.0.1&nbsp;Scoped keywords</a></div>
+         <div class="toc depth3"><a href="sA.html#sA.0.2" rel="section">&sect;A.0.2&nbsp;Inheriting scoped keywords</a></div>
+         <div class="toc depth3"><a href="sA.html#sA.0.3" rel="section">&sect;A.0.3&nbsp;Internal names</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.1" rel="section">&sect;A.1&nbsp;Class definitions</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.2" rel="section">&sect;A.2&nbsp;Modifiers</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.3" rel="section">&sect;A.3&nbsp;Method bindings</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.4" rel="section">&sect;A.4&nbsp;Parameter mappings</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.5" rel="section">&sect;A.5&nbsp;Statements</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.6" rel="section">&sect;A.6&nbsp;Types</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.7" rel="section">&sect;A.7&nbsp;Guard predicates</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.8" rel="section">&sect;A.8&nbsp;Precedence declaration</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.9" rel="section">&sect;A.9&nbsp;Value dependent types</a></div>
+         <div class="toc depth2"><a href="sA.html#sA.10" rel="section">&sect;A.10&nbsp;Packages and imports</a></div>
+         <div class="toc depth1"><a href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+         <div class="toc depth2"><a href="sB.html#sB.1" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+         <div class="toc depth2"><a href="sB.html#sB.2" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s0.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s0.html
new file mode 100644
index 0000000..7e5e083
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s0.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.html" rel="next">&sect;1&nbsp;Teams and Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s0">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;0&nbsp;About this Document</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s0.html">&sect;0&nbsp;About this Document</a></li>
+                  <li><a href="#s0.1">&sect;0.1&nbsp;Purpose(s) of this document</a></li>
+                  <li><a href="#s0.2">&sect;0.2&nbsp;Text structure</a></li>
+                  <li><a href="#s0.3">&sect;0.3&nbsp;Compiler messages</a></li>
+                  <li><a href="#s0.4">&sect;0.4&nbsp;Versions</a></li>
+                  <li><a href="#s0.5">&sect;0.5&nbsp;Publishing</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Levels of this document</h3>
+               <div class="line"></div>
+               <div class="term">Terms, concepts</div>
+               <div class="termdesc">Each chapter of this document starts with a short synopsis of
+                  				concepts covered by the chapter (like this).
+               </div>
+               <div class="line"></div>
+               <div class="term">Definition</div>
+               <div class="termdesc">The actual definition is given in small numbered paragraphs.</div>
+               <div class="line"></div>
+               <div class="term">Examples</div>
+               <div class="termdesc">Examples and accompanying explanations will be interspersed
+                  				into the definition.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s0.1">
+               <h2 class="sect">&sect;0.1&nbsp;Purpose(s) of this document<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>This document defines the OT/J programming language.
+                  The main goals were to create a precise and complete reference for this language.
+                  Didactical considerations had lower priorities, which means that this document is not designed
+                  as an introductory tutorial.
+                  Still, we advise programmers learning the OT/J language, to consult this document whenever
+                  a compiler error message is not perfectly clear to them (see <a href="#s0.3" title="&sect;0.3&nbsp;Compiler messages" class="sect">&sect;0.3</a>).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.2">
+               <h2 class="sect">&sect;0.2&nbsp;Text structure<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>Each chapter of this document starts with a short synopsis of
+                  	concepts covered by the chapter (see above).
+                  		
+               </p>
+               <div class="syntaxlink"><a href="sA.html" title="&sect;A&nbsp;OT/J Syntax" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A</a></div>
+               <div class="subsect depth3" id="s0.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Paragraphs</span></h4>
+                  <p>The actual definition is structured into small paragraphs for easy referral.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s0.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Syntax Links</span></h4>
+                  <p>Links to the syntax precede definitions whenever new syntax is introduced.
+                     			
+                  </p>
+               </div>
+               <p>Interspersed you will find some example program listings.
+                  	Examples are typeset in a box:
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Explanations for examples look like the following:
+                  		
+               </p>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Lines 1-3 show a minimal OT/J program, which should not cause any headache.</li>
+                  </ul>
+               </div>
+               <p>Examples are given for illustration only.
+                  		
+               </p>
+               <p>Additional paragraphs like "Language implementation", or
+                  	"open issues" provide some background information which is
+                  	not necessary for understanding the definition, which might
+                  	however, help to understand why things are the way they are
+                  	and what other things might be added to the language in the future.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.3">
+               <h2 class="sect">&sect;0.3&nbsp;Compiler messages<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>Error messages given by the Object Teams compiler refer to this
+                  	definition whenever appropriate. This way it should be easy to find
+                  	out, why the compiler rejected your program. Please make sure
+                  	you are using a language definition whose version matches the
+                  	version of your compiler.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.4">
+               <h2 class="sect">&sect;0.4&nbsp;Versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>The structure of this document has changed between versions
+                  0.6.1 and 0.7 of this document. This change reflects the
+                  	transition from our first compiler for OT/J (called <code>otc</code>)
+                  	and the <code>OTDT</code> (Object Teams Development Tooling)
+                  	plugin for Eclipse.
+                  		
+               </p>
+               <p>Starting with the OTDT v0.7.x, the major and minor number of the tool
+                  correspond to the major and minor version number of the OTJLD (this document),
+                  ie., the OTDT v1.0.x implements the language as defined in the OTJLD v1.0.
+                  		
+               </p>
+               <p><strong>Changes</strong> between the current and previous versions are listed in appendix <a href="sB.html" title="&sect;B&nbsp;Changes between versions" class="sect">&sect;B</a>.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.5">
+               <h2 class="sect">&sect;0.5&nbsp;Publishing<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>The sources of this language definition are maintained in a target-independent XML format. Three different versions are generated
+                  from these sources, using XSLT:
+               </p>
+               <ul>
+                  <li><a href="http://www.objectteams.org/def/" class="ext">Online version</a> (XHTML)
+                  </li>
+                  <li>Tooling version (XHTML &ndash; directly accessible from inside the OTDT)</li>
+                  <li>Print version (LaTeX/PDF)</li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.html" rel="next">&sect;1&nbsp;Teams and Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s1.html
new file mode 100644
index 0000000..81d6a3f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s1.html
@@ -0,0 +1,1711 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.html" rel="prev">&lt;&lt;&nbsp;&sect;0&nbsp;About this Document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.html" rel="next">&sect;2&nbsp;Role Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s1">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;1&nbsp;Teams and Roles</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s1.html">&sect;1&nbsp;Teams and Roles</a></li>
+                  <li><a href="#s1.1">&sect;1.1&nbsp;Team classes</a></li>
+                  <li><a href="#s1.2">&sect;1.2&nbsp;Role classes and objects</a></li>
+                  <li><a href="#s1.3">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></li>
+                  <li><a href="#s1.4">&sect;1.4&nbsp;Name clashes</a></li>
+                  <li><a href="#s1.5">&sect;1.5&nbsp;Team and role nesting</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Fundamental concepts of Teams</h3>
+               <div class="line"></div>
+               <div class="term">Teams and Roles</div>
+               <div class="termdesc">Classes that are defined with the modifier <code>team</code>
+                  	    are called team classes, or <strong>teams</strong> for short.<br />
+                  	    Direct inner classes of a team are called role classes, or <strong>roles</strong>
+                  	    for short.
+               </div>
+               <div class="line"></div>
+               <div class="term">Role inheritance</div>
+               <div class="termdesc">Inheritance between teams introduces a special inheritance relationship
+                  	    between their contained roles. The rules of this <strong>implicit inheritance</strong> are given below (<a href="#s1.3.1"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Externalized role</div>
+               <div class="termdesc">Roles are generally confined to the context of their
+                  		enclosing team instance. Subject to specific restrictions,
+                  		a role <em>may</em> be passed outside
+                  		its team using the concept of externalized roles (<a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s1.1">
+               <h2 class="sect">&sect;1.1&nbsp;Team classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+               <p>A class declared with the modifier <code>team</code> is a <em>team class</em> (or team for short).
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <em><b>team</b> <b>class</b> MyTeamA</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Teams are meant as containers for <em>roles</em>, which are defined in the following
+                  	paragraphs.
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>class</b> MyRole</em></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Teams introduce a new variant of inheritance for contained role classes
+                  	(see <a href="#s1.3.1"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a> below).
+                  	Other properties of teams, which are defined in later sections, are:
+                  		
+               </p>
+               <ul>
+                  <li>Team activation (<a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>)
+                  </li>
+                  <li>Abstractness and instantiation (<a href="s2.html#s2.5" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>)
+                  </li>
+                  <li>Declared lifting in team methods (<a href="s2.html#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting"
+                        class="sect">&sect;2.3.2</a>)
+                  </li>
+                  <li>Reflective functions defined in <code>org.objectteams.ITeam</code> (<a href="s6.html#s6.1" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a>)
+                  </li>
+               </ul>
+               <p>Apart from these differences, team classes are regular Java classes with
+                  	methods and fields, whose instances are regular Java objects.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s1.2">
+               <h2 class="sect">&sect;1.2&nbsp;Role classes and objects<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>Each direct inner class of a team is a role class.
+                  Just like inner classes, each instance of a role class has an implicit reference
+                  to its enclosing team instance. This reference is immutable.
+                  Within the implementation of a role it can be accessed by qualifying the identifier
+                  <code>this</code> with the name of the team class, as in:
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>class</b> MyRole</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("Team: "+ <em>MyTeamA.this</em>); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Creation of role instances is further restricted as defined in
+                  <a href="s2.html#s2.4" title="&sect;2.4&nbsp;Explicit role creation"
+                     class="sect">&sect;2.4</a>.
+                  	Teams can also define role interfaces just like role classes.
+                  	With respect to role specific properties a role interface is treated like a fully
+                  	abstract class.
+                  		
+               </p>
+               <div class="sect depth3" id="s1.2.1">
+                  <h3 class="sect">&sect;1.2.1&nbsp;Modifiers for roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Member classes of a team cannot be <code>static</code>.
+                     Also the use of access modifiers for roles is restricted and modifiers have different (stronger) semantics than for 
+                     regular classes (see below). With respect to accessibility a team acts mainly like a package regarding its roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role class protection</span></h4>
+                     <p>A role class must have exactly one of the access modifiers <code>public</code>
+                        			or <code>protected</code>.<br />
+                        This rule does not affect the class modifiers <code>abstract</code>, <code>final</code> and <code>strictfp</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">protected role classes</span></h4>
+                     <p>A <code>protected</code> role can only be accessed from within the enclosing
+                        			team or any of its sub-teams. The actual border of encapsulation is the
+                        			enclosing team <em>instance</em>. The rules for protected roles are given
+                        			in <a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> below.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">public role classes</span></h4>
+                     <p>Only <code>public</code> roles can ever be accessed outside their enclosing	team.
+                        			Accessing a role outside the enclosing team instance is governed by the rules
+                        			of <strong>externalized roles</strong>, to be defined next (<a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">abstract role classes</span></h4>
+                     <p>A role class has to be marked <strong>abstract</strong> if any of its methods
+                        			is not effective.<br />
+                        			The <em>methods of a role class</em> comprise direct methods and
+                        			methods acquired by inheritance.
+                        			In addition to regular inheritance a role class may acquire	methods
+                        			also via implicit inheritance (<a href="#s1.3.1"
+                           title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                           class="sect">&sect;1.3.1</a>).<br />
+                        			A method may become <em>effective</em> by either:
+                        				
+                     </p>
+                     <ul>
+                        <li>implementation (i.e., a regular method body), or</li>
+                        <li>a callout binding (see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                        </li>
+                     </ul>
+                     <p><a href="s2.html#s2.5" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a> discusses under which 
+                        			circumstances abstract roles force the enclosing team to be abstract, too.
+                        
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Role features</span></h4>
+                     <p>Access modifiers for members of roles have some special interpretation:
+                        				
+                     </p>
+                     <ol>
+                        <li>A private member is also visible in any implicit sub role
+                           		    (see implicit inheritance <a href="#s1.3.1.c"
+                              title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                              class="sect">&sect;1.3.1.(c)</a>).<br />
+                           		    In contrast to inner classes in Java, private members of a role are not
+                           		    visible to the enclosing team.
+                        </li>
+                        <li>The default visibility of role members restricts access to the
+                           			  current class and its sub-classes (explicit and implicit).
+                        </li>
+                        <li><code>protected</code> role members can only be accessed from the enclosing
+                           			  team or via  <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>.
+                        </li>
+                        <li><code>public</code> role members grant unrestricted access.
+                        </li>
+                     </ol>
+                     <p>Additionally, a role always has access to all the features that its enclosing team has access to.</p>
+                     <p>Only <code>public</code> members can ever be accessed via an <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">externalized role (&sect;1.2.2)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Static role methods</span></h4>
+                     <p>In contrast to inner classes in pure Java, a role class may indeed define static methods. A static role method requires no
+                        role 
+                        				instance <em>but</em> it still requires a team instance in scope. Static role methods can be called:
+                        				
+                     </p>
+                     <ul>
+                        <li>from the enclosing team,</li>
+                        <li>via callin (see <a href="s4.html#s4.7"
+                              title="&sect;4.7&nbsp;Callin binding with static methods"
+                              class="sect">&sect;4.7</a>).
+                        </li>
+                     </ul>
+                     <p>Within a static role method the syntax <code>MyTeam.this</code> is available for accessing the enclosing team instance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">No static initializers</span></h4>
+                     <p>A static field of a role class must not have a non-constant initialization expression.
+                        					   Static initialization blocks are already prohibited for inner classes by Java (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#262890"
+                           class="ext">JLS &sect;8.1.2</a>).
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>   
+                        					Static initialization generally provides a means for performing initialization code prior to instantiation, i.e., at
+                        class-loading time.
+                        					Before any role can be created already two levels of initialization are performed: (1) The (outer most) enclosing team
+                        class performs static initializations when it is loaded. (2) Any enclosing team executes 
+                        					its constructor when it is instantiated. It should be possible to allocate any early initialization to either of these
+                        two phases instead of using static role initializers.
+                        				
+                     </div>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.2">
+                  <h3 class="sect">&sect;1.2.2&nbsp;Externalized roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                        class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+                  <p>Normally, a team encapsulates its role against unwanted access from the outside.
+                     	  If roles are visible outside their enclosing team instance we speak of
+                     	  <strong>externalized roles</strong>.
+                     			
+                  </p>
+                  <p>Externalized roles are subject to specific typing rules in order to ensure,
+                     	  that role instances from different team instances cannot be mixed in
+                     	  inconsistent ways. In the presence of implicit inheritance
+                     	  (<a href="#s1.3.1"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>) inconsistencies could otherwise occur, which lead
+                     	  to typing errors that could only be detected at run-time.
+                     	  Externalized roles use the theory of 
+                     "virtual classes" <a href="#fn1-virtual-classes" class="int">[1]</a>,
+                     or more specifically 
+                     "family polymorphism" <a href="#fn2-family-polymorphism" class="int">[2]</a>,
+                     in order to achieve the desired type safety.
+                     	  These theories use special forms of <em>dependent types</em>.
+                     	  Externalized roles have <em>types that depend on a team instance</em>.
+                     			
+                  </p>
+                  <p><a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> deduces even stronger forms of encapsulation
+                     	  from the rules about externalized roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Visibility</span></h4>
+                     <p>Only instances of a <code>public</code> role class can ever be externalized.
+                        			  	
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Declaration with anchored type</span></h4>
+                     <p>Outside a team role types are legal only if denoted relative
+                        				to an existing team instance (further on called "anchored types").
+                        				The syntax is:
+                     </p>
+                     <div class="listing plain"><pre><em>final</em> MyTeam myTeam = <i>expression</i>;
+<em>RoleClass&lt;@myTeam&gt;</em> role = <i>expression</i>;</pre></div>
+                     <p>The syntax <code>Type&lt;@anchor&gt;</code> is a special case of a parameterized type, more specifically a <a href="s9.html" title="&sect;9&nbsp;Value Dependent Classes" class="sect">value dependent type (&sect;9)</a>.
+                        				The type argument (i.e., the expression after the at-sign) can be a simple name or a path. It must refer to an instance
+                        of a team class.
+                        				The role type is said to be <em>anchored</em> to this team instance.<br />
+                        				The type-part of this syntax (in front of the angle brackets) must be the simple name of a role type directly contained
+                        in the given team (including roles that are acquired by implicit inheritance).<br /></p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        	Previous versions of the OTJLD used a different syntax for anchored types, where the role type was prefixed with the anchor
+                        expression, separated by a dot (<code>anchor.Type</code>, 
+                        see <a href="sA.html#sA.6.3" title="&sect;A.6.3&nbsp;AnchoredType" class="sect">&sect;A.6.3</a>). A compiler may still support that path syntax but it should be flagged as being deprecated.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Immutable anchor</span></h4>
+                     <p>Anchoring the type of an externalized role to a team instance
+                        				requires the team to be referenced by a variable which
+                        				is marked <code>final</code> (i.e., immutable).
+                        				The type anchor can be a path <code>v.f1.f2...</code> where
+                        				<code>v</code> is any final variable and <code>f1</code> ...
+                        				are final fields.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Implicit type anchors</span></h4>
+                     <p>The current team instance can be used as a default anchor
+                        				for role types:
+                        				
+                     </p>
+                     <ol>
+                        <li>In non-static team level methods role types are by default interpreted as anchored to <code>this</code> (referring to the team instance). I.e., the following two declarations express the same:
+                           
+                           <div class="listing plain"><pre><b>public</b> RoleX getRoleX (RoleY r) { <i> stmts </i> }
+<b>public</b> RoleX&lt;@<em>this</em>&gt; getRoleX (RoleY&lt;@<em>this</em>&gt; r) { <i> stmts </i> }</pre></div>
+                        </li>
+                        <li>
+                           				In analogy, <em>role methods</em> use the enclosing team instance as the
+                           				default anchor for any role types.
+                        </li>
+                     </ol>
+                     <p>Note, that <code>this</code> and <code><em>Outer</em>.this</code> are always
+                        			  <code>final</code>.<br />
+                        			  The compiler uses the pseudo identifier <strong><code>tthis</code></strong> to denote
+                        			  such implicit type anchors in error messages.
+                        			  	
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Conformance</span></h4>
+                     <p>Conformance between
+                        				two types <code>RoleX&lt;@teamA&gt;</code> and <code>RoleY&lt;@teamB&gt;</code>
+                        				not only requires the role types to be compatible, but also
+                        				the team instances to be provably <em>the same object</em>.
+                        				The compiler must be able to statically analyze anchor identity.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                     <p>Only two substitutions are considered for determining
+                        				team identity:
+                        				
+                     </p>
+                     <ol>
+                        <li>
+                           				  For type checking the application of team methods,
+                           				  <code>this</code> is <strong>substituted</strong> by the actual call target.
+                           				  For role methods a reference of the form <code><em>Outer</em>.this</code>
+                           				  is substituted by the enclosing instance of the call target.
+                           					
+                        </li>
+                        <li>Assignments from a <code>final</code> identifier
+                           				  to another <code>final</code> identifier are transitively
+                           				  followed, i.e., if <code>t1, t2</code> are final,
+                           				  after an assignment <code>t1=t2</code>
+                           				  the types <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code> are considered
+                           				  identical. Otherwise <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code>
+                           				  are incommensurable.<br />
+                           				  Attaching an actual parameter to a formal parameter in a
+                           				  method call is also considered as an assignment with respect to
+                           				  this rule.
+                           					
+                        </li>
+                     </ol>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">Legal contexts</span></h4>
+                     <p>Anchored types for externalized roles may be used in the
+                        			following contexts:
+                        				
+                     </p>
+                     <ol>
+                        <li>Declaration of an attribute</li>
+                        <li>Declaration of a local variable</li>
+                        <li>Declaration of a parameter or result type
+                           						 of a method or constructor
+                        </li>
+                        <li>In the <code>playedBy</code> clause of a role class
+                           					(see <a href="s2.html#s2.1" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>).
+                        </li>
+                     </ol>
+                     <p>It is not legal to inherit from an anchored type, since
+                        				this would require membership of the referenced team instance,
+                        				which can only be achieved by class nesting.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+					Item 4.
+					&mdash; within the given restriction &mdash; admits the case where
+					the same class is a role of one team and the base class for
+					the role of another team. Another form of nesting is
+					defined in <a href="#s1.5" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.h">
+                     <h4 class="subsect">(h)&nbsp;<span class="title">Externalized creation</span></h4>
+                     <p>A role can be created as externalized using either of these equivalent forms:</p>
+                     <div class="listing plain"><pre>outer.<b>new</b> Role()
+<b>new</b> Role&lt;@outer&gt;()</pre></div>
+                     <p>This requires the enclosing instance <code>outer</code> to be
+                        			declared <code>final</code>. The expression has the
+                        			type <code>Role&lt;@outer&gt;</code> following the rules of
+                        			externalized roles.<br />
+                        			The type <code>Role</code> in this expression must be a simple
+                        			(unqualified) name.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.i">
+                     <h4 class="subsect">(i)&nbsp;<span class="title">No import</span></h4>
+                     <p>It is neither useful nor legal to import a role type.<br /></p>
+                     <div class="note">
+                        <h5>Rationale:</h5>
+                        					Importing a type allows to use the unqualified name in situations that would otherwise require to use the fully qualified
+                        name, 
+                        					i.e., the type prefixed with its containing package and enclosing class. Roles, however are contained in a team <i>instance</i>.
+                        					Outside their team, role types can only be accessed using an anchored type which uses a team instance to qualify the
+                        role type.
+                        					Relative to this team anchor, roles are <i>always</i> denoted using their simple name, which makes importing roles useless.
+                        				
+                     </div>
+                     <p>A static import for a constant declared in a role is, however, legal.
+                        				
+                     </p>
+                  </div>
+                  <h5 class="listing">Example code (Externalized Roles):</h5>
+                  <div class="listing example frame" id="l1.2.2-1">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> FlightBonus <b>extends</b> Bonus {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> Subscriber {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>void</b> clearCredits() { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  <b>void</b> unsubscribe(Subscriber subscr) { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.2.2-2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre><b>class</b> ClearAction <b>extends</b> Action {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>  <em>final</em> FlightBonus context;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  <em>Subscriber&lt;@context&gt;</em> subscriber;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  ClearAction (<em>final</em> FlightBonus bonus, <em>Subscriber&lt;@bonus&gt;</em> subscr) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>    context = bonus; <span class="comment">// unique assignment to 'context'</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>    subscriber = subscr;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>  <b>void</b> actionPerformed () {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>    subscriber.clearCredits();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">16</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">17</td>
+                           <td><pre>  <b>protected</b> <b>void</b> finalize () {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">18</td>
+                           <td><pre>    context.unsubscribe(subscriber);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">19</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">20</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>Lines 1-6 show a terse extract of a published example
+                           	 				<a href="http://www.objectteams.org/publications/index.html#NODe02" class="ext">[NODe02]</a>. Here passengers can be subscribers in a flight bonus program.
+                        </li>
+                        <li>Lines 7-20 show a sub-class of <code>Action</code> which is
+                           					used to associate the action of resetting a subscriber's credits
+                           					to a button or similar element in an application's GUI.
+                        </li>
+                        <li>Attribute <code>context</code> (line 8) and parameter
+                           					<code>bonus</code> (line 10) serve as anchor for the type of
+                           					externalized roles.
+                        </li>
+                        <li>Attribute <code>subscriber</code> (line 9) and parameter
+                           					<code>subscr</code> (line 10) store a Subscriber role outside the
+                           					FlightBonus team.
+                        </li>
+                        <li>In order to type-check the assignment in line 12, the compiler
+                           					has to ensure that the types of LHS and RHS are anchored to
+                           					the same team instance. This can be verified by checking that
+                           					both anchors are indeed <code>final</code> and prior to the
+                           					role assignment a team assignment has taken place (line 11).<br /><span class="underline">Note,</span> that the Java rules for <strong>definite assignments</strong> to
+                           final variables ensure that exactly one assignment to a variable occurs
+                           		            prior to its use as type anchor. No further checks are needed.
+                           	                
+                        </li>
+                        <li>It is now legal to store this role reference and use it at
+                           					some later point in time, e.g., for invoking method
+                           					<code>clearCredits</code> (line 15).
+                           					This method call is also an example for implicit team activation
+                           					(<a href="s5.html#s5.3.b"
+                              title="&sect;5.3.(b)&nbsp;Methods of externalized roles"
+                              class="sect">&sect;5.3.(b)</a>).
+                           					
+                        </li>
+                        <li>Line 18 demonstrates how an externalized role can be
+                           					passed to a team level method. The signature of <code>unsubscribe</code>
+                           					is for this call expanded to 
+                           <div class="indent">
+                              						void unsubscribe(Subscriber&lt;@context&gt; subscr)
+                              					
+                           </div>
+                           					(by substituting the call target <code>context</code> for
+                           					<code>this</code>). This proves identical types for actual and
+                           					formal parameters.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.3">
+                  <h3 class="sect">&sect;1.2.3&nbsp;Protected roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Roles can only be <code>public</code> or <code>protected</code>.
+                     	A <code>protected</code> role is encapsulated
+                     	by its enclosing team instance. This is enforced by these rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Importing role classes</span></h4>
+                     <p><i>This rule is superseded by <a href="#s1.2.2.i" title="&sect;1.2.2.(i)&nbsp;No import" class="sect">&sect;1.2.2.(i)</a></i></p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Qualified role types</span></h4>
+                     <p>The name of a <code>protected</code> role class may never be used qualified, neither
+                        			prefixed by its <em>enclosing type</em> nor parameterized by a <em>variable as type anchor</em> (cf. <a href="#s1.2.2.a" title="&sect;1.2.2.(a)&nbsp;Visibility" class="sect">&sect;1.2.2.(a)</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Mixing qualified and unqualified types</span></h4>
+                     <p>An externalized role type is never compatible to an unqualified role type,
+                        			except for the substitutions in <a href="#s1.2.2.f"
+                           title="&sect;1.2.2.(f)&nbsp;Substitutions for type anchors"
+                           class="sect">&sect;1.2.2.(f)</a>, where
+                        			an explicit anchor can be matched with the implicit anchor <code>this</code>.
+                        				
+                     </p>
+                  </div>
+                  <p>Rules (a) and (b) ensure that the name of a protected role class cannot be used
+                     			outside the lexical scope of its enclosing team. Rule (c) ensures that team methods
+                     			containing unqualified role types in their signature cannot be invoked on a team other
+                     			than the current team. Accordingly, for role methods the team context must be the
+                     			enclosing team instance.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.3.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Levels of encapsulation</span></h4>
+                     <p>Since protected role types can not be used for externalization, instances of these types are already quite effectively encapsulated
+                        by their enclosing team.
+                        			Based on this concept, encapsulation for protected roles can be made even stricter by the rules of <em>role confinement</em>.
+                        			On the contrary, even protected roles can be externalized as <em>opaque roles</em> which still expose (almost) no information.
+                        			Confinement and opaque roles are subject of <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.4">
+                  <h3 class="sect">&sect;1.2.4&nbsp;Type tests and casts<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>In accordance with <a href="#s1.2.2.e" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>, in OT/J
+                     	the <code>instanceof</code> operator and type casts have extended semantics for roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.4.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">instanceof</span></h4>
+                     <p>For role types the <code>instanceof</code> operator yields true only if
+                        			both components of the type match: the dynamic role type must be compatible
+                        			to the given static type, and also type anchors must be the same instance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.4.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Casting</span></h4>
+                     <p>Casts may also fail if the casted expression is anchored to a different
+                        			team instance than the cast type. Such failure is signaled by a
+                        			<code>org.objectteams.RoleCastException</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.4.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Class literal</span></h4>
+                     <p>A class literal of form <code>R.class</code> is dynamically bound to the class <code>R</code>
+                        					visible in the current instance context. Using a class literal for a role outside its
+                        					enclosing team instance (see <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) requires the following syntax:
+                        				
+                     </p>
+                     <div class="listing plain"><pre>RoleClass<em>&lt;@teamAnchor&gt;</em><strong>.class</strong></pre></div>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.5">
+                  <h3 class="sect">&sect;1.2.5&nbsp;File structure<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Just like regular inner classes, role classes may be inlined in the
+                     	source code of the enclosing team. As an alternative style it is possible
+                     	to store role classes in separate <strong>role files</strong> according to the following rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.5.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role directory</span></h4>
+                     <p>In the directory of the team class a new directory is created
+                        			which has the same name as the team without the <tt>.java</tt> suffix.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Role files</span></h4>
+                     <p>Role classes are stored in this directory (a). The file names are
+                        			derived from the role class name extended by <tt>.java</tt>.<br />
+                        			A role file must contain exactly one top-level type.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">package statement</span></h4>
+                     <p>A role class in a role file declares as its package the fully qualified
+                        			name of the enclosing team class. The package statement of a role file
+                        			must use the <code>team</code> modifier as its first token.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Reference to role file</span></h4>
+                     <p>A team should mention in its javadoc comment each role class which
+                        			is stored externally using a <tt>@role</tt> tag.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Legal types in role files</span></h4>
+                     <p>The type in a role file must not be an <code>enum</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Imports in role files</span></h4>
+                     <p>A role file may have imports of its own. 
+                        				Within the role definition these imports are visible <em>in addition</em> to all imports of the enclosing team. 
+                        				Only <code>base</code> imports (see <a href="s2.html#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports"
+                           class="sect">&sect;2.1.2.(d)</a>)
+                        				<em>must</em> be defined in the team.
+                     </p>
+                  </div>
+                  <p>Semantically, there is no difference between inlined role classes and those
+                     	stored in separate role files.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     	Current Java compilers disallow a type to have the same fully qualified
+                     	name as a package. However, the JLS does not seem to make a statement in this respect.
+                     	In OT/J, a package and a type are interpreted as being the same team, if both have the
+                     	same fully qualified name and both have the <code>team</code> modifier.
+                     			
+                  </div>
+                  <h5 class="listing">Role file example:</h5>
+                  <div class="listing example frame" id="l1.2.5-1">
+                     <table class="listing">
+                        <tr class="lhead">
+                           <td colspan="2">in file <code>org/objectteams/examples/MyTeamA.java</code> :
+                           </td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>package</b> org.objectteams.examples;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><span class="comment">/**</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre> <span class="comment">* @author Stephan Herrmann</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre> <span class="comment">* @date 20.02.2007</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre> <span class="comment">* @file MyTeamA.java</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre> <span class="comment">* <em>@role MyRole</em></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre> <span class="comment">*/</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.2.5-2">
+                     <table class="listing">
+                        <tr class="lhead">
+                           <td colspan="2">in file <code>org/objectteams/examples<strong class="blue">/MyTeamA/MyRole.java</strong></code>:
+                           </td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><em><b>team</b> <b>package</b> org.objectteams.examples.MyTeamA;</em></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><b>public</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.3">
+               <h2 class="sect">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p> Every team class implicitly implements the predefined interface <code>org.objectteams.ITeam</code>.
+                  	If a team class has no explicit <code>extends</code> clause it implicitly extends <code>org.objectteams.Team</code>, 
+                  	thus providing implementations for the methods in <code>org.objectteams.ITeam</code>.
+                  	If a team class extends a non-team class, the compiler implicitly adds implementations for all methods declared 
+                  	in <code>org.objectteams.ITeam</code> to the team class.
+                  	Any subclass of a team (including <code>org.objectteams.Team</code>) must again be a team.
+                  	Interface implementation is not affected by this rule.
+                  		
+               </p>
+               <p>Infrastructure provided via interface <code>org.objectteams.ITeam</code> is presented in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a>.
+                  		
+               </p>
+               <div class="sect depth3" id="s1.3.1">
+                  <h3 class="sect">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes<span class="toplink"><a href="#s1.3">&uarr;&nbsp;&sect;1.3</a></span></h3>
+                  <p>A team acquires all roles from its super-team. This relation is
+                     similar to inheritance of inner classes, but with a few decisive
+                     differences as defined next. Two implementation options are mentioned <a href="#aux1.1" class="int">below</a>,
+                     which can be used to realize the special semantics of role
+                     acquisition (virtual classes and copy inheritance).
+                     			
+                  </p>
+                  <h5 class="listing">Implicit role inheritance</h5>
+                  <div class="listing example frame" id="l1.3.1-1">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> S {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R0 {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R1 <em><b>extends</b> R0</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>        <b>boolean</b> ok;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>        R2 m() {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>        <b>void</b> n(<em>R2</em> r) {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R2 {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.3.1-2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">10</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T <em><b>extends</b> S</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">11</td>
+                           <td><pre>    @Override <b>protected</b> <em><b>class</b> R1</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">12</td>
+                           <td><pre>        <strong>R2</strong> m() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">13</td>
+                           <td><pre>            if(<em>ok</em>) { <b>return</b> <em>tsuper</em>.m(); }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">14</td>
+                           <td><pre>            <b>else</b> { <b>return</b> null; }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">15</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">16</td>
+                           <td><pre>        <b>void</b> doIt() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">17</td>
+                           <td><pre>            n(m());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">18</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">19</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">20</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role class acquisition</span></h4>
+                     <p>A team <code>T</code> which extends a super-team <code>S</code>
+                        	    has one role class <code>T.R</code> corresponding to each role <code>S.R</code>
+                        	    of the super-team.
+                        	    The new type <code>T.R</code>&nbsp;<strong>overrides</strong>&nbsp;<code>R</code> for the
+                        	    context of <code>T</code> and its roles.
+                        	    Acquisition of role classes can either be direct (see (b) below), or
+                        	    it may involve overriding and implicit inheritance ((c) below). 
+                        				
+                     </p>
+                     <div class="codecomment">In the above example (<a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a>) the team <code>S</code> operates 
+                        					on types <code>S.R0</code>, <code>S.R1</code> and <code>S.R2</code>, 
+                        					while <code>T</code> operates on types <code>T.R0</code>, <code>T.R1</code> 
+                        					and <code>T.R2</code>.<br /><em>(Type references like "<code>S.R0</code>" are actually illegal in source code 
+                           					(<a href="#s1.2.3.b" title="&sect;1.2.3.(b)&nbsp;Qualified role types"
+                              class="sect">&sect;1.2.3.(b)</a>). Here they are used for explanatory purposes only)</em></div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Direct role acquisition</span></h4>
+                     <p>Within a sub-team <code>T</code> each role <code>S.R</code> of its
+                        	    super-team <code>S</code> is available by the simple name <code>R</code>
+                        	    without further declaration.
+                        				
+                     </p>
+                     <div class="codecomment">The role <code>R2</code> in <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> can be used in the sub-team 
+                        					<code>T</code> (line 12), because this role type is defined in the super class of the enclosing team.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Overriding and implicit inheritance</span></h4>
+                     <p>If a team contains a role class definition by the same name as
+                        	    a role defined in its super-team,
+                        	    the new role class overrides the corresponding role from the super-team
+                        	    and <strong>implicitly inherits</strong> all of its features.
+                        	    Such relation is established only by name correspondence.
+                        				
+                     </p>
+                     <p>A role that overrides an inherited role should be marked with an <code>@Override</code> annotation.
+                        		A compiler should optionally flag a missing <code>@Override</code> annotation with a warning.  
+                        		Conversely, it is an error if a role is marked with an <code>@Override</code> annotation but does not actually
+                        		override an inherited role.
+                        				
+                     </p>
+                     <p>It is an error to override a role class with an interface or vice versa. A final role cannot be overridden.<br />
+                        	    Unlike regular inheritance, <strong>constructors</strong> are also inherited
+                        	    along implicit inheritance, and can be overridden just like normal methods.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a><code> R1</code> in <code>T</code> implicitly inherits all features of
+                        					  <code>R1</code> in <code>S</code>. This is, because its enclosing team
+                        					  <code>T</code> extends the team <code>S</code> (line 10) and the role
+                        					  definition uses the same name <code>R1</code> (line 11).
+                        					  Hence the attribute <code><strong>ok</strong></code> is available in the method
+                        					  <code>m()</code> in <code>T.R1</code> (line 13). <code>T.R1</code> also overrides <code>S.R1</code>
+                        					  which is marked by the <code>@Override</code> annotation in line 11. 
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Lack of subtyping</span></h4>
+                     <p>Direct acquisition of roles from a super-team and implicit inheritance
+                        	    do not establish a <strong>subtype</strong> relation.
+                        	    A role of a given team is never conform (i.e., substitutable)
+                        	    to any role of any <em>other</em> team.
+                        	    <code>S.R</code> and <code>T.R</code> are always incommensurable.<br /><span class="underline">Note,</span> that this rule is a direct consequence of <a href="#s1.2.2.e" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Dynamic binding of types</span></h4>
+                     <p>Overriding an acquired role by a new role class has the following
+                        	    implication: If an expression or declaration, which is evaluated on behalf of
+                        	    an instance of team <code>T</code> or one of its contained roles,
+                        	    refers to a role <code>R</code>, <code>R</code> will always
+                        	    resolve to <code>T.R</code> even if <code>R</code> was introduced in
+                        	    a super-team of <code>T</code> and even if the specific line of code
+                        	    was inherited from a super-team or one of its roles.
+                        	    Only the dynamic type of the enclosing team-instance is used to determine
+                        	    the correct role class (see below for an example).
+                        				
+                     </p>
+                     <p>A special case of dynamically binding role types relates to so-called class literals 
+                        		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                           class="ext">JLS &sect;15.8.2</a>). 
+                        		Role class literals are covered in <a href="s6.html#s6.1.c" title="&sect;6.1.(c)&nbsp;Class literals for roles"
+                           class="sect">&sect;6.1.(c)</a>.
+                        				
+                     </p>
+                     <p>The above is strictly needed only for cases involving implicit inheritance.
+                        	    It may, however, help intuition, to also consider the directly acquired
+                        	    role <code>T.R</code> in (b) to override the given role <code>S.R</code>.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In line 17 of <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the implicitly inherited method <code>n</code> is called
+                        				  with the result of an invocation of <code>m</code>. Although
+                        				  <code>n</code> was defined in <code>S</code> (thus with argument type
+                        				  <code>S.R2, see line 6</code>) in the context of <code>T</code> it
+                        				  expects an argument of <code>T.R2</code>. This is correctly provided by
+                        				  the invocation of <code>m</code> in the context of <code>T</code>.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">tsuper</span></h4>
+                     <div class="syntaxlink"><a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.4</a></div>
+                     <p>Super calls along implicit inheritance use the new keyword
+                        	    <strong>tsuper</strong>. While <code>super</code> is still available
+                        	    along regular inheritance, a call <code>tsuper.m()</code>
+                        	    selects the version of <code>m</code> of the corresponding role
+                        	    acquired from the super-team.
+                        				
+                     </p>
+                     <p>See <a href="s2.html#s2.4.2"
+                           title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                           class="sect">&sect;2.4.2</a> for <code>tsuper</code>
+                        	    in the context of role constructors.
+                        				
+                     </p>
+                     <p><code>tsuper</code> can only be used to invoke a corresponding
+                        	    version of the enclosing method or constructor, i.e., an expression
+                        		<code>tsuper.m()</code> may only occur within the method <code>m</code>
+                        		with both methods having the same signature
+                        	    (see <a href="s2.html#s2.3.2.b"
+                           title="&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting"
+                           class="sect">&sect;2.3.2.(b)</a> for an exception, where both methods have slightly different signatures).
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in team <code>T</code> 
+                        					overrides the implicitly inherited method <code>m()</code> from <code>S</code>. <code><strong>tsuper</strong>.m()</code> calls the overridden method <code>m()</code>
+                        					  from <code>S.R1</code> (line 13).
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">Implicitly inheriting super-types</span></h4>
+                     <p>If a role class has an explicit super class (using <code>extends</code>)
+                        		this relation is inherited along implicit inheritance.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in <code>T</code> has <code>T.R0</code> 
+                        					as its implicitly inherited super class, because the corresponding role in the super-team 
+                        					<code><strong>extends R0</strong></code> (line 3).
+                        				
+                     </div>
+                     <p>Overriding an implicitly inherited super class is governed by
+                        		<a href="#s1.3.2.b"
+                           title="&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause"
+                           class="sect">&sect;1.3.2.(b)</a>, below.<br />
+                        	    The list of implemented interfaces is merged along implicit
+                        		inheritance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.h">
+                     <h4 class="subsect">(h)&nbsp;<span class="title">Preserving visibility</span></h4>
+                     <p>A role class must provide at least as much access as the implicit super role,
+                        		or a compile-time error occurs (this is in analogy to <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227965"
+                           class="ext">JLS &sect;8.4.6.3</a>).
+                        		Access rights of methods overridden by implicit inheritance follow
+                        		the same rules as for normal overriding.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.i">
+                     <h4 class="subsect">(i)&nbsp;<span class="title">Dynamic binding of constructors</span></h4>
+                     <p>When creating a role instance using <code>new</code> not only the
+                        			type to instantiate is bound dynamically (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                           class="sect">&sect;1.3.1.(e)</a>), but also the constructor to
+                        			invoke is dynamically bound in accordance to the concrete
+                        			type.<br />
+                        			Within role constructors all <code>this(..)</code> and
+                        			<code>super(..)</code> calls are bound statically with respect to explicit inheritance
+                        			and dynamically with respect to implicit inheritance. This means the target role name is 
+                        			determined statically, but using that name the suitable role type is determined
+                        			using dynamic binding.
+                        			<br />
+                        			See also <a href="s2.html#s2.5.a"
+                           title="&sect;2.5.(a)&nbsp;Using abstract classes for creation"
+                           class="sect">&sect;2.5.(a)</a> on using constructors of abstract role classes.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.j">
+                     <h4 class="subsect">(j)&nbsp;<span class="title">Overriding and compatibility</span></h4>
+                     <p>The rules of <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#228745"
+                           class="ext">JLS &sect;8.4.6</a> 
+                        			also apply to methods <em>and constructors</em> inherited via implicit inheritance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.k">
+                     <h4 class="subsect">(k)&nbsp;<span class="title">Covariant return types</span></h4>
+                     <p>Given a team <code>T1</code> with two roles <code>R1</code> and <code>R2</code> where <code>R2</code> explicitly inherits from <code>R1</code>, both roles defining
+                        					a method <code>m</code> returning some type <code>A</code>.
+                        				   Given also a sub-team of <code>T1</code>, <code>T2</code>, where <code>T2.R1</code> overrides <code>m</code> with a covariant return type <code>B</code>
+                        				   	(sub-type of <code>A</code>):
+                        				
+                     </p>
+                     <div class="listing plain"><pre>    <b>public</b> <b>team</b> <b>class</b> T1 {
+       <b>protected</b> <b>abstract</b> <b>class</b> R1 {
+          <b>abstract</b> A m();
+       }
+       <b>protected</b> <b>class</b> R2 <b>extends</b> R1 {
+          A m() { <b>return</b> <b>new</b> A(); }
+       }
+    }
+    <b>public</b> <b>team</b> <b>class</b> T2 <b>extends</b> T1 {
+       <b>protected</b> <b>class</b> R1 {
+          @Override B m() { <b>return</b> <b>new</b> B(); } <span class="error">// this declaration renders <b>class</b> T2.R2 illegal</span>
+       }
+    }</pre></div>
+                     <p>
+                        				   In this situation role <code>T2.R2</code> will be illegal unless also overriding <code>m</code> with a return type that is at least <code>B</code>.
+                        				   Note, that the actual error occurs at the implicitly inherited method <code>T2.R2.m</code> which is not visible in the source code,
+                        				   even <code>T2.R2</code> need not be mentioned explicitly in the source code.
+                        				   A compiler should flag this as an imcompatibility at the team level, because a team must specialize inherited roles
+                        in a consistent way.
+                        				
+                     </p>
+                  </div>
+                  <h5 class="listing">Example code (Teams and Roles):</h5>
+                  <div class="listing example frame" id="l1.3.1-3">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    String name;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <b>public</b> MyRole (String n) { name = n; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("id="+name); }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  <b>protected</b> MyRole getRole() { <b>return</b> <b>new</b> MyRole("Joe"); }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.3.1-4">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">10</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">11</td>
+                           <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">12</td>
+                           <td><pre>    <b>int</b> age;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">13</td>
+                           <td><pre>    <b>public</b> <b>void</b> setAge(<b>int</b> a) { age = a; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">14</td>
+                           <td><pre>    <b>public</b> <b>void</b> print() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">15</td>
+                           <td><pre>      tsuper.print();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">16</td>
+                           <td><pre>      System.out.println("age="+age);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">17</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">18</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">19</td>
+                           <td><pre>  <b>public</b> <b>void</b> doit() {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">20</td>
+                           <td><pre>    MyRole r = getRole();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">21</td>
+                           <td><pre>    r.setAge(27);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">22</td>
+                           <td><pre>    r.print();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">23</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">24</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">25</td>
+                           <td><pre>...</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">26</td>
+                           <td><pre>MySubTeam myTeam = <b>new</b> MySubTeam();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">27</td>
+                           <td><pre>myTeam.doit();</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <h5 class="listing">Program output</h5>
+                  <div class="listing example frame"><pre>id=Joe
+age=27</pre></div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>According to <a href="#s1.3"
+                              title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                              class="sect">&sect;1.3</a>, <code>MyTeamA</code> implements
+                           	<code>ITeam</code> (line 1).
+                        </li>
+                        <li>An implicit role inheritance is created for
+                           	<code>MySubTeam.MyRole</code> (<a href="#s1.3.1.c"
+                              title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                              class="sect">&sect;1.3.1.(c)</a>; line&nbsp;11).<br />
+                           	If we visualize this special inheritance using a fictitious keyword
+                           	<code>overrides</code> the compiler would see a declaration:
+                           	
+                           <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <em>overrides MyTeamA.MyRole</em> { ... }</pre></div>
+                        </li>
+                        <li>Invoking <code>getRole()</code> on <code>myTeam</code> (line&nbsp;27, 20)
+	creates an instance of <code>MySubTeam.MyRole</code> because the
+                           	acquired role <code>MyTeamA.MyRole</code> is overridden by
+                           	<code>MySubTeam.MyRole</code>
+                           	following the rules of implicit inheritance (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                              class="sect">&sect;1.3.1.(e)</a>).
+                           					 
+                        </li>
+                        <li>Overriding of role methods and access to inherited features works as usual.
+                           					
+                        </li>
+                        <li>As an example for <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> see the call <code>tsuper.print()</code>
+	(line&nbsp;15), which selects the implementation of <code>MyTeamA.MyRole.print</code>.
+                           						
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.3.2">
+                  <h3 class="sect">&sect;1.3.2&nbsp;Regular role inheritance<span class="toplink"><a href="#s1.3">&uarr;&nbsp;&sect;1.3</a></span></h3>
+                  <p>In addition to implicit inheritance, roles may also inherit using
+                     	the standard Java keyword <code>extends</code>. These restrictions apply:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.3.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Super-class restrictions</span></h4>
+                     <p>If the super-class of a role is again a role it must be a direct role of
+                        			an enclosing team
+                        			This rule is simply enforced by disallowing type anchors in the
+                        			<code>extends</code> clause
+                        			(see <a href="#s1.2.2.g" title="&sect;1.2.2.(g)&nbsp;Legal contexts" class="sect">&sect;1.2.2.(g)</a>).
+                        			As an effect, the super-class may never be more deeply nested than the sub-class.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Inheriting and overriding the extends clause</span></h4>
+                     <p>If a role overrides another role by implicit inheritance, it may
+                        			change the inherited <code>extends</code> clause
+                        			(see <a href="#s1.3.1.g"
+                           title="&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types"
+                           class="sect">&sect;1.3.1.(g)</a> above) only if the new super-class
+                        			is a sub-class of the class in the overridden extends clause.
+                        			I.e., an implicit sub-role may <em>specialize</em> the extends clause of its
+                        			implicit super-role.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Constructors and overridden 'extends' </span></h4>
+                     <p>Each constructor of a role class that overrides the extends clause of its
+                        		  implicit super-role must invoke a constructor of this newly introduced
+                        		  explicit super-class. Thus it may not use a <code>tsuper</code> constructor
+                        		  (see <a href="s2.html#s2.4.2"
+                           title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                           class="sect">&sect;2.4.2</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Adding implemented interfaces</span></h4>
+                     <p><code>implements</code> declarations are additive, i.e., an implicit
+                        			sub-role may add more interfaces but has to implement all interfaces of
+                        			its implicit super-role, too.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Visibility of inherited methods</span></h4>
+                     <p>
+                        					When a role inherits non-public methods from a regular class (as its super class),
+                        					these methods are considered as private for the role, i.e., they can only be
+                        					accessed in an unqualified method call <code>m()</code> using the implicit receiver <code>this</code>.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.4">
+               <h2 class="sect">&sect;1.4&nbsp;Name clashes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>OT/J restricts Java with respect to handling of conflicting names.
+                  		
+               </p>
+               <div class="subsect depth3" id="s1.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Names of role classes</span></h4>
+                  <p>A role class may not have the same name as a method or field of
+                     			its enclosing team. A role class may not shadow another class that is visible in the scope of the enclosing team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Names of role methods and fields</span></h4>
+                  <p>Along implicit inheritance, the names of methods or fields may
+                     				not hide, shadow or obscure any previously visible name.<br />
+                     				(see JLS <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                        class="ext">&sect;8.3</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227928"
+                        class="ext">&sect;8.4.6.2</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                        class="ext">&sect;8.5</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#78642"
+                        class="ext">&sect;9.3</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#252566"
+                        class="ext">&sect;9.5</a> (hiding),
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#34133"
+                        class="ext">&sect;6.3.1</a> (shadowing),
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104058"
+                        class="ext">&sect;6.3.2</a> (obscuring).
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.5">
+               <h2 class="sect">&sect;1.5&nbsp;Team and role nesting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>Multi-level nesting of classes is restricted only by the following rules.
+                  		
+               </p>
+               <h5 class="listing">Example code (Nesting):</h5>
+               <div class="listing example frame" id="l1.5">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> SuperOuter {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>      Runnable foo() { <b>return</b> null; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> <b>extends</b> <strong>RoleAndTeam</strong> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>      Runnable foo() { throw <b>new</b> RuntimeException(); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> OuterTeam <b>extends</b> SuperOuter {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>      Runnable foo() {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>        <b>class</b> Local {};</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>        <b>return</b> <b>new</b> Runnable() { <span class="comment">// anonymous class definition</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>          <b>public</b> <b>void</b> run() {}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>        };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>      }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>      <span class="comment">// <span class="error">class IllegalMember {}</span></span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">24</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">25</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">26</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">27</td>
+                        <td><pre>      Runnable foo() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">28</td>
+                        <td><pre>        <em>RoleAndTeamSub.tsuper</em>.foo();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">29</td>
+                        <td><pre>        <b>return</b> <em>OuterTeam.tsuper</em>.foo();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">30</td>
+                        <td><pre>      };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">31</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">32</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">33</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="subsect depth3" id="s1.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Nested teams</span></h4>
+                  <p>If a role class is also marked using the <code>team</code> modifier,
+                     			it may contain roles at the next level of nesting.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <ul>
+                        <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) class <code>RoleAndTeam</code> starting in line 14
+                           			is a role of <code>OuterTeam</code> and at the same time a
+                           			team containing a further role <code>InnerRole</code></li>
+                     </ul>
+                  </div>
+                  <p>Such a hybrid role-and-team has all properties of both kinds of classes.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Nested classes of roles</span></h4>
+                  <p>A regular role class (ie., not marked as <code>team</code>, see above)
+                     			may contain local types (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#247766"
+                        class="ext">JLS &sect;14.3</a>
+                     			 - in the example: class <code>Local</code>), anonymous types
+                     			(<a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#252986"
+                        class="ext">JLS &sect;15.9.5</a>
+                     			 - in the example: class defined in lines 18-20)
+                     			but no member types (<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                        class="ext">JLS &sect;8.5</a>
+                     			 - in the example: illegal class
+                     			<code>IllegalMember</code>).
+                     			<br />
+                     			The effect is, that nested types of a regular role cannot be
+                     			used outside the scope of their enclosing role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Prohibition of cycles</span></h4>
+                  <p>A nested team may not extend its own enclosing team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Prohibition of name clashes</span></h4>
+                  <p>A nested team may inherit roles from multiple sources: its explicit super team
+                     and any of its implicit super classes (roles) from different levels of nesting.
+                     If from different sources a team inherits two or more roles of the same name
+                     that are not related by implicit inheritance, this is an illegal name clash.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Precedence among different supers</span></h4>
+                  <p>If a role inherits the same feature from several super roles (super and tsuper), 
+                     			an implicitly inherited version always overrides any explicitly inherited feature. <br />
+                     		    Also implicit inheritance alone may produce several candidate methods inherited by a role class. 
+                     		    This is a result of team-nesting where each level of nesting may add one more tsuper role. 
+                     		    In that case inner team inheritance has precedence over outer team inheritance.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <table>
+                        <colgroup span="1">
+                           <col align="left" span="1" />
+                           <col align="center" span="1" />
+                        </colgroup>
+                        <tr>
+                           <td valign="top" rowspan="1" colspan="1">
+                              <p>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) role <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> has two direct tsuper roles: <code class="small">OuterTeam.RoleAndTeam.InnerRole</code>&nbsp;and <code class="small">SuperOuter.RoleAndTeamSub.InnerRole</code>. Without the method <code>foo</code> defined in lines 27-30, the enclosing class <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> would inherit the method <code>foo</code> defined in line 16, because the inner inheritance between <code>RoleAndTeamSub</code> and <code>RoleAndTeam</code> binds stronger than the outer inheritance between <code>OuterTeam</code> and <code>SuperOuter</code>.
+                              </p>
+                           </td>
+                           <td rowspan="1" colspan="1"><img src="../images/team_nesting_hor.png" alt="Example diagram team nesting" /></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s1.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Qualified tsuper</span></h4>
+                  <p>A role in a nested team may qualify the keyword <code>tsuper</code> (see <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> above) by a type name 
+                     			in order to select among different method version inherited from different implicit super classes. A term <code>OuterTeam.tsuper</code> evaluates 
+                     			to the super-class, say <code>SuperOuter</code>, of an enclosing team "<code>OuterTeam</code>". A method call <code>OuterTeam.tsuper.m()</code> 
+                     			evaluates to the method version within <code>SuperOuter</code> that best corresponds to the current method containing the tsuper-call.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <ul>
+                        <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) line 28 is identical to an unqualified tsuper-call
+                        </li>
+                        <li>Line 29 selects a corresponding method from the context of <code>SuperOuter</code> resolving to <code>SuperOuter.RoleAndTeamSub.InnerRole.foo()</code></li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="aux" id="aux1.1">
+               <h4 class="aux">Language implementation:<span class="toplink"><a href="#s1">&uarr;&nbsp;&sect;1</a></span></h4>
+               <p>Role acquisition and implicit inheritance can be implemented in at least two ways.
+                  		
+               </p>
+               <p><strong>Virtual classes:</strong> Each role class is an overridable feature of
+                  its enclosing team. Role classes are resolved by dynamic binding
+                  with respect to the enclosing team instance. This implementation
+                  requires multiple-inheritance in order to also allow regular
+                  inheritance between roles of the same team. <code>super</code>
+                  and <code>tsuper</code>	select parent versions of a method along
+                  the two dimensions of inheritance.
+                  		
+               </p>
+               <p><strong>Copy inheritance:</strong> Role acquisition from a super-team has the effect
+                  of copying a role definition <code>T.R</code> yielding a new
+                  role <code>Tsub.R</code>. All role applications <code>Rx</code>
+                  in the role copy refer to <code>Tsub.Rx</code>. Implicit role
+                  inheritance extends a role copy in-place. Only the <code>tsuper</code>
+                  construct allows to access the previous version of a method
+                  (i.e. before in-place overriding).
+                  		
+               </p>
+            </div>
+            <div class="aux" id="aux1.2">
+               <h4 class="aux">References:<span class="toplink"><a href="#s1">&uarr;&nbsp;&sect;1</a></span></h4>
+               <p id="fn1-virtual-classes">[1] Ole Lehrmann Madsen and Birger M&oslash;ller-Pedersen. <em>Virtual classes: A powerful mechanism in object-oriented programming</em>. In Proceedings OOPSLA 89, ACM SIGPLAN Notices, volume 24, 10, pages 397-406, October 1989.
+                  
+               </p>
+               <p id="fn2-family-polymorphism">[2] Erik Ernst. <em>Family Polymorphism.</em> In Proceedings ECOOP 2001, LNCS 2072, pages 303-326, Springer, 2001.
+                  
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.html" rel="prev">&lt;&lt;&nbsp;&sect;0&nbsp;About this Document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.html" rel="next">&sect;2&nbsp;Role Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s2.html
new file mode 100644
index 0000000..a521433
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s2.html
@@ -0,0 +1,1868 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.html" rel="prev">&lt;&lt;&nbsp;&sect;1&nbsp;Teams and Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.html" rel="next">&sect;3&nbsp;Callout Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s2">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;2&nbsp;Role Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s2.html">&sect;2&nbsp;Role Binding</a></li>
+                  <li><a href="#s2.1">&sect;2.1&nbsp;playedBy relation</a></li>
+                  <li><a href="#s2.2">&sect;2.2&nbsp;Lowering</a></li>
+                  <li><a href="#s2.3">&sect;2.3&nbsp;Lifting</a></li>
+                  <li><a href="#s2.4">&sect;2.4&nbsp;Explicit role creation</a></li>
+                  <li><a href="#s2.5">&sect;2.5&nbsp;Abstract Roles</a></li>
+                  <li><a href="#s2.6">&sect;2.6&nbsp;Explicit base references</a></li>
+                  <li><a href="#s2.7">&sect;2.7&nbsp;Advanced structures</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Roles and base classes</h3>
+               <div class="line"></div>
+               <div class="term">playedBy relation</div>
+               <div class="termdesc">A role can be bound to a class outside the team by a <code>playedBy</code>
+                  		relation, which declares that each role instances is associated to a
+                  		base instances.
+               </div>
+               <div class="line"></div>
+               <div class="term">Base class</div>
+               <div class="termdesc">The class to which a role is bound (using <code>playedBy</code>) is called
+                  		its <strong>base class</strong>. Role instances may inherit and override
+                  		features from their base instance, which is declared using <strong>callout</strong>
+                  		(<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>)
+                  		and <strong>callin</strong> (<a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>) method bindings.
+               </div>
+               <div class="line"></div>
+               <div class="term">Bound role</div>
+               <div class="termdesc">Each role class that declares a <code>playedBy</code> relation
+                  		is called a <strong>bound role</strong>. The term bound role may also be
+                  		used for the instances of such a class.
+               </div>
+               <div class="line"></div>
+               <div class="term">Lifting / lowering</div>
+               <div class="termdesc">Translations between a role and its base are called
+                  		<strong>lifting</strong> (base to role) (<a href="#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                  	    and <strong>lowering</strong> (role to base) (<a href="#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Translation polymorphism</div>
+               <div class="termdesc">Conformance between a role and a base is governed by <strong>translation polymorphism</strong>,
+                  	    which refers to a substitutability that is achieved using either lifting or lowering.
+               </div>
+               <div class="line"></div>
+               <div class="term">Declared lifting</div>
+               <div class="termdesc">Generally, lifting happens implicitly at data flows between
+                  		a role object and its base. Team level methods provide additional
+                  		data flows, where lifting may be declared explicitly.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s2.1">
+               <h2 class="sect">&sect;2.1&nbsp;playedBy relation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+               <div class="subsect depth3" id="s2.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Role-base binding</span></h4>
+                  <p>Roles are bound to a base class by the <code>playedBy</code> keyword.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Inheritance</span></h4>
+                  <p>The <code>playedBy</code> relation is inherited along
+                     		explicit and implicit (<a href="s1.html#s1.3.1.c"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>)
+                     	    role inheritance.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Covariant refinement</span></h4>
+                  <p>An <em>explicit</em> sub-role (sub-class using <code>extends</code>) 
+                     		can refine the <code>playedBy</code> relation to a more 
+                     		specific base class (this is the basis for 
+                     		<a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">smart lifting (&sect;2.3.3)</a>).<br />
+                     		If a role class inherits several <code>playedBy</code> relations from
+                     		its super-class and its super-interfaces, there must be a most specific
+                     		base-class among these relations, which is conform to all other base-classes.
+                     		This most specific base-class is the base-class of the current role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">No-variance</span></h4>
+                  <p>An <em>implicit</em> sub-role (according to <a href="s1.html#s1.3.1.c"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>)
+                     		may only add a <code>playedBy</code> relation but never change an existing one.<br />
+                     		Note however, that implicit inheritance may implicitly specialize an existing <code>playedBy</code> 
+                     		relation (this advanced situation is illustrated in <a href="#s2.7.d" title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                        class="sect">&sect;2.7.(d)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Use of playedBy bindings</span></h4>
+                  <p>The <code>playedBy</code> relation by itself has no effect
+                     	    on the behavior of role and base objects.
+                     	    It is, however, the precondition for translation polymorphism
+                     	    (lowering: <a href="#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and lifting: <a href="#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                     	    and for method bindings (callout: <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a> and callin: <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Effect on garbage collection</span></h4>
+                  <p>A role and its base object form one conceptual entity. The garbage collector will see a role
+                     and its base object as linked in a bidirectional manner. As a result, a role cannot be
+                     garbage collected if its base is still reachable and vice versa.
+                     <br />
+                     Internally a team manages its roles and corresponding bases using weak references.
+                     When using one of the <code>getAllRoles(..)</code>
+                     methods (see <a href="s6.html#s6.1.a"
+                        title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                        class="sect">&sect;6.1.(a)</a>),
+                     the result may be non-deterministic because these internal structures
+                     may hold weak references to objects that will be collected by the next run of the
+                     garbage collector. We advise clients of <code>getAllRoles(..)</code> to call
+                     <code>System.gc()</code> prior to calling <code>getAllRoles(..)</code> in order
+                     to ensure deterministic results.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s2.1.1">
+                  <h3 class="sect">&sect;2.1.1&nbsp;Binding interfaces<span class="toplink"><a href="#s2.1">&uarr;&nbsp;&sect;2.1</a></span></h3>
+                  <p>Role base bindings may involve classes and/or interfaces.
+                     	An interface defined as a member of a team is a role interface and may therefore
+                     	have a <code>playedBy</code> clause. Also the type mentioned after the
+                     	<code>playedBy</code> keyword may be an interface.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Implementation limitation:</h5>
+                     				The language implementation as of OTDT version 1.0.<i>X</i> cannot yet bind 
+                     				a role class to a base interface, but this restriction will go in the future.
+                     			
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.1.2">
+                  <h3 class="sect">&sect;2.1.2&nbsp;Legal base classes<span class="toplink"><a href="#s2.1">&uarr;&nbsp;&sect;2.1</a></span></h3>
+                  <p>Generally, the base class mentioned after <code>playedBy</code> must be
+                     		visible in the enclosing scope (see <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">below (&sect;2.1.2.(c))</a> for an exception).
+                     Normally, this scope is defined just by the imports of the enclosing team.
+                     For role files (<a href="s1.html#s1.2.5.b" title="&sect;1.2.5.(b)&nbsp;Role files"
+                        class="sect">&sect;1.2.5.(b)</a>)
+                     also additional imports in the role file are considered.
+                     <br /><a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a> below defines how imports can be constrained so that certain types 
+                     can be used as base types, only.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.1.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">No role of the same team</span></h4>
+                     <p>The base class of any role class must not be a role of the same team.
+                        			<br />
+                        			It is also not allowed to declare a role class of the same name
+                        			as a base class bound to this or another role of the enclosing team,
+                        			if that base class is given with its simple name and resolved using a regular import.
+                        			Put differently, a base class mentioned after <code>playedBy</code>
+                        			may not be <em>shadowed</em> by any role class of the enclosing team.
+                        			<br /><em>Base imports</em> as defined below (<a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>) relax this rule by 
+                        			allowing to import a class as a base class only. In that case no shadowing occurs since the scopes for 
+                        			base classes and roles are disjoint.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">No cycles</span></h4>
+                     <p>The base class mentioned after <code>playedBy</code> may not be
+                        an enclosing type (at any depth) of the role class being defined.
+                        <br />
+                        This rule prohibits the creation of cycles where the base instance of
+                        a given role <code>R</code> contains roles of the same type <code>R</code>.
+                        <br />
+                        More generally any sequence of classes <code>C<sub>1</sub>, C<sub>2</sub>, .. C<sub>n</sub></code>
+                        were each <code>C<sub>i+1</sub></code> is either a member or the base class of 
+                        <code>C<sub>i</sub></code> and <code>C<sub>n</sub> = C<sub>1</sub></code> is forbidden.
+                        <br />
+                        Conversely, it is also prohibited to bind a role class to its own inner class.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Base class decapsulation</span></h4>
+                     <p>If a base class referenced after <code>playedBy</code> exists but is not visible under normal visibility rules of Java, 
+                        				this restriction may be overridden. This concept is called <strong>decapsulation</strong>, i.e., the opposite of encapsulation 
+                        				(see also <a href="s3.html#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                           class="sect">&sect;3.4</a>). A compiler should signal any occurrence of base class decapsulation. If a compiler supports to 
+                        				configure warnings this may be used to let the user choose to (a) ignore base class decapsulation, (b) treat it as a warning
+                        or even 
+                        				(c) treat it as an error.
+                        
+                     </p>
+                     <p>
+                        Binding to a <code>final</code> base class is also considered as decapsulation, since a <code>playedBy</code> relationship has
+                        powers similar to an <code>extends</code> relationship, which is prohibited by marking a class as <code>final</code>.
+                        
+                     </p>
+                     <p>
+                        Decapsulation is not allowed if the base class is a confined role (see <a href="s7.html#s7.2" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a>).
+                        
+                     </p>
+                     <p>
+                        Within the current role a decapsulated base class can be mentioned in the right-hand-side of any method binding 
+                        (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout (&sect;3)</a> or <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>). Also arguments in these positions are allowed to mention the decapsulated base class:
+                        
+                     </p>
+                     <ul>
+                        <li>the first argument of one of the role's constructors (see <a href="#s2.4.1"
+                              title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                              class="sect">lifting constructor (&sect;2.4.1)</a>).
+                        </li>
+                        <li>the base side of an argument with declared lifting (see <a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">declared lifting (&sect;2.3.2)</a>).
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Base imports</span></h4>
+                     <p>If the main type in a file denotes a team, the modifier <code>base</code> can be applied to an import in order to specify that this type 
+                        					should be imported for application as a base type only. Example:
+                        				
+                     </p>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><em><b>import</b> base</em> some.pack.MyBase;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <span class="comment">// simple name resolves to imported class:</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>protected</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> { } </pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  <span class="error"><em>MyBase</em> illegalDeclaration;</span> <span class="comment">// base import does not apply for this position</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <p>Types imported by a base import can only be used in the same positions where also base class decapsulation (<a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a>) 
+                        			is applicable.<br />
+                        			It is recommended that a type mentioned after the keyword <code>playedBy</code> is always imported with the <code>base</code> modifier, otherwise the compiler 
+                        			will give a warning.<br />
+                        	Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash
+                        with normally visible names 
+                        	(in contrast to <a href="s1.html#s1.4" title="&sect;1.4&nbsp;Name clashes" class="sect">&sect;1.4</a>). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">No free type parameters</span></h4>
+                     <p>
+                        				Neither the role class nor the base class in a playedBy binding must have any <em>free type parameters</em>.
+                        				If both classes are specified with a type parameter of the same name, both parameters are identified
+                        				and are not considered as <em>free</em>.
+                        				
+                     </p>
+                     <p>
+                        				From this follows that a role class cannot have more type parameters than its base.
+                        				Conversely, only one situation exists where a base class can have more type parameters than a role class
+                        				bound to it: if the role class has no type parameters a generic base class can be bound using
+                        				the base class's raw type, i.e., without specifying type arguments.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					The information from the <code>playedBy</code> declaration is used at run-time 
+                        					to associate role instances to base instances.
+                        					Specifying a base class with free type parameters would imply that only such base instances
+                        					are decorated by a role whose type is conform to the specified parameterized class.
+                        					However, type arguments are not available at run-time, thus the run-time environment
+                        					is not able to decide which base instances should have a role and which should not.
+                        					This is due to the design of generics in Java which are realized by erasure.
+                        				
+                     </div>
+                     <p>The following example shows how generics can be used in various positions. Note, that some of the concepts used in the example
+                        will be explained in later sections.
+                     </p>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>public</b> <b>class</b> ValueTrafo<em>&lt;T&gt;</em> {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <em>T</em> transform(<em>T</em> val) throws Exception { /* ... */ }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> TransformTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>    <b>protected</b> <b>class</b> SafeTrafo<em>&lt;U&gt;</em> <b>playedBy</b> ValueTrafo<em>&lt;U&gt;</em> {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>        <em>U</em> transform(<em>U</em> v) <b>-&gt;</b> <em>U</em> transform(<em>U</em> val); </pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>        <b>protected</b> <em>U</em> safeTransform(<em>U</em> v) {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>            <b>try</b> {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>            	<b>return</b> transform(v);</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>            } <b>catch</b> (Exception e) {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>            	<b>return</b> v;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>            }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre>        }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">15</td>
+                              <td><pre>    <em>&lt;V&gt; V</em> perform(ValueTrafo<em>&lt;V&gt;</em> <b>as</b> SafeTrafo<em>&lt;V&gt;</em> trafo, <em>V</em> value) {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">16</td>
+                              <td><pre>        <b>return</b> trafo.safeTransform(value);</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">17</td>
+                              <td><pre>    } </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">18</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">19</td>
+                              <td><pre>...</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">20</td>
+                              <td><pre>ValueTrafo<em>&lt;String&gt;</em> trafo = <b>new</b> ValueTrafo<em>&lt;String&gt;</em>();</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">21</td>
+                              <td><pre>TransformTeam safeTrafo = <b>new</b> TransformTeam();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">22</td>
+                              <td><pre>String s = safeTrafo.perform(trafo, "Testing");</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">23</td>
+                              <td><pre></pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <div class="codecomment">
+                        <h5>Explanation</h5>
+                        <ul>
+                           <li>Line 5 shows a role with type parameter <code>U</code> where the type parameter is identified with the
+                              					    corresponding type parameter of the role's base class (which is originally declared as <code>T</code> in line 1.
+                           </li>
+                           <li>Line 6 shows a callout binding (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>) which mappes a base method to a corresponding role method
+                              						while maintaining the flexible typing.
+                           </li>
+                           <li>The regular method in lines 7-13 just passes values of type <code>U</code> around.
+                           </li>
+                           <li>The generic method in line 15 ff. uses declared lifting (<a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) to obtain a role for a given base object.
+                              						The method has no knowledge about the concrete type arguments of either role nor base, but works under the guarantee
+                              						that both type arguments will be the same for any single invocation.
+                           </li>
+                           <li>Lines 20 ff. finally create instances of base and team and invoke the behavior thereby instantiating type parameters to <code>String</code>.
+                           </li>
+                        </ul>
+                     </div>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.2">
+               <h2 class="sect">&sect;2.2&nbsp;Lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Each instance of a bound role class internally stores a reference to its
+                  	base object. The reference is guaranteed to exist for each bound role
+                  	instance, and cannot be changed during its lifetime.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lowering</span></h4>
+                  <p>Retrieving the base object from a role object is called <strong>lowering</strong>.
+                     		No other means exists for accessing the base reference.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Places of lowering</span></h4>
+                  <p>The lowering translation is not meant to be invoked
+                     		by client code, but <strong>implicit translations</strong> are inserted by
+                     		the compiler at all places where a role type is provided while the
+                     		corresponding base type (or a super type) was expected.<br />
+                     		In other words: lowering translations are inserted by the compiler at
+                     		all places in a program which would otherwise not be type correct
+                     		and which using	lowering are statically type correct.
+                     		This may concern:
+                     			
+                  </p>
+                  <ul>
+                     <li>the right hand side of an assignment wrt. the static type of the left hand side,</li>
+                     <li>the argument values of a method or constructor call wrt. the static type of the corresponding formal parameter,</li>
+                     <li>the return value of a method compared to the declared return type of the method.</li>
+                     <li>a role parameter in a callout binding (<a href="s3.html#s3.3.d" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                     </li>
+                     <li>or the return value in a callin binding (<a href="s4.html#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                     </li>
+                  </ul>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> <em>MyRole <b>playedBy</b> MyBase</em> { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>void</b> useMyBase(<em>MyBase</em> myb) {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <em>MyRole</em> returnMyRole() {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <em>MyRole r</em> = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <em>MyBase b</em> = <em>r</em>;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    useMyBase(<em>r</em>);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <em>MyBase b2</em> = returnMyRole();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <p>An instance of type <code>MyRole</code> is lowered to type <code>MyBase</code> when
+                     </p>
+                     <ul>
+                        <li>assigning it to <code>b</code> (line 7)
+                        </li>
+                        <li>passing it as argument to a method with formal parameter of type <code>MyBase</code> (line 8)
+                        </li>
+                        <li>assigning the return value to a variable of type <code>MyBase</code> (line 9)
+                        </li>
+                     </ul>
+                     <p><em>Note</em>: The constructor call in line 6 uses the <em>lifting constructor</em> as defined in <a href="#s2.4.1"
+                           title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                           class="sect">&sect;2.4.1</a></p>
+                  </div>
+                  <p>Lowering translations are <span class="underline">not</span> inserted for
+                     			
+                  </p>
+                  <ul>
+                     <li>reference comparison (using <code>==</code> or <code>!=</code>)
+                     </li>
+                     <li><code>instanceof</code> checks
+                     </li>
+                     <li>cast expressions</li>
+                     <li>return values in callout bindings <a href="s3.html#s3.3.d" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                     </li>
+                     <li>parameters in callin bindings (<a href="s4.html#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                     </li>
+                  </ul>
+                  <p>For cases where lowering shall be <em>forced</em> see <a href="#s2.2.d" title="&sect;2.2.(d)&nbsp;Explicit lowering" class="sect">&sect;2.2.(d)</a> below.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+                  <p>The static type of an implicit lowering translation is the base class
+                     		declared using <code>playedBy</code> in the respective role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Explicit lowering</span></h4>
+                  <p>If a base type is also the super type of its role,
+                     		which frequently happens, if a base reference is known only by
+                     		the type <code>Object</code>, lowering cannot be deduced automatically,
+                     		since a type could be interpreted both as a role type and a base type.
+                     		These cases may need <strong>explicit lowering</strong>.
+                     		For this purpose the role class must declare to implement the interface
+                     		<strong><code>ILowerable</code></strong> (from <code>org.objectteams.ITeam</code>).
+                     		This will cause the compiler to generate a method
+                  </p>
+                  <div class="listing plain"><pre><b>public</b> Object lower()</pre></div>
+                  <p>for the given role class. Client code may use this method to
+                     		explicitly request the base object of a given role object.
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>implements</b> ILowerable</em> <b>playedBy</b> MyBase { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    MyRole r = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    Object oMyRole = r;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    Object oMyBase = r.<em>lower()</em>;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Lowering of arrays</span></h4>
+                  <p>Lowering also works for arrays of role objects.
+                     		In order to lower an array of role objects,
+                     		a new array is created and filled with base objects, one for each
+                     		role object in the original array. The array may have any number
+                     		of dimensions at any shape. The lowered array will have exactly the
+                     		same shape.<br />
+                     		Note, that each lowering translation will create a new array.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Ambiguous lowering</span></h4>
+                  <p>When assigning a value of a bound role type to a variable or argument of type <code>java.lang.Object</code>
+                     			this situation is considered as ambiguous lowering because the assignment could apply either (a) a direct upcast to <code>Object</code>
+                     			or (b) lowering and then upcasting.
+                     			In such situations the compiler will <em>not</em> insert a lowering translation, but a configurable warning will be issued.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.3">
+               <h2 class="sect">&sect;2.3&nbsp;Lifting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Lifting is the reverse translation of lowering. However, lifting is
+                  	a bit more demanding, since a given base object may have zero to
+                  	many role objects bound to it. Therefor, the lifting translation
+                  	requires more context information and may require to create role
+                  	objects on demand.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lifting</span></h4>
+                  <p>Retrieving a role for a given base object is called <strong>lifting</strong>.
+                     	    Lifting is guaranteed to yield the same role object for subsequent
+                     	    calls regarding the same base object, the same team instance and
+                     	    the same role class (see <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a>
+                     		for cases of ambiguity that are signaled by compiler warnings
+                     		and possibly runtime exceptions).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Places of lifting</span></h4>
+                  <p>The lifting translation is not meant to be invoked
+                     		by client code, but translations are inserted by the compiler
+                     		at the following locations:
+                     			
+                  </p>
+                  <ul>
+                     <li><a href="s3.html#s3.3.c" title="&sect;3.3.(c)&nbsp;Result translation"
+                           class="sect">Callout bindings (&sect;3.3.(c))</a> (result)
+                     </li>
+                     <li><a href="s4.html#s4.5.a" title="&sect;4.5.(a)&nbsp;Call target translation"
+                           class="sect">Callin bindings (&sect;4.5.(a))</a> (call target and parameters)
+                     </li>
+                     <li><a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">Declared lifting (&sect;2.3.2)</a></li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s2.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+                  <p>A lifting translation statically expects a specific role class.
+                     		This expected role class must have a <code>playedBy</code> clause
+                     		(either directly, or inherited (explicitly or implicitly)
+                     		from a super role), to which the given base type is conform.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Lifting of arrays</span></h4>
+                  <p>Lifting also works for arrays of role objects.
+                     		For lifting an array of base objects
+                     		a new array is created and filled with role objects, one for each
+                     		base object in the original array. In contrast to the role objects
+                     		themselves,	lifted arrays are never reused for subsequent lifting
+                     		invocations.
+                     			
+                  </p>
+               </div>
+               <p id="s2.3.transpol">The term <strong>translation polymorphism</strong>
+                  		describes the fact that at certain points values can be passed which are not
+                  		conform to the respective declared type considering only regular
+                  		inheritance (<code>extends</code>). With translation polymorphism
+                  		it suffices that a value can be translated using lifting or lowering.
+                  		
+               </p>
+               <div class="sect depth3" id="s2.3.1">
+                  <h3 class="sect">&sect;2.3.1&nbsp;Implicit role creation<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>Lifting tries to reuse existing role objects so that role state persists across
+                     	lifting and lowering. If no suitable role instance is found during lifting,
+                     	a new role is created.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Reuse of existing role objects</span></h4>
+                     <p>A role object is considered suitable for reuse during lifting, if
+                        		these three items are identical:
+                        				
+                     </p>
+                     <ol>
+                        <li>the given base object</li>
+                        <li>the given team object</li>
+                        <li>the statically required role type</li>
+                     </ol>
+                     <p>For the relation between the statically required role type and
+                        			the actual type of the role object see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">"smart lifting" (&sect;2.3.3)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Default lifting constructor</span></h4>
+                     <p>Lifting uses a default constructor which takes exactly one argument of the type
+                        			of the declared base class (after <code>playedBy</code>).
+                        			By default the compiler generates such a constructor for each bound role.
+                        			On the other hand, default constructors that take no arguments
+                        			(as in <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#16823"
+                           class="ext">JLS &sect;8.8.7</a>) are never generated for bound roles.
+                        			<br />
+                        			The super-constructor to be invoked by a default lifting constructor
+                        			depends on whether the role's super class is a bound role or not.
+                        				
+                     </p>
+                     <ul>
+                        <li>If the super-class is a bound role, the default lifting constructor will invoke the default lifting constructor of the super-class.</li>
+                        <li>If the super-class is not a bound role, the default lifting constructor will invoke the normal argumentless default constructor
+                           of the super-class.
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Custom lifting constructor</span></h4>
+                     <p>If a role class declares a custom constructor with the same signature
+                        			as the default lifting constructor, this constructor is used during lifting.
+                        			This custom constructor may pre-assume that the role has been setup
+                        			properly regarding its base-link and registered in the team's internal map of roles.
+                        			<br />
+                        			If a bound role has an unbound super-class without an argumentless
+                        			constructor, providing a custom lifting constructor is obligatory,
+                        			because no legal default lifting constructor can be generated.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.2">
+                  <h3 class="sect">&sect;2.3.2&nbsp;Declared lifting<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <div class="syntaxlink"><a href="sA.html#sA.6.2" title="&sect;A.6.2&nbsp;LiftingType" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.6.2</a></div>
+                  <div class="subsect depth4" id="s2.3.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Parameters with declared lifting</span></h4>
+                     <p>A non-static team-level method or constructor may declare a parameter with two types 
+                        			in order to explicitly denote a place of <strong>lifting</strong>. Using the syntax
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <em>as</em> RoleClass param) { <i>stmts</i> }</pre></div>
+                     <p>a liftable parameter can be declared, provided the second type 
+                        			(<code>RoleClass</code>) is a role of (<code>playedBy</code>) the first type (<code>BaseClass</code>). 
+                        			Furthermore, the role type must be a role of the enclosing team class defining the given method. 
+                        			The role type must be given by its simple (i.e., unqualified) name.
+                        			<br />
+                        			Such a signature requires the caller to provide a base object (here <code>BaseClass</code>), but 
+                        			the callee receives a role object (here <code>RoleClass</code>). 
+                        			In fact, the client sees a signature in which the "<code>as RoleClass</code>" part is omitted.
+                        			<br />
+                        			Compatibility between caller and callee sides is achieved by an implicitly inserted lifting translation. 
+                        			A signature using declared lifting is only valid, if the requested lifting is possible 
+                        			(see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">&sect;2.3.3</a> and <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a> for details).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Super in the context of declared lifting</span></h4>
+                     <p>Calling <code>super</code> or <code>tsuper</code> in a method or constructor which 
+                        			declares lifting for one or more parameters refers to a method or constructor with role type parameters, 
+                        			i.e., lifting takes place <em>before</em> super invocation. Nevertheless, the super method may also 
+                        			have a declared lifting signature. It will then see the same role instance(s) as the current method.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Declared lifting of arrays</span></h4>
+                     <p>If a parameter involving explicit lifting should be of an <strong>array</strong> type, the syntax is
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <b>as</b> RoleClass param[]) ...</pre></div>
+                     <p>Here the brackets denoting the array apply to both types, <code>BaseClass</code> 
+                        			and <code>RoleClass</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Declared lifting for catch blocks</span></h4>
+                     <p>Also the argument of a catch block may apply declared lifting like in:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>catch</b> (BaseException <b>as</b> RoleClass param) { <i>stmts</i> }</pre></div>
+                     <p>This syntax is only valid in a non-static scope of a team (directly or nested). 
+                        			In the given example, <code>RoleClass</code> must be played by <code>BaseException</code>. 
+                        			Note, that <code>RoleClass</code> itself need not be a throwable. 
+                        			As the effect of this declaration the catch block will catch any exception of type <code>BaseException</code> 
+                        			and provides it wrapped with a <code>RoleClass</code> instance to the subsequent block.
+                        			<br />
+                        			Also note, that re-throwing the given instance <code>param</code> has the semantics of implicitly lowering 
+                        			the role to its base exception before throwing, because the role  conforms to the required type 
+                        			<code>Throwable</code> only via lowering.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Generic declared lifting</span></h4>
+                     <p>A method with declared lifting may introduce a type parameter that is bounded relative to a given role type.
+                        					Such bound is declared as:
+                        				
+                     </p>
+                     <div class="listing plain"><pre>&lt;AnyBase <b>base</b> SuperRole&gt;
+<b>void</b> teamMethod(AnyBase <b>as</b> SuperRole arg) {
+   <span class="comment">// body using arg as of type SuperRole</span>
+}</pre></div>
+                     <p>This means that <code>AnyBase</code> is a type parameter whose instantiations must all be liftable to role <code>SuperRole</code>.
+                        				
+                     </p>
+                     <p>
+                        					The given type bound requires the call site to supply an argument that is compatible to any base class
+                        					for which the current team contains a bound role that is a sub class of <code>SuperRole</code>, including <code>SuperRole</code> itself.
+                        					However, <code>SuperRole</code> itself need not be bound to any base class.
+                        					On the other hand, different valid substitutions for <code>AnyBase</code> need not be related by inheritance.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					This feature supports generalized treatment of otherwise unrelated base classes.
+                        					This is done by defining one bound role for each base under consideration and by
+                        					having all these roles extend a common unbound role.
+                        				
+                     </div>
+                  </div>
+                  <h5 class="listing">Example code (Declared Lifting):</h5>
+                  <div class="listing example frame" id="l2.3.2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Super {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <b>playedBy</b> MyBase { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>void</b> m (MyRole o) { ... };</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre><b>team</b> <b>class</b> Sub <b>extends</b> Super {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>void</b> m (<em>MyBase <b>as</b> MyRole o</em>) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <span class="comment">// inside this method o is of type MyRole</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    super.m(o);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>Sub s_<b>team</b> = <b>new</b> Sub();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>s_team.m(b); <span class="comment">// clients see a parameter "MyBase o"</span></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>Clients use method <code>m</code> with a base instance (type <code>MyBase</code>) as its argument (line 13).
+                        </li>
+                        <li>Before executing the body of <code>m</code>, the argument is lifted such that the method body receives 
+                           						the argument as of type <code>MyRole</code> (line 8).
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.3">
+                  <h3 class="sect">&sect;2.3.3&nbsp;Smart lifting<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>In situations where role and base classes are part of some inheritance
+                     		hierarchies (<code>extends</code>), choosing the appropriate role class during
+                     		lifting involves the following rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Static adjustment</span></h4>
+                     <p>If a base class <code>B</code> shall be lifted to a role class
+                        			<code>R</code> that is not bound to (<code>playedBy</code>)
+                        			<code>B</code>, but if a subclass of <code>R</code>
+			&mdash; say <code>R2</code> &mdash;
+			is bound to <code>B</code>, lifting is statically setup to use
+                        			<code>R2</code>, the most general subclass of <code>R</code> that
+                        			is bound to <code>B</code> or one of its super-types.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Restriction:</h5>
+                        					This step is not applicable for parameter mappings of <code>replace</code>
+                        					callin bindings (<a href="s4.html#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>).
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Dynamic selection of a role class</span></h4>
+                     <p>At runtime also the dynamic type of a base object is considered:
+			Lifting always tries to use a role class that is bound to the
+			exact class of the base object. Lifting considers all role&ndash;base
+			pairs bound by <code>playedBy</code> such that the role class is a
+                        			sub-class of the required (statically declared) role type
+                        			and the base class is a super-class of the
+                        			dynamic type of the base object.
+                        			<br />
+                        			From those possible pairs the most specific base class is chosen.
+                        			If multiple role classes are bound to this base class the most
+                        			specific of these classes is chosen.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Team as closed world</span></h4>
+                     <p>In the above analysis gathering all role-base pairs is performed at
+                        			compile-time. From this follows, that a team class can only be
+                        			compiled when all its contained role classes are known and a role class
+                        			can never be compiled without its team.
+                        			<br />
+                        			The analysis includes all roles and their bindings that are inherited
+                        			from the super-team.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Selection regardless of abstractness</span></h4>
+                     <p>Smart lifting is not affected by abstractness of role classes.
+                        			For the effect of abstract role classes see <a href="#s2.5" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>.
+                        				
+                     </p>
+                  </div>
+                  <h5>Complex Example:</h5>
+                  <p><img src="../images/smart_lifting_small.png" alt="smart lifting example" /></p>
+                  <table border="2" width="80%">
+                     <colgroup span="1">
+                        <col align="left" span="1" />
+                        <col align="left" span="1" />
+                     </colgroup>
+                     <tr>
+                        <th rowspan="1" colspan="1">role class</th>
+                        <th rowspan="1" colspan="1">base class</th>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R1</td>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R2 extends R1 playedBy B2</td>
+                        <td rowspan="1" colspan="1">class B2</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R3 extends R2 <em>/* inherited: playedBy B2 */ </em></td>
+                        <td rowspan="1" colspan="1">class B3 extends B2</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R4 extends R3 playedBy B4</td>
+                        <td rowspan="1" colspan="1">class B4 extends B3</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R5 extends R4 <em>/* inherited: playedBy B4 */</em></td>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                        <td rowspan="1" colspan="1">class B6 extends B4</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R7 extends R5 playedBy B7</td>
+                        <td rowspan="1" colspan="1">class B7 extends B6</td>
+                     </tr>
+                  </table>
+                  <div class="codecomment">
+                     <ul>
+                        <li>If declarations require lifting <code>B3</code> to <code>R1</code>
+                           			this is statically refined to use <code>R2</code> instead, because this
+			is the most general class declaring a binding to a super&ndash;class
+			of <code>B3</code>.
+                           					
+                        </li>
+                        <li>If the dynamic base type in the same situation is <code>B6</code>,
+                           			three steps select the appropriate role:
+                           						
+                           <ol>
+                              <li>By searching all <code>playedBy</code> clauses (including those
+			that are inherited) the following role&ndash;base pairs are
+			candidates:<br /><code>(R2,B2), (R3,B2), (R4,B4)</code> and <code>(R5,B4)</code>.
+                              </li>
+                              <li>From these pairs the two containing the most specific base class
+                                 		<code>B4</code> are chosen.
+                              </li>
+                              <li>This makes <code>R4</code> and <code>R5</code> role candidates,
+                                 		from which the most specific <code>R5</code> is finally chosen.
+                              </li>
+                           </ol>
+                        </li>
+                     </ul>
+                  </div>
+                  <p>If the inheritance hierarchies of the involved base and role classes are given (like in the figure above) 
+                     			the smart lifting algorithm can be rephrased to the following "graphical" rule:<br /></p>
+                  <div class="note">
+                     				Starting with the dynamic base type (<code>B6</code> in the example) move upwards the the inheritance 
+				relation until you reach a base class bound to a role class indicated by a &laquo;playedBy&raquo; 
+				arrow pointing to the base class (<code>B4</code>). This role class must be conform to the requested role type. 
+                     				Switch to the role side along this arrow (<code>R4</code>). Now move downwards the role inheritance hierarchy 
+				as long as the subrole does not refine the playedBy relationship (indicated by another &laquo;playedBy&raquo; arrow). 
+				The bottom role you reach this way (<code>R5</code>) is the role type selected by smart lifting.
+                     			
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.4">
+                  <h3 class="sect">&sect;2.3.4&nbsp;Binding ambiguities<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>While all examples so far have only shown 1-to-1 class bindings,
+                     	    several cases of multiple bindings are allowable. Ambiguities may be
+                     	    detected at compile time and/or at runtime.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.4.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Potential ambiguity</span></h4>
+                     <p>A <strong>potential ambiguity</strong> is given,
+                        				if two role classes <code>R1</code> and <code>R2</code>
+                        				exist such that
+                        				
+                     </p>
+                     <ul>
+                        <li><code>R1</code> and <code>R2</code> are played by the
+                           					same base class <code>B</code>, and
+                        </li>
+                        <li><code>R1</code> and <code>R2</code> have a common
+                           					super role <code>R0</code>,
+                           					which is also bound to a base class <code>B0</code>, and
+                        </li>
+                        <li>neither role class <code>R1</code> nor
+                           					<code>R2</code> is a (indirect) sub-class of the other.
+                        </li>
+                     </ul>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					According to <a href="#s2.1.c" title="&sect;2.1.(c)&nbsp;Covariant refinement" class="sect">&sect;2.1.(c)</a>, if <code>B</code> is distinct from <code>B0</code> 
+                        					it has to be a sub-class of <code>B0</code>.
+                        				
+                     </div>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					In this case the compiler issues a warning, stating that the <code>B</code><em> may not be liftable,</em> because both role classes <code>R1</code> 
+                        					and <code>R2</code> are candidates and there is no reason to prefer one over the other.
+                        					<br /><strong>If no potential ambiguity is detected, lifting will always be unambiguous.</strong></div>
+                     <p>In the above situation, trying to lift an instance of type <code>B</code> to the role type 
+                        			<code>R0</code> is an <strong>illegal lifting request</strong>. If <code>R0</code> is bound 
+                        			to the same base class <code>B</code> as its sub-roles <code>R1</code> and <code>R2</code> are, 
+                        			role <code>R0</code> is <strong>unliftable</strong>, meaning that no instance of <code>R0</code> 
+                        			can ever by obtained by lifting.
+                        				
+                     </p>
+                     <h5 class="listing">Example code (Potential Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Definite ambiguity</span></h4>
+                     <p>A <strong>definite ambiguity</strong> is given if
+                        				
+                     </p>
+                     <ul>
+                        <li>the situation of potential ambiguity according to (a)
+                           				above is given and
+                        </li>
+                        <li>lifting is requested (either by method binding or explicitly
+                           				(<a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)) from the shared base class <code>B</code> to any role
+                           				class <code>R0</code> that is a common super role for <code>R1</code> and <code>R2</code>.
+                        </li>
+                     </ul>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					Definite ambiguity is a compile time error.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Definite Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useSuperRole(SubBase <b>as</b> SuperRole r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Actual ambiguity</span></h4>
+                     <p>At runtime <strong>actual ambiguity</strong> may occur if for the
+                        			<em>dynamic type</em> of a base to be lifted the conditions of (b)
+                        			above hold accordingly. Actual ambiguity is only possible in cases
+                        			reported by the compiler as potential ambiguity.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					An actual ambiguity is reported at runtime by throwing a
+                        					<code>org.objectteams.LiftingFailedException</code>.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Actual Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useSuperRole(MyBase <b>as</b> SuperRole r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>mt.useSuperRole(<b>new</b> SubBase());</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Mismatching role</span></h4>
+                     <p>In cases of potential ambiguity another runtime error may occur:
+                        			a <strong>mismatching role</strong> is encountered when a role is found
+                        			in the cache, which is not conform to the required type.
+                        			This happens, if the base object has previously been lifted
+                        			to a type that is incompatible with the currently requested type.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					This is reported by throwing a <code>org.objectteams.WrongRoleException</code>.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Mismatching Role):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useRoleA(MyBase <b>as</b> SubRoleA r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>  <b>public</b> <b>void</b> useRoleB(MyBase <b>as</b> SubRoleB r) {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>mt.useRoleA(b); <span class="comment">// creates a SubRoleA for b</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre>mt.useRoleB(b); <span class="comment">// finds the SubRoleA which is not compatible</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre>                <span class="comment">// to the expected type SubRoleB.</span></pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <p>From the second item of <a href="#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                           class="sect">&sect;2.3.4.(a)</a> follows, that for binding ambiguities different
+                        	role hierarchies are analyzed in isolation.
+                        	For this analysis only those role classes are considered that are bound to a
+                        	base class (directly using <code>playedBy</code> or by inheriting this relation
+                        from another role class).
+                        	I.e., two role classes that have no common bound super role will never cause
+                        any ambiguity.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.4">
+               <h2 class="sect">&sect;2.4&nbsp;Explicit role creation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Lifting is the normal technique by which role objects are created implicitly.
+                  This section defines under which conditions a role can also be created explicitly.
+                  		
+               </p>
+               <div class="sect depth3" id="s2.4.1">
+                  <h3 class="sect">&sect;2.4.1&nbsp;Role creation via a lifting constructor<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Lifting uses the default constructor for roles (see <a href="#s2.3.1" title="&sect;2.3.1&nbsp;Implicit role creation" class="sect">&sect;2.3.1</a>).
+                     This constructor can be invoked from client code, if the following rules are respected.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.4.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Team context</span></h4>
+                     <p>The lifting constructor can be used only within the enclosing team of
+                        		the role to be instantiated. Thus, qualified allocation expressions
+                        		(<code>someTeam.new SomeRole(..)</code>) may never use the lifting constructor.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Fresh base object</span></h4>
+                     <p>If the argument to a lifting constructor invocation is a <code>new</code>
+                        		expression, creating a fresh base object, the use of the lifting constructor
+                        		is safe. Otherwise the rules of (c) below apply.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate role runtime check</span></h4>
+                     <p>If it cannot be syntactically derived, that the argument to a lifting
+                        		constructor is a freshly created base object (b), a compile time warning will
+                        		signal that an additional runtime check is needed: It must be prevented that
+                        		a new role is created for a base object, which already has a role of the
+                        		required type in the given team. It is not possible to replace an existing
+                        		role by use of the lifting constructor. At runtime, any attempt to do so
+                        		will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
+                        		This exception can only occur in situations where the mentioned compile
+                        		time warning had been issued.
+                        		<br /><a href="s6.html#s6.1" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
+                        which can be used to manually prevent errors like a duplicate role.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.4.2">
+                  <h3 class="sect">&sect;2.4.2&nbsp;Role creation via a regular constructor<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Roles may also be created explicitly using a custom constructor with arbitrary signature
+                     other than the signature of the lifting constructor.<br />
+                     	Within role constructors, four kinds of self-calls are possible:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>base(..)</code></dt>
+                     <dd>A constructor of the corresponding base class (<a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="sect">&sect;A.5.3</a>(c)).
+                     </dd>
+                     <dt><code>this(..)</code></dt>
+                     <dd>Another constructor of the same class.</dd>
+                     <dt><code>super(..)</code></dt>
+                     <dd>A constructor of the super-class (normal <code>extends</code>), <span class="underline">unless</span> the super-class is bound to a different base class, in which case calling <code>super(..)</code> is not legal.
+                     </dd>
+                     <dt><code>tsuper(..)</code></dt>
+                     <dd>A constructor of the corresponding role of the super-team (<a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="sect">&sect;A.5.4</a>(e)). Also see the constraint in <a href="s1.html#s1.3.2.c"
+                           title="&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' "
+                           class="sect">&sect;1.3.2.(c)</a>.
+                     </dd>
+                  </dl>
+                  <div class="subsect depth4" id="s2.4.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Unbound roles</span></h4>
+                     <p>Each constructor of a role that is <strong>not bound</strong> to a base class must use
+                        		one of <code>this(..)</code>, <code>super(..)</code> or <code>tsuper(..)</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Bound roles</span></h4>
+                     <p>Each constructor of a <strong>bound role</strong> must directly or indirectly invoke either 
+                        		a <code>base(..)</code> constructor or a lifting constructor (see <a href="#s2.3.1" title="&sect;2.3.1&nbsp;Implicit role creation" class="sect">&sect;2.3.1</a>). 
+                        		Indirect calls to the base constructor or lifting constructor may use any of <code>this(..)</code>, <code>super(..)</code> 
+                        		or <code>tsuper(..)</code>, which simply delegates the obligation to the called constructor.
+                        		<br />
+                        		If a constructor referenced by <code>base(..)</code> is not visible according to the
+                        		regular rules of Java, it may still be called using <b>decapsulation</b> (see
+                        		also <a href="s3.html#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                           class="sect">&sect;3.4</a>, <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a>).
+                        <br />
+                        Note, that if the super or tsuper role is not bound, delegating the obligation to that unbound role will not work.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Super-call for bound roles</span></h4>
+                     <p>Instead of or prior to calling <code>base(..)</code> a constructor of a bound role explicitly or implicitly calls a super constructor.
+                        Which constructor is applicable depends on the super role and its <code>playedBy</code> clause.
+                        				
+                     </p>
+                     <ul>
+                        <li>If the super role is bound to the same base class as the current role is,
+                           			
+                           <ul>
+                              <li>not writing a super-call causes the lifting constructor of the super role to be invoked.</li>
+                              <li>explicitly calling a super constructor requires the super constructor to <i>either</i><ol>
+                                    <li>create a role instance using a base constructor call (directly or indirectly), <i>or</i></li>
+                                    <li>be a lifting constructor receiving a base instance, which the current  role must provide as the argument.</li>
+                                 </ol>
+                              </li>
+                           </ul>
+                        </li>
+                        <li>If the super role is bound but the current role refines the <code>playedBy</code> 
+                           					relationship (cf. <a href="#s2.1.c" title="&sect;2.1.(c)&nbsp;Covariant refinement" class="sect">&sect;2.1.(c)</a>),
+                           			
+                           <ul>
+                              <li>a lifting constructor must be called explicitly passing a base object as the argument.</li>
+                           </ul>
+                        </li>
+                        <li>If the role has an explicit or implicit super role which is unbound the constructor may optionally 
+                           					call a super constructor (using <code>super(..)</code> or <code>tsuper(..)</code>) prior to calling 
+                           					<code>base(..)</code>. Otherwise the default constructor is implicitly invoked.
+                           					
+                        </li>
+                     </ul>
+                     <p>When invoking a lifting constructor of a super role the base object can optionally be obtained by using a base constructor
+                        call as an expression:
+                        			
+                     </p>
+                     <div class="listing plain"><pre>super(base(<i>&lt;args&gt;</i>));</pre></div>
+                  </div>
+                  <p>The language system evaluates the base constructor by creating an
+                     instance of the appropriate base class using a constructor with matching
+                     signature. Also the internal links are setup that are needed for accessing the
+                     base object from the role and for lifting the base object to the new role
+                     in the future.
+                     			
+                  </p>
+                  <p>The syntax for base constructors follows the rule that role implementations
+                     never directly refer to any names of base classes or their features.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s2.4.3">
+                  <h3 class="sect">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Explicitly instantiating a role <code>R1</code> bound to a base <code>B</code> where smart lifting of <code>B</code> to <code>R1</code> would actually 
+                     	provide a subrole <code>R2</code> is dangerous: Instantiation enters the <code>R1</code> into the team's internal cache. If at any time later lifting 
+                     	this <code>B</code> to <code>R2</code> is requested, which is a legal request, the runtime system will answer by throwing a <code>org.objectteams.WrongRoleException</code> 
+                     	because it finds the <code>R1</code> instead of the required <code>R2</code>.
+                     	For this reason, in this specific situation the explicit instantiation <code>new R1(..)</code> will be flagged by a warning. 
+                     	The problem can be avoided by using <code>R2</code> in the instantiation expression.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (WrongRoleException):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> B { <b>void</b> bm() {} }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R1 <b>playedBy</b> B {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R2 <b>extends</b> R1 { <span class="comment">// inherits the binding to B</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    <b>void</b> rm() { <span class="comment">/* body omitted */</span> }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  <b>public</b> B getDecoratedB() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    <b>return</b> <em><b>new</b> R1</em>(<b>new</b> B()); <span class="comment">// <span class="error">compile-time warning!</span></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  <b>public</b> <b>void</b> requestLifting(B <b>as</b> R2 r) {}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>T t = <b>new</b> T();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>B b = t.getDecoratedB(); <span class="comment">// creates an R1 for b</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>t.requestLifting(b); <span class="comment">// =&gt; <span class="error"><code>org.objectteams.WrongRoleException!</code></span></span></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <ul>
+                        <li>A note on line 8: this line passes a fresh instance of <code>B</code> to the lifting constructor of <code>R1</code> 
+                           					(see <a href="#s2.4.1.b" title="&sect;2.4.1.(b)&nbsp;Fresh base object"
+                              class="sect">&sect;2.4.1.(b)</a>). In order to return this <code>B</code> instance lowering is implicitly used for the return statement.
+                        </li>
+                        <li>When line 15 is executed, a lifting of <code>b</code> to <code>R2</code> is requested but due to line 8 an <code>R1</code> is found in the internal cache.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.5">
+               <h2 class="sect">&sect;2.5&nbsp;Abstract Roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Overriding of role classes and dynamic binding of role types (<a href="s1.html#s1.3.1.e"
+                     title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                     class="sect">&sect;1.3.1.(e)</a>)
+                  	adds new cases to <strong>creation</strong> with respect to abstract classes.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Using abstract classes for creation</span></h4>
+                  <p>Abstract role classes can indeed be used for object creation.
+                     			The effect of such a statement is that the team must be
+                     			marked <code>abstract</code>. Only those sub-teams are concrete
+                     			that provide concrete versions for all role classes used in
+                     			creation expressions.<br />
+                     				This includes the case, where a
+                     			super-team has a concrete role class and creates
+                     			instances of this role class and only the sub-team changes
+                     			the status of this role class to abstract. Also here
+                     			the sub-team must be marked abstract, because it contains
+                     			an abstract role class that is used in creation expressions.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Interpretation:</h5>
+                     				Since the type in a role creation expression is late-bound relative to the enclosing team instance, abstract role classes
+                     can be seen 
+                     				as the hook in a <strong>template&amp;hook pattern</strong> that is raised from the method level to the class level: 
+                     				A super-team may already refer to the constructor of an abstract role class, 
+                     				only the sub-team will provide the concrete role class to fill the hook with the necessary implementation.
+                     			
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Relevant roles</span></h4>
+                  <p>A team must be marked <code>abstract</code> if one of its <strong>relevant roles</strong> is abstract.
+                     		<br />
+                     		A role is relevant in this sense if
+                     			
+                  </p>
+                  <ul>
+                     <li>the role class is public <em>or if</em></li>
+                     <li>an explicit <code>new</code> expression
+                        				would require to create instances of the role class, <em>or if</em></li>
+                     <li>any of the lifting methods of the enclosing team
+                        			    would require to create instances of the role class.<br />
+                        			    A role is irrelevant with respect to lifting
+                        			    if either of the following holds:
+                        			    	
+                        <ul>
+                           <li>It is not bound to a base class, neither directly nor
+                              					by an inherited <code>playedBy</code> clause.
+                           </li>
+                           <li>It has a sub-role without a <code>playedBy</code> clause.
+                           </li>
+                           <li>It is bound to an abstract base class, and for all concrete
+                              					sub-classes of the base class, a binding to a more specific role class exists.
+                           </li>
+                        </ul>
+                     </li>
+                  </ul>
+                  <p>If neither property, relevance nor irrelevance, can be shown for an abstract role,
+                     			a warning is given in case the enclosing team is not abstract.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.6">
+               <h2 class="sect">&sect;2.6&nbsp;Explicit base references<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>The role-base link is not meant to be accessed explicitly from programs,
+                  but it is fully under the control of compiler and runtime environment.
+                  Accessing features of a role's base object is done by
+                  <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout bindings (&sect;3)</a>.
+                  Yet, a keyword <code>base</code> exists, which can be used in the following
+                  contexts:
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.6.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Externalized roles of a base team</span></h4>
+                  <p>If the base class of a role <code>T1.R1</code> is again a team
+                     <code>T2</code>, roles of that team <code>T2</code> can be
+                     externalized (see <a href="s1.html#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles"
+                        class="sect">&sect;1.2.2</a>)
+                     using <code>base</code> as their type anchor. Given that
+                     <code>R2</code> is a role of <code>T2</code>, one could write:
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T1 {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R1 <em><b>playedBy</b> T2</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>protected</b> <em>R2&lt;@base&gt;</em> aRoleOfMyBase;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>This syntax is only legal within the body of the role <code>T1.R1</code> which is bound 
+                     		to the team <code>T2</code> containing role <code>R2</code>.
+                     A static type prefix can be used to disambiguate a base anchor, so the explicit variant 
+                     of the above type would be <code>R2&lt;@<strong>R1</strong>.base&gt;</code>.
+                     <br />
+                     It is not legal to use a type anchor containing <code>base</code> as an element in a path 
+                     of references like <code>&lt;@base.<span class="error">field</span>&gt;</code> 
+                     or <code>&lt;@<span class="error">field</span>.base&gt;</code>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Explicit base object creation</span></h4>
+                  <p>Within a role constructor (which is not the lifting constructor)
+                     the syntax <code>base(<em>arguments</em>)</code> causes an instance
+                     of the bound base class to be created and linked (see <a href="#s2.4.2"
+                        title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                        class="sect">&sect;2.4.2</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Base call in callin method</span></h4>
+                  <p>Within a <a href="s4.html#s4.2.d" title="&sect;4.2.(d)&nbsp;Callin methods"
+                        class="sect">callin method (&sect;4.2.(d))</a>
+                     an expression <code>base.m(<em>args</em>)</code> is used to invoke the
+                     originally called method (see <a href="s4.html#s4.3" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Base guard predicates</span></h4>
+                  <p><a href="s5.html#s5.4" title="&sect;5.4&nbsp;Guard predicates" class="sect">Guard predicates (&sect;5.4)</a> can
+                     be specified to act on the base side using the <code><strong>base when</strong></code> keywords. 
+                     Within such a base guard predicate <code>base</code> is interpreted as a special identifier
+                     holding a reference to the base object that is about to be lifted
+                     for the sake of a callin method interception (see <a href="s5.html#s5.4.2.a" title="&sect;5.4.2.(a)&nbsp;Base object reference"
+                        class="sect">&sect;5.4.2.(a)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Parameter mappings</span></h4>
+                  <p>An expression at the right-hand side of a parameter mapping 
+                     		(parameter in a callin binding (<a href="s4.html#s4.4" title="&sect;4.4&nbsp;Callin parameter mapping"
+                        class="sect">&sect;4.4</a>) or 
+                     		result in a callout binding  (<a href="s3.html#s3.2.c" title="&sect;3.2.(c)&nbsp;Result mapping"
+                        class="sect">&sect;3.2.(c)</a>) ) may use the keyword <code>base</code> 
+                     		to refer to the bound base instance. Such usage requires the role method bound in this method binding to be non-static.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Inhibition of modification</span></h4>
+                  <p>In all cases, the <code>base</code> reference is immutable,
+                     i.e., <code>base</code> can never appear as the left-hand-side of an assignment.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Decapsulation via base reference</span></h4>
+                  <p>In cases <a href="#s2.6.d" title="&sect;2.6.(d)&nbsp;Base guard predicates"
+                        class="sect">&sect;2.6.(d)</a> and <a href="#s2.6.e" title="&sect;2.6.(e)&nbsp;Parameter mappings" class="sect">&sect;2.6.(e)</a> above, members of the base
+                     			   object may be accessed that would not be visible under Java's visibility rules.
+                     			   Such references are treated as decapsulation in accordance with <a href="s3.html#s3.4.a"
+                        title="&sect;3.4.(a)&nbsp;Callout to inaccessible base method"
+                        class="sect">&sect;3.4.(a)</a> and <a href="s3.html#s3.5.e" title="&sect;3.5.(e)&nbsp;Access control"
+                        class="sect">&sect;3.5.(e)</a>.<br />
+                     			   Note that accessing a base field via <code>base</code> only gives reading access to this field.
+                     			
+                  </p>
+               </div>
+               <div class="newpage"></div>
+            </div>
+            <div class="sect depth2" id="s2.7">
+               <h2 class="sect">&sect;2.7&nbsp;Advanced structures<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>This section discusses how role containment and the playedBy relationship can be combined. 
+                  	It does not define new rules, but illustrates rules defined above. The central idea is that any class 
+                  	can have more than one of the three flavors <em>team, role, </em>and<em> base</em>.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.7.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Nesting</span></h4>
+                  <p>If a role (contained in a team) is also a team (marked with the <code>team</code> modifier) 
+                     		it is a <strong>nested team</strong>. The depth of nesting is not restricted.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.7.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Stacking</span></h4>
+                  <p>If the base class to which a role is bound using <code>playedBy</code> is a team, 
+                     		the role is said to be <strong>stacked</strong> on the base team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.7.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Layering</span></h4>
+                  <p>If roles of a team <code>Secondary</code> are played by roles of another team <code>Primary</code> 
+                     		(i.e., base classes are roles), the team <code>Secondary</code> defines a <strong>layer</strong> over the team <code>Primary</code>.
+                     		Such layering requires a final reference <code>anchor</code> from <code>Secondary</code> to an instance of <code>Primary</code>. 
+                     		All playedBy declarations within <code>Secondary</code> specify their base classes anchored to that final link <code>anchor</code>.
+                     			
+                  </p><img src="../images/Layering.png" alt="Team layering example" /><p>Due to the anchored base types, layered teams implicitly support the following guarantee: 
+                     			all base objects of roles of <code>Secondary</code> are contained within the team instance specified by the link <code>anchor</code>. 
+                     			If roles of <code>Secondary</code> contain any callin bindings to non-static base methods, these will be triggered only 
+                     			when a base method is invoked on a base instance contained in the team specified by <code>anchor</code>.
+                     			<br />
+                     In accordance with <a href="#s2.6.a" title="&sect;2.6.(a)&nbsp;Externalized roles of a base team"
+                        class="sect">&sect;2.6.(a)</a> the anchor in such anchored playedBy declarations 
+                     		could also be the pseudo identifier <code>base</code>, provided that <code>Secondary</code> is a nested team, 
+                     		which has a playedBy binding to <code>Primary</code> as its base class.
+                     This situation is part of the second example <a href="#s2.7.d" title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                        class="sect">below (&sect;2.7.(d))</a> (see <code>T1 playedBy TB1</code>).
+                     			
+                  </p>
+               </div>
+               <div class="newpage"></div>
+               <div class="subsect depth3" id="s2.7.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Implicit playedBy specialization</span></h4>
+                  <p>According to <a href="#s2.1.d" title="&sect;2.1.(d)&nbsp;No-variance" class="sect">&sect;2.1.(d)</a> an implicit sub-role may <em>implicitly</em> specialize an existing <code>playedBy</code> relation.
+                     		This requires the base class to be specified relative to some implicit (<code>OuterTeam.this</code>) or explicit (<code>OuterTeam.base</code>) team anchor. 
+                     		Specializing that team anchor automatically specializes the playedBy declaration, too.
+                     		This rule never requires any action from a programmer but only explains the interpretation of a playedBy declaration in
+                     complex situations.
+                     			
+                  </p>
+                  <h5>Two advanced examples demonstrating the above are:</h5>
+                  <table border="0">
+                     <colgroup span="1">
+                        <col align="left" span="1" />
+                        <col align="left" span="1" />
+                     </colgroup>
+                     <tr>
+                        <td rowspan="1" colspan="1">
+                           <ul>
+                              <li>If a role <code>TOuter1.T.R</code> of a <strong>nested team </strong><code>TOuter1.T</code> is played by 
+                                 					another role of the outer enclosing team <code>TOuter1.B</code>, subclassing the outer team <code>TOuter1</code> to <code>TOuter2</code> 
+                                 					will produce a new role <code>TOuter2.T.R</code> which is automatically played by <code>TOuter2.B</code>, 
+                                 					an implicit sub class of the original base class <code>TOuter1.B</code>.
+                              </li>
+                           </ul>
+                        </td>
+                        <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby.png"
+                                alt="Implicitly overriding playedBy" /></td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">
+                           <ul>
+                              <li>Consider the case where a <strong>nested </strong><code>T1</code> as a role of <code>TOuter</code> is <strong>stacked</strong> 
+                                 		  				on a base team <code>TB1</code>. Also, <code>T1</code> is a <strong>layered team</strong> over <code>TB1</code> 
+                                 		  				because its role <code>R</code> adapts role <code>TB1.B</code>.
+                                 		  				<br />
+                                 		  				In this situation the playedBy relation of role <code>TOuter.T1.R</code> is given by a base-anchored type <code>B&lt;@T1.base&gt;</code>. 
+                                 		  				If furthermore <code>TOuter.T1</code> is subclassed to <code>TOuter.T2</code> which covariantly refines the inherited 
+                                 		  				playedBy declaration to <code>TB2</code>, then <code>TOuter.T2.R</code> will automatically refine the inherited playedBy relation 
+                                 		  				to <code>TB2.B</code> to follow the new interpretation of the <code>base</code> anchor.
+                              </li>
+                           </ul>
+                        </td>
+                        <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby_base.png"
+                                alt="Implicitly overriding playedBy base" /></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.html" rel="prev">&lt;&lt;&nbsp;&sect;1&nbsp;Teams and Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.html" rel="next">&sect;3&nbsp;Callout Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s3.html
new file mode 100644
index 0000000..6b857c4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s3.html
@@ -0,0 +1,973 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.html" rel="prev">&lt;&lt;&nbsp;&sect;2&nbsp;Role Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.html" rel="next">&sect;4&nbsp;Callin Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s3">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;3&nbsp;Callout Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s3.html">&sect;3&nbsp;Callout Binding</a></li>
+                  <li><a href="#s3.1">&sect;3.1&nbsp;Callout method binding</a></li>
+                  <li><a href="#s3.2">&sect;3.2&nbsp;Callout parameter mapping</a></li>
+                  <li><a href="#s3.3">&sect;3.3&nbsp;Lifting and lowering</a></li>
+                  <li><a href="#s3.4">&sect;3.4&nbsp;Overriding access restrictions</a></li>
+                  <li><a href="#s3.5">&sect;3.5&nbsp;Callout to field</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notion of callout binding</h3>
+               <div class="line"></div>
+               <div class="term">callout binding</div>
+               <div class="termdesc">A callout binding declares that a method call to a role
+                  	    object may be <strong>forwarded</strong> to a base method of the associated
+                  	    base object <em>(the role object "calls out" to the base)</em>.
+               </div>
+               <div class="line"></div>
+               <div class="term">declarative completeness</div>
+               <div class="termdesc"> Even if a role class does not implement all needed methods,
+                  	    but forwards some to its base, also these methods must be declared
+                  	    within the role.
+                  	    Secondly, no forwarding occurs, unless explicitly declared by a callout binding.
+               </div>
+               <div class="line"></div>
+               <div class="term">expected/provided</div>
+               <div class="termdesc"> A callout binding binds an <strong>expected</strong> method of the role
+                  	    class (needed but not implemented here) to a <strong>provided</strong>
+                  	    method of the base class.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s3.1">
+               <h2 class="sect">&sect;3.1&nbsp;Callout method binding<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.2</a></div>
+               <p>A role class may acquire the implementation for any of its
+                  	(expected) methods by declaring a <strong>callout</strong> binding.
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+                  <p>A callout binding requires the enclosing class to be a role class
+                     	    bound to a base class according to <a href="s2.html#s2.1" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Definition</span></h4>
+                  <p>A callout binding maps an abstract role method ("expected method")
+                     	    to a concrete base method ("provided method").
+                     	    It may appear within the role class at any place where feature
+                     	    declarations are allowed. It is denoted by
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>expected_method_designator</i> <b>-&gt;</b> <i>provided_method_designator;</i></pre></div>
+                  <p>The effect is that any call to the role method will be forwarded to the
+                     	    associated base object using the provided base method.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callout):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>abstract</b> String getIdentification();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <span class="comment">// callout binding see below...</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Kinds of method designators</span></h4>
+                  <p>A method designator may either be a method name
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">4</td>
+                           <td><pre>getIdentification <em>-&gt;</em> getName;</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p><strong>or</strong>
+                     	    a complete method signature including parameter declarations and
+                     	    return type declaration, but excluding any modifiers and declared exceptions.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">4</td>
+                           <td><pre>String getIdentification() <em>-&gt;</em> String getName();</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li> Line 4 declares a callout binding for the role method <code>getIdentification()</code>, 
+                           							 providing an implementation for the abstract method defined in line 3.
+                        </li>
+                        <li> In combination with the role binding in line 2 this has the following effect:</li>
+                        <li> Any call to <code>Employee.getIdentification</code> 
+                           							 is forwarded to the method <code>Person.getName</code>.
+                        </li>
+                     </ul>
+                  </div>
+                  <p>Both sides of a callout binding must use the same kind of
+                     	    designators, i.e., designators with and without signature may not be mixed.
+                     	    <br />
+                     	    Each method designator must uniquely select one method.
+                     If a method designator contains a signature this signature must match exactly with the signature 
+                     of an existing method, i.e., no implicit conversions are applied for this matching.
+                     	    If overloading is involved, signatures <em>must</em> be used to disambiguate.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Inheritance of role method declarations</span></h4>
+                  <p>The role method being bound by a callout may be declared in the same
+                     	    class as the binding or it may be inherited from a super class or
+                     	    super interface.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Callout override</span></h4>
+                  <p>If an inherited role method is concrete, callout binding regarding this
+                     	    method must use the token "<code>=&gt;</code>" instead of "<code>-&gt;</code>"
+                     	    in order to declare that this binding overrides an existing implementation.
+                     	    <br />
+                     				
+                     		Using the "<code>=&gt;</code>" operator for an abstract method is an error.
+                     		<br />
+                     	    It is also an error (and not useful anyway) to callout-bind a method that is
+                     	    implemented in the same class as the binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Inheritance of callout bindings</span></h4>
+                  <p> Callout bindings are inherited along explicit and implicit inheritance.
+                     	    Inherited callout bindings can be overridden using "<code>=&gt;</code>".
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Duplicate bindings</span></h4>
+                  <p>It is an error if a role class has multiple callout bindings for the
+                     	    same role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Declared exceptions</span></h4>
+                  <p>It is an error if a base method to be bound by <strong>callout</strong>
+                     	    declares in its <code>throws</code> clause any exceptions that
+                     	    are not declared by the corresponding role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.i">
+                  <h4 class="subsect">(i)&nbsp;<span class="title">Shorthand definition</span></h4>
+                  <p> A callout binding whose method designators specify
+                     full method signatures does not require an existing role method.
+                     If no role method is found matching the expected method of
+                     such a callout binding, a new method is implicitly generated.
+                     The new method is static iff the bound base method is static,
+                     and it declares the same exceptions as the bound base method.
+                     			
+                  </p>
+                  <p>
+                     		A shorthand callout may optionally declare a <strong>visibility modifier</strong>,
+                     		otherwise the generated method inherits the visibility modifier of the bound base method.
+                     		No further modifiers are set.
+                     		If a callout overrides an inherited method or callout, 
+                     		it must not reduce the visibility of the inherited method/callout.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.j">
+                  <h4 class="subsect">(j)&nbsp;<span class="title">Inferred callout</span></h4>
+                  <p> If a non-abstract role class inherits an abstract method the compiler 
+                     				tries to infer a callout binding for implementing the abstract method.
+                     				Similarly, if a self-call in a role class cannot be resolved, the compiler
+                     				tries to infer a callout to resolve the self-call.<br />
+                     Inference searches for a method in the bound base class such that
+                     
+                  </p>
+                  <ol>
+                     <li>both methods have the same name</li>
+                     <li>both methods have the same number of arguments</li>
+                     <li>each argument of the abstract role method is compatible to the 
+                        corresponding argument of the base method directly, or using 
+                        boxing/unboxing or lowering.
+                     </li>
+                  </ol>
+                  <p>
+                     Callouts inferred from an interface have <code>public</code> visibility,
+                     callouts inferred from a self-call have <code>private</code> visibility. 
+                     
+                  </p>
+                  <p>
+                     Per default inferred callout bindings are disabled, i.e., a compiler 
+                     must report these as an error. However, a compiler should allow to 
+                     configure reporting to produce a warning only (which can be suppressed 
+                     using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                     or to completely ignore the diagnostic.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.k">
+                  <h4 class="subsect">(k)&nbsp;<span class="title">Callout to generic method</span></h4>
+                  <p>When referring to a generic base method</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>&lt;T&gt; T bm(T a)</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>a callout binding may either propagate the method's genericity as in</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">2</td>
+                           <td><pre>&lt;T&gt; T rm(T a) <b>-&gt;</b> T bm(T a);</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>or it may supply a valid substitution for the type parameter as in</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">2</td>
+                           <td><pre>String rm(String a) <b>-&gt;</b> String bm(String a);</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <p>A callout binding either attaches an implementation to a previously declared method 
+                  		or adds (<a href="#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition" class="sect">&sect;3.1.(i)</a> above) a forwarding method to a role class.
+                  Apart from this implementation, callout-bound methods do not differ from regular methods.
+                  		
+               </p>
+               <p>When we say, a callout binding defines <strong>forwarding</strong> this means that
+                  		control is passed to the base object. In contrast, by a <strong>delegation</strong>
+                  		semantics control <em>would</em> remain at the role object, such that self-calls
+                  		would again be dispatched starting at the role. Callout bindings on
+                  		their own do not support delegation. However, in conjunction with method
+                  		overriding by means of callin bindings (see <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>)
+                  		the effect of delegation can easily be achieved.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s3.2">
+               <h2 class="sect">&sect;3.2&nbsp;Callout parameter mapping<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.4.1" title="&sect;A.4.1&nbsp;CalloutParameterMappings"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.4.1</a></div>
+               <div class="subsect depth3" id="s3.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">with clause</span></h4>
+                  <p> If the method designators in a callout binding are signatures
+                     	    (not just method names), parameters and return value may
+                     	    be mapped by a <code>with{...}</code> sub-clause. Parameter mappings may only occur if the enclosing role is a class, not an interface.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Mapping one parameter</span></h4>
+                  <p> For each parameter of the provided base method, exactly one parameter
+                     	    mapping defines, which value will actually be passed to
+                     	    the base method. Callout parameter mappings have this form:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>expression</i> <b>-&gt;</b> <i>base_method_parameter_name</i></pre></div>
+               </div>
+               <div class="subsect depth3" id="s3.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result mapping</span></h4>
+                  <p>The return value of a callout method may be provided by a result mapping:
+                     			
+                  </p>
+                  <div class="listing plain"><pre>result <b>&lt;-</b> <i>expression</i></pre></div>
+                  <p>The right hand side expression of a result mapping may use the special identifier 
+                     		<code>result</code> to refer to the value returned by the base method.
+                     		<br />
+                     		In a method binding with parameter mappings, it is an error to use 
+                     		<code>result</code> as the name of a regular method argument.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callout Parameter Mapping):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>Integer absoluteValue(Integer integer) <b>-&gt;</b> <b>int</b> abs(<b>int</b> i) <em><b>with</b> {</em></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  integer.intValue() <b>-&gt;</b> i,</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <em>result</em> <b>&lt;-</b> <b>new</b> Integer(<em>result</em>)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><em>}</em></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Visible names</span></h4>
+                  <p>Each identifier that appears within the expressions of a parameter
+                     	    mapping must be either:
+                     			
+                  </p>
+                  <ul>
+                     <li>a feature visible in the scope of the role instance.</li>
+                     <li>a parameter of the role method (for parameter mappings).</li>
+                     <li>the special name <code>result</code> (for result mappings).
+                     </li>
+                     <li>in a result mapping also the special name <code>base</code> can be used 
+                        					    in order to refer to the bound base instance (provided the method being 
+                        					    bound is not static).
+                     </li>
+                  </ul>
+                  <p>The names of base method arguments (i.e., names after mapping) are only
+                     	  legal in the position given in <a href="#s3.2.b" title="&sect;3.2.(b)&nbsp;Mapping one parameter"
+                        class="sect">&sect;3.2.(b)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Implicit parameter mappings</span></h4>
+                  <p>If parameter mappings should be omitted the following conditions must hold:
+                     			
+                  </p>
+                  <ol>
+                     <li>each method parameter of the role method must conform to the
+                        			corresponding parameter of the base method,  <em>and</em></li>
+                     <li>the result type of the base method must conform to the result type
+                        			of the role method.
+                     </li>
+                  </ol>
+                  <p>Here conformance includes translation polymorphism (cf. <a href="#s3.3.d" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>).
+                     		<br />
+                     	    Parameter correspondence without parameter mapping is determined by declaration order not by names.
+                     	    <br />
+                     	    Two adjustments can, however, be performed implicitly:
+                     			
+                  </p>
+                  <ul>
+                     <li>If the role method has more parameters than the base method,
+                        		unused trailing parameters may be silently ignored.
+                     </li>
+                     <li>If the role method returns <code>void</code>, any result from
+                        		the base method may be silently ignored.
+                     </li>
+                  </ul>
+               </div>
+               <h5 class="listing">Example code (Callout with Parameter Mapping):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>abstract</b> <b>class</b> Role1 {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>abstract</b> <b>void</b> payEuro(float euro);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>abstract</b> float earnEuro();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>void</b> idle(<b>int</b> seconds) { <span class="comment">/* do nothing */</span> };</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  Role1 boss, worker = <span class="comment">// initialization omitted</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  <b>public</b> <b>void</b> transaction () {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    boss.payEuro(worker.earnEuro());</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>    boss.idle(123);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre><b>public</b> <b>class</b> Staff { <span class="comment">// a base class </span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>  <b>public</b> <b>void</b> payDM (float dm) { … };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>  <b>public</b> float earnDM () { … };</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>  <b>public</b> <b>int</b> doze() { … };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>  <span class="comment">// other methods omitted</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>  <b>public</b> <b>class</b> Role1 <b>playedBy</b> Staff {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>    <b>void</b> payEuro(float euro) <b>-&gt;</b> <b>void</b> payDM(float dm) <b>with</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>      euro * 1.95583f <b>-&gt;</b> dm</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">24</td>
+                        <td><pre>    float earnEuro() <b>-&gt;</b> float earnDM () <b>with</b> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">25</td>
+                        <td><pre>      result <b>&lt;-</b> result / 1.95583f</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">26</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">27</td>
+                        <td><pre>    idle <b>=&gt;</b> doze; <span class="comment">// override existing implementation of idle()</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">28</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">29</td>
+                        <td><pre>  <b>void</b> doit() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">30</td>
+                        <td><pre>    transaction();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">31</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">32</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Class <code>MyTeamA</code> is declaratively complete and can be
+                        	type checked because it only uses methods that are visible or declared within this
+                        	context. <code>MyTeamA.Role1</code> can, however, not be instantiated, because it is
+                        	abstract.
+                     </li>
+                     <li>Line 30 has the normal effect of invoking <code>transaction</code>.
+                     </li>
+                     <li>When executing <code>transaction</code>, the call of <code>worker.earnEuro()</code>
+                        	is forwarded to the corresponding base object using method <code>earnDM()</code>
+                        	(binding declaration in line 24).
+                        	The result is converted by "<code>result / 1.95583f</code>" (line 25).
+                     </li>
+                     <li>Within the same execution of <code>transaction</code>, the call of
+                        	<code>boss.payEuro()</code>
+                        	is forwarded to the corresponding base object using method <code>payDM()</code>
+                        	(binding declaration in line 21).
+                        	The parameter <code>euro</code> is converted by "<code>euro * 1.95583f</code>"
+                        	(line 22).
+                     </li>
+                     <li>Method <code>idle</code> is forwarded to <code>doze</code> without any
+                        	parameter mapping. This requires <code>doze</code> to have a signature
+                        	that is conformable to the signature of <code>idle</code>.
+                        	In this case a role parameter and a base result are ignored.<br />
+                        	Using the <code>=&gt;</code> operator, this binding overrides the existing
+                        	implementation of <code>idle</code>.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.3">
+               <h2 class="sect">&sect;3.3&nbsp;Lifting and lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p> (For basic definitions see <a href="s2.html#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and <a href="s2.html#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+                  <p>Invoking a base method due to a callout binding first
+                     	    <strong>lowers</strong> the role object in order to obtain the effective call target.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+                  <p>Passing a role object as parameter to a callout method implicitly <strong>lowers</strong>
+                     	    this parameter, if the base method declares a corresponding base type parameter.
+                     	    <br />
+                     Lifting of callout parameters is not possible.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+                  <p> When returning a base object from a callout method where the role
+                     	    method declares the result to be of a role class,
+                     	    this object is implicitly <strong>lifted</strong> to the appropriate role.
+                     	    <br />
+                     Lowering the result of a callout binding is not possible.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+                  <p>A parameter mapping (implicit by parameter position or explicit
+                     		by a <code>with</code> clause) is <strong>well typed</strong> if
+                     		the left hand side conforms to the right hand side, either by
+                     			
+                  </p>
+                  <ul>
+                     <li>type equality</li>
+                     <li>implicit primitive type conversion</li>
+                     <li>subtype polymorphism</li>
+                     <li>translation polymorphism, here: <em>lowering</em>, 
+                     </li>
+                     <li><em>or</em> by a combination of the above.
+                     </li>
+                  </ul>
+                  <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                     		is well typed, if the value at the right hand side conforms to the
+                     		left hand side according to the rules given above, except that
+                     		translation polymorphism here applies <em>lifting</em> instead of
+                     		lowering.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+                  <p>For arrays of roles as parameters <a href="s2.html#s2.2.e" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                        class="sect">&sect;2.2.(e)</a> applies accordingly.
+                     		For arrays as a return value <a href="s2.html#s2.3.d" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                        class="sect">&sect;2.3.(d)</a> applies.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.4">
+               <h2 class="sect">&sect;3.4&nbsp;Overriding access restrictions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p>In contrast to normal access restrictions, method bindings
+                  may refer to hidden base methods.
+                  This concept is the inverse of encapsulation, hence it is called
+                  <strong>decapsulation</strong>.
+                  <br />
+                  Decapsulation may occur in these positions:
+                  		
+               </p>
+               <ul>
+                  <li><code>playedBy</code> declaration (see <a href="s2.html#s2.1.2.c"
+                        title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>)
+                  </li>
+                  <li>base constructor call (see <a href="s2.html#s2.4.2.b" title="&sect;2.4.2.(b)&nbsp;Bound roles"
+                        class="sect">&sect;2.4.2.(b)</a>).
+                  </li>
+                  <li>callout bindings (see next)</li>
+                  <li>callout to field (see <a href="#s3.5.e" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>)
+                  </li>
+                  <li>base call within a callin method (see <a href="s4.html#s4.6" title="&sect;4.6&nbsp;Overriding access restrictions"
+                        class="sect">&sect;4.6</a>)
+                  </li>
+               </ul>
+               <div class="subsect depth3" id="s3.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Callout to inaccessible base method</span></h4>
+                  <p>By means of <strong>callout</strong> bindings it is possible to access
+                     methods of a base class regardless of their access modifiers.
+                     	  Method bindings are the only place in a program which may mention otherwise
+                     inaccessible methods.
+                     	  Access to the callout method at the role side is controlled by regular mechanisms,
+                     	  based on the declaration of the role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Sealing against decapsulation</span></h4>
+                  <p>A base package may be "sealed" which re-establishes the standard Java visibility rules.
+                     		<br />
+                     		Sealing is achieved by the corresponding capability of Jar files.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Warning levels</span></h4>
+                  <p>A compiler should signal any occurrence of decapsulation. 
+                     		If a compiler supports to configure warnings this may be used to let the user choose to 
+                     		(a) ignore base class decapsulation, (b) treat it as a warning or even 
+                     		(c) treat it as an error (cf. <a href="s2.html#s2.1.2.c"
+                        title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>).
+                     		<br />
+                     		Optionally, a batch compiler may support three levels of verbosity with respect to decapsulation:
+                     			
+                  </p>
+                  <table border="1">
+                     <tr>
+                        <td rowspan="1" colspan="1"><tt>-nodecapsulation</tt></td>
+                        <td rowspan="1" colspan="1">No warnings.</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1"><em>default</em></td>
+                        <td rowspan="1" colspan="1">Warn only if/that access restrictions are overridden.</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1"><tt>-decapsulation</tt></td>
+                        <td rowspan="1" colspan="1">Detailed messages containing the binding and the hidden base method.</td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="subsect depth3" id="s3.4.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Private methods from super classes</span></h4>
+                  <p>If a callout binding shall bind to a private base method, that method
+                     must be defined in the exact base class to which the current role
+                     class is bound using <code>playedBy</code>. I.e., for private methods
+                     <a href="#s3.1.d"
+                        title="&sect;3.1.(d)&nbsp;Inheritance of role method declarations"
+                        class="sect">&sect;3.1.(d)</a> does not hold.
+                     <br />
+                     The same holds for private base fields (see below).
+                     <br />
+                     If a private base feature must indeed be callout-bound, a role class
+                     must be defined that is played by the exact base class defining the
+                     private feature. Another role bound to a sub-base-class can then
+                     be defined as a sub class of the first role. It will inherit the
+                     callout binding and through this it can access the desired feature.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <em><b>private</b> <b>int</b> secret;</em></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase  { <span class="comment">/* details omitted */</span> }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>protected</b> <b>class</b> SuperRole <b>playedBy</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="green"><strong>OK</strong></span></span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  <b>protected</b> <b>class</b> SubRole <b>extends</b> SuperRole <b>playedBy</b> SubBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="error"><strong>illegal!</strong></span></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.5">
+               <h2 class="sect">&sect;3.5&nbsp;Callout to field<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p>Also fields of a base class can be made accessible using a callout binding.
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+                  <p>Using one of the callout modifiers <code>get</code> or <code>set</code> a role method
+                     	    can be bound to a field of the role's base class:
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>getValue <b>-&gt;</b> <em>get</em> value;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>setValue <b>-&gt;</b> <em>set</em> value;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre><b>int</b> getValue() <b>-&gt;</b> <em>get</em> <b>int</b> value;</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>where <code>getValue</code>, <code>setValue</code> are abstract role methods of
+                     	    appropriate signatures and <code>value</code> is a field of the bound base class.
+                     	    <br />
+                     	    A longer syntax is available, too (see line 3 above), which uses complete signatures.
+                     	    For the left hand side <a href="#s3.1.c" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                        class="sect">&sect;3.1.(c)</a> applies, for the
+                     	    right hand side, this longer version prepends the field type to the field name.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Compatibility</span></h4>
+                  <p>A role method bound with the modifier <code>get</code>
+                     should have no arguments
+                     (it <em>may</em> have arbitrary arguments, which are silently ignored)
+                     and should have a return type to which the base field is compatible.
+                     A role method returning void will ignore the given value and thus has
+                     no effect at all, which will be signaled by a compiler warning.
+                     <br />
+                     A role method bound with the modifier <code>set</code> must have a first argument
+                     that is compatible to the base field's type (additional arguments - if present -
+                     are silently ignored) and must not declare a return type.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Value mapping</span></h4>
+                  <p>Values can be mapped similar to parameter mappings in pure method bindings 
+                     		(<a href="#s3.2" title="&sect;3.2&nbsp;Callout parameter mapping" class="sect">&sect;3.2</a>). Such mappings can be used to establish compatibility as required above.
+                     		<br />
+                     		In both <code>get</code> and <code>set</code> bindings, the base side value is denoted 
+                     		by the field's name (lines 2 and 4 below).
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>Integer getValue()       -&gt;	<em>get</em> <b>int</b> val</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <em>with</em> { result           &lt;-	<b>new</b> Integer(val) }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre><b>void</b> setValue(Integer i) -&gt;	<em>set</em> <b>int</b> val</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <em>with</em> { i.intValue()     -&gt;	val }</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Effect</span></h4>
+                  <p>Callout-binding a role method to a base field generates an implementation for 
+                     		this role method, by which it acts as a getter or setter for the given 
+                     		field of the associated base object.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Access control</span></h4>
+                  <p>For accessing an otherwise invisible field, the rules for 
+                     		<a href="#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">decapsulation (&sect;3.4)</a> apply accordingly.
+                     		<br />
+                     		Recall, that according to 
+                     		<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                        class="ext">JLS &sect;8.3</a> 
+                     		fields may be hidden in sub-classes of a given base class. Therefore, it is relevant to know that a callout to 
+                     		a field will always access the field that is visible in the exact base 
+                     		class of the role class defining the callout. This is especially relevant 
+                     		for accessing private fields.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Shorthand definition</span></h4>
+                  <p>Just as in <a href="#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition" class="sect">&sect;3.1.(i)</a> a shorthand definition allows to introduce 
+                     		a callout field access method without prior abstract declaration. 
+                     		This requires the callout field binding to specify types as in line 3 of <a href="#s3.5.a" title="&sect;3.5.(a)&nbsp;Syntax" class="sect">&sect;3.5.(a)</a> above.
+                     		The generated access method is static iff the bound base field is static.
+                     			
+                  </p>
+                  <p>
+                     		A shorthand callout to field may optionally declare a <strong>visibility modifier</strong>,
+                     		otherwise the generated method inherits the visibility modifier of the bound base field.
+                     		No further modifiers are set.
+                     		If a callout to field overrides an inherited method or callout, 
+                     		it must not reduce the visibility of the inherited method/callout.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Callout override</span></h4>
+                  <p>Similar to method callouts a callout to field may override an existing role 
+                     		method if and only if the token <code>=&gt;</code> is used instead of <code>-&gt;</code> 
+                     		(see <a href="#s3.1.e" title="&sect;3.1.(e)&nbsp;Callout override" class="sect">&sect;3.1.(e)</a> and <a href="#s3.1.f" title="&sect;3.1.(f)&nbsp;Inheritance of callout bindings"
+                        class="sect">&sect;3.1.(f)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Inferred callout</span></h4>
+                  <p> If a statement or expression within the body of a bound role class 
+                     				uses a simple name or a name qualified by <code>this</code>
+                     			    which can not be resolved using normal rules, 
+                     			    the compiler may infer to use a callout to field instead,
+                     			    given that a field of the required name can be found in the role's declared baseclass.
+                     
+                  </p>
+                  <p> If a callout to field has explicitly been declared it is used for the otherwise
+                     	unresolved name, if and only if:
+                     
+                  </p>
+                  <ul>
+                     <li>the callout declares a role method name the is constructed from the token "set" for 
+                        			a setter or "get" for a getter plus the field name with capital first letter,
+                     </li>
+                     <li>the base field referenced by the callout has exactly the required name, and</li>
+                     <li>the callout kind (set/get) matches the application of the unresolved name as either
+                        			the left-hand side of an assignment (set) or as an expression (get).
+                     </li>
+                  </ul>
+                  <p>
+                     	If a matching callout to field is not found, the compiler generates one automatically,
+                     	which has <code>private</code> visibility.
+                     
+                  </p>
+                  <p>
+                     	If a callout to field has been inferred it is an error to directly invoke the
+                     	implicitly generated callout accessor that is formed according to the above rules.
+                     
+                  </p>
+                  <p>
+                     Per default inferred callout bindings are disabled, i.e., a compiler 
+                     must report these as an error. However, a compiler should allow to 
+                     configure reporting to produce a warning only (which can be suppressed 
+                     using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                     or to completely ignore the diagnostic. See also <a href="#s3.1.j" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a>.
+                     
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.html" rel="prev">&lt;&lt;&nbsp;&sect;2&nbsp;Role Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.html" rel="next">&sect;4&nbsp;Callin Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s4.html
new file mode 100644
index 0000000..ce1406a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s4.html
@@ -0,0 +1,1385 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.html" rel="prev">&lt;&lt;&nbsp;&sect;3&nbsp;Callout Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.html" rel="next">&sect;5&nbsp;Team Activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s4">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;4&nbsp;Callin Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s4.html">&sect;4&nbsp;Callin Binding</a></li>
+                  <li><a href="#s4.1">&sect;4.1&nbsp;Callin method binding</a></li>
+                  <li><a href="#s4.2">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></li>
+                  <li><a href="#s4.3">&sect;4.3&nbsp;Base calls</a></li>
+                  <li><a href="#s4.4">&sect;4.4&nbsp;Callin parameter mapping</a></li>
+                  <li><a href="#s4.5">&sect;4.5&nbsp;Lifting and lowering</a></li>
+                  <li><a href="#s4.6">&sect;4.6&nbsp;Overriding access restrictions</a></li>
+                  <li><a href="#s4.7">&sect;4.7&nbsp;Callin binding with static methods</a></li>
+                  <li><a href="#s4.8">&sect;4.8&nbsp;Callin precedence</a></li>
+                  <li><a href="#s4.9">&sect;4.9&nbsp;Callin inheritance</a></li>
+                  <li><a href="#s4.10">&sect;4.10&nbsp;Generic callin bindings</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notion of callin binding</h3>
+               <p>
+                  			Callin bindings realize a forwarding in the direction opposite to callout bindings 
+                  			(see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                  			Both terms are chosen from the perspective of a role, which controls its communication with 
+                  			an associated base object.
+                  			Technically, callin bindings are equivalent to weaving additional code (triggers) 
+                  			into existing base methods.
+                  		
+               </p>
+               <div class="line"></div>
+               <div class="term">Callin</div>
+               <div class="termdesc">Methods of a base class may be <strong>intercepted</strong> by a callin binding
+                  	    (<em>the base method "calls into" the role</em>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Before/after/replace</div>
+               <div class="termdesc">The modifiers <strong>before, after, replace</strong> control the composition
+                  	    of original method and callin method.
+               </div>
+               <div class="line"></div>
+               <div class="term">Activation</div>
+               <div class="termdesc">Callin bindings may be active or inactive according to
+                  	    <a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s4.1">
+               <h2 class="sect">&sect;4.1&nbsp;Callin method binding<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.3</a></div>
+               <div class="subsect depth3" id="s4.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Method call interception</span></h4>
+                  <p>A role method may intercept calls to a base method by
+                     	    a callin binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+                  <p>A callin binding requires the enclosing class to be a role class
+                     	    bound to a base class according to <a href="s2.html#s2.1" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>. 
+                     	    An <em>unliftable</em> role (see <a href="s2.html#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                        class="sect">&sect;2.3.4.(a)</a>) cannot define 
+                     	    callin bindings. In that case callin bindings can only be introduced in sub-roles 
+                     	    which (by an appropriately refined <code>playedBy</code> clause) disambiguate the lifting translation.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Callin declaration</span></h4>
+                  <p>A callin binding composes an existing role method with a
+                     	    given base method.
+                     	    It may appear within the role class at any place where feature
+                     	    declarations are allowed. It is denoted by
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>role_method_designator</i> <b>&lt;-</b> <i>callin_modifier </i><i>base_method_designator;</i></pre></div>
+                  <p>Just like with callout bindings, method designators may
+                     	    or may not contain parameters lists and return type but no modifiers;
+                     also, each method designator must exactly and uniquely select one method 
+                     (cf. <a href="s3.html#s3.1.c"
+                        title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                        class="sect">&sect;3.1.(c)</a>).
+                     <br />
+                     	    For <em>callin modifiers</em> see <a href="#s4.2"
+                        title="&sect;4.2&nbsp;Callin modifiers (before, after, replace)"
+                        class="sect">below (&sect;4.2)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+                  <p>Base method designators may furthermore enumerate a
+                     	    list of methods. If multiple base methods are bound in one
+                     	    callin declaration generally all signatures in this binding must be conform.
+                     		<br />
+                     	    However, <em>extraneous parameters</em> from base methods may be ignored
+                     	    at the role.
+                     	    <br />
+                     	    For <em>result types</em> different rules exist, depending on the
+                     	    applied callin modifier (see next).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Named callin bindin</span></h4>
+                  <p>Any callin binding may be labeled with a name. The name of a callin binding is used 
+                     			for declaring <em>precedence</em> (<a href="#s4.8" title="&sect;4.8&nbsp;Callin precedence" class="sect">&sect;4.8</a>). 
+                     			A named callin binding <em>overrides</em> any inherited callin binding 
+                     			(explicit and implicit (<a href="s1.html#s1.3.1"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>)) with the same name.
+                     			<br />
+                     It is an error to use the same callin name more than once within the same role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Callin to final</span></h4>
+                  <p>When binding to a final base method, the enclosing role must be played by the exact base class 
+                     			declaring the final method. I.e., callin binding to a final method inherited from the 
+                     			base class's super-class is not allowed. This is motivated by the fact that no sub-class may have 
+                     			a version of a final method with different semantics.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Declared exceptions</span></h4>
+                  <p>It is an error if a role method to be bound by callin declares in its <tt>throws</tt> clause 
+                     		any exceptions that are not declared by the corresponding base method(s).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Method of enclosing class</span></h4>
+                  <p>In a <code>before</code> or <code>after</code> callin binding the left hand side may alternatively
+                     			resolve to a method of an enclosing class rather than the current role.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.2">
+               <h2 class="sect">&sect;4.2&nbsp;Callin modifiers (before, after, replace)<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="subsect depth3" id="s4.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Method composition</span></h4>
+                  <p>The kind of method composition is controlled by adding one
+                     	    of the modifiers <strong>before, after</strong> or <strong>replace</strong> after the
+                     	    "<code>&lt;-</code>" token of the binding declaration.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Additive composition</span></h4>
+                  <p>The <code>before</code> and <code>after</code> modifiers have the
+                     	    effect of adding a call to the role method at the beginning or end
+                     	    of the base method, resp.<br />
+                     	    In this case no data are transferred from the role to the base,
+                     	    so if the role method has a result, this will always be ignored.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callin):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>public</b> <b>void</b> recalculateIncome() { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    recalculateIncome <em><b>&lt;-</b> after</em> haveBirthday; <span class="comment">// callin binding</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <p>Line 4 declares a callin binding for the role method <code>recalculateIncome()</code> 
+                        			defined in line 3. In combination with the role binding in line 2 this has the following effect:
+                        				
+                     </p>
+                     <ul>
+                        <li><strong>After</strong> every call of the method <code>Person.haveBirthday</code> 
+                           					the method <code>Company.recalculateIncome</code> is called.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s4.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Replacing composition</span></h4>
+                  <p>The <code>replace</code> modifier causes <em>only</em> the role method to be
+                     	    invoked, replacing the base method.
+                     	    <br />
+                     	    In this case, if the base method declares a result, this should be provided by the role method.
+                     	    Special cases of return values in callin bindings are discussed in <a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">&sect;4.3.(e)</a></p>
+               </div>
+               <div class="subsect depth3" id="s4.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Callin methods</span></h4>
+                  <p>Role methods to be bound by a callin replacement binding must have
+                     	    the modifier <code>callin</code>. This modifier is only allowed for methods
+                     	    of a role class.<br />
+                     		A method with the <code>callin</code> modifier can only be called
+                     			
+                  </p>
+                  <ul>
+                     <li>via a callin replace binding</li>
+                     <li>by a <code>super</code> or <code>tsuper</code> call from an overriding callin method.
+                     </li>
+                  </ul>
+                  <p>It is illegal for a <code>callin</code> method
+                  </p>
+                  <ul>
+                     <li>to be called directly,</li>
+                     <li>to be bound using a callout binding, and</li>
+                     <li>to be bound to a base method using a <code>before</code> or <code>after</code> callin binding.
+                     </li>
+                  </ul>
+                  <p>Despite these rules a second level role &mdash; which is played by the current role &mdash;
+				can	intercept the execution of a callin method using any form of callin binding.</p>
+                  <p>A callin method cannot override a regular method and vice versa, however,
+                     	    overriding one callin method with another callin method is legal and
+                     	    dynamic binding applies to callin method just like regular methods.
+                     	    <br />
+                     	    A callin method must not declare its visibility using any of the modifiers <code>public</code>, 
+                     	    <code>protected</code> or <code>private</code>. Since callin methods can only be invoked via callin bindings 
+                     	    such visibility control would not be useful.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.3">
+               <h2 class="sect">&sect;4.3&nbsp;Base calls<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.3</a></div>
+               <p>Role methods with a <code>callin</code> modifier should contain
+                  a <em>base call</em> which uses the special name <code>base</code>
+                  in order to invoke the original base method (original means: before replacement).
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+                  <p>The syntax for base calls is <code>base.m()</code>,
+                     		which is in analogy to super calls.
+                     	    A <code>base.m()</code> call must use the same name and signature
+                     	    as the enclosing method. This again follows the rule, that roles
+                     	    should never explicitly use base names, except in binding declarations.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Missing base call</span></h4>
+                  <p>For each callin method, the compiler uses some flow analysis to check whether
+                     		a base call will be invoked on each path of execution (analysis is very similar 
+                     		to the analysis for definite assignment regarding final variables - 
+                     		<a href="http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html"
+                        class="ext">JLS &sect;16</a>).
+                     		The compiler will issue a warning if a base call is missing either
+                     		on each path (definitely missing) or on some paths (potentially missing).
+                     		Instead of directly invoking a base call, a callin method may also call
+                     		its explicit or implicit super version using <code>super.m()</code> or <code>tsuper.m()</code> (see <a href="s1.html#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a>). 
+                     		In this case the flow analysis will transitively include the called super/tsuper version.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate base call</span></h4>
+                  <p>If a callin method contains several base calls, the compiler gives
+                     		a warning if this will result in duplicate base call invocations on all
+                     		paths (definitely duplicate) or on some paths (potentially duplicate).
+                     		Again super/tsuper calls are included in the flow analysis (see 4.3(b)).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Parameter tunneling</span></h4>
+                  <p>If a base method has more parameters
+                     	    than a callin method to which it is composed, additional
+                     	    parameters are implicitly passed unchanged from the original
+                     	    call to the base call (original means: before interception).
+                     		I.e., a call <code>base.m()</code> may invisibly pass additional
+                     		parameters that were provided by the caller, but are hidden from the
+                     		role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Fragile callin binding</span></h4>
+                  <p>If a role method returns void, but the bound base method declares a
+                     		non-void result, this is reported as a <em>fragile callin binding</em>:
+                     The result can still be provided by the base call, but omitting the
+                     		base call may cause problems depending on the return type:
+                     			
+                  </p>
+                  <ul>
+                     <li>For reference return types <code>null</code> will be returned
+                        			            in this case.
+                     </li>
+                     <li>In the case of primitive return types this will cause a
+                        						<code>ResultNotProvidedException</code> at run-time.
+                     </li>
+                  </ul>
+                  <p>It is an error if a callin method involved in a fragile callin binding
+                     		has definitely no base call.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Base super calls</span></h4>
+                  <p>If a callin method <code>rm</code> is bound to a base method <code>B1.m</code> 
+                     			that in turn overrides an inherited method <code>B0.m</code> 
+                     			(<code>B0</code> is a super class of <code>B1</code>),
+                     			the callin method may use a special form of a base call denoted as 
+                     			
+                  </p>
+                  <div class="listing plain"><pre><strong>base.super</strong>.rm();</pre></div>
+                  <p>Such base super call invokes the super method of the bound base method,
+                     			here <code>B0.m</code>. This invocation is not affected by any further callin binding.
+                     			
+                  </p>
+                  <p>A base super call bypasses both the original method <code>B1.m</code> and
+                     			also other callin bindings that would be triggered by a regular base call.
+                     			For this reason any application of this construct is flagged by a decapsulation warning
+                     			(see <a href="s3.html#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">&sect;3.4</a>).
+                     			
+                  </p>
+               </div>
+               <div class="note">
+                  <h5>Comment:</h5>
+                  			Base calls can occur in callin methods that are not
+                  			yet bound. These methods have no idea of the names of base methods that
+                  			a sub-role will bind to them. Also multiple base methods may be bound
+                  			to the same callin method.
+                  			Hence the use of the role method's own name and signature.
+                  			The language implementation translates the method name and signature
+                  			back to the base method that has originally been invoked.
+                  		
+               </div>
+               <h5 class="listing">Example code (Base Call):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> ValidatorRole <b>playedBy</b> Po<b>int</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <em>callin</em> <b>void</b> checkCoordinate(<b>int</b> value) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>if</b> (value &lt; 0)</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>      <em>base</em>.checkCoordinate(-value);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    else</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>      <em>base</em>.checkCoordinate(value);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  checkCoordinate <b>&lt;-</b> <b>replace</b> setX, setY;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Line 2 defines a callin method which is bound to two methods 
+                        						of the base class <code>Point</code> (see line 8).
+                     </li>
+                     <li>The value passed to either setX or setY is checked if it is
+                        						positive (line 3).
+                     </li>
+                     <li>Lines 4 and 6 show calls of the original method (base calls). 
+                        						While line 6 passes the original value, in the negative case (line 4) 
+                        						the passed value is made positive.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.4">
+               <h2 class="sect">&sect;4.4&nbsp;Callin parameter mapping<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="subsect depth3" id="s4.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">General case parameter mapping</span></h4>
+                  <p>The rules for mapping callin parameters and result type
+                     	    are mainly the same as for callout bindings (<a href="s3.html#s3.2" title="&sect;3.2&nbsp;Callout parameter mapping"
+                        class="sect">&sect;3.2</a>)
+                     	    except for reversing the <code>-&gt;</code> and <code>&lt;-</code> tokens and
+                     	    swapping left hand side and right hand side.
+                     	    <br />
+                     	    Callin bindings using <code>before</code> have no result mapping.
+                     For <code>result</code> in <code>after</code> callin bindings
+                     see <a href="#s4.4.c"
+                        title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                        class="sect">&sect;4.4.(c)</a> below.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Restrictions for callin replace bindings</span></h4>
+                  <p>The right-hand side of a parameter mapping may either be
+                     		the simple name of a base method argument without further computation, 
+                     		or an arbitrary expression <em>not</em> containing any base method argument.
+                     		<br />
+                     		Each base method argument must either appear as a simple name in exactly one parameter mapping
+                     		or not be mapped at all. In the latter case, the original argument is "tunneled" to
+                     		the base call, meaning, the callin method does not see the argument, but it is passed
+                     		to the base method as expected.
+                     <br />
+                     If the base method declares a result, then
+                     			
+                  </p>
+                  <ul>
+                     <li>if the role method also declares a result, <code>result</code> must be mapped to itself:
+                        					<br /><code>result -&gt; result</code></li>
+                     <li>if the role method does not declare a result, an arbitrary expression may be mapped to result:
+                        	<br /><code><em>expression</em> -&gt; result</code><br />
+                        		If in this situation no result mapping exists, the result of the base call
+                        					is "tunneled" and passed to the original caller (see <a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                           class="sect">
+                           					fragile callin binding (&sect;4.3.(e))</a> above).
+                        
+                     </li>
+                  </ul>
+                  <p>These rules ensure that these bindings are reversible
+                     		for the sake of base calls (<a href="#s4.3" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                     			
+                  </p>
+                  <p>As stated above a fragile callin binding (<a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">&sect;4.3.(e)</a>) 
+                     		is not allowed with a callin method that definitely has no base call
+                     		(<a href="#s4.3.b" title="&sect;4.3.(b)&nbsp;Missing base call" class="sect">&sect;4.3.(b)</a>). A callin replace binding is not fragile if it provides 
+                     		the base result using a result mapping.
+                     			
+                  </p>
+                  <p>A callin method bound with replace to a base method returning
+                     		void must not declare a non-void result.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Mapping the result of a base method</span></h4>
+                  <p>In an <code>after</code> callin binding, the right-hand side
+                     		of a parameter mapping may use the identifier <code>result</code>
+                     to refer to the result of the base method.
+                     	
+                  </p>
+                  <p> 
+                     An <code>after</code> callin binding
+                     can, however, not <em>influence</em> the result of the base method,
+                     thus mappings with the <code>-&gt;</code> token are not allowed for after callin bindings.
+                     For <code>before</code> mappings using the <code>-&gt;</code> token is already ruled out by <a href="#s4.4.a" title="&sect;4.4.(a)&nbsp;General case parameter mapping"
+                        class="sect">&sect;4.4.(a)</a></p>
+               </div>
+               <div class="subsect depth3" id="s4.4.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+                  <p>A callin binding listing more than one base method may use parameter
+                     		mappings with only the following restriction: if any base parameter should be mapped this parameter 
+                     		must have the same name and type in all listed base method designators. 
+                     		However, different parameter mappings for different base methods bound to the same role method 
+                     		can be defined if separate callin bindings are used.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.5">
+               <h2 class="sect">&sect;4.5&nbsp;Lifting and lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>For basic definition see <a href="s2.html#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a>
+                  and <a href="s2.html#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+                  <br />
+                  	(The following rules are reverse forms of those from <a href="s3.html#s3.3" title="&sect;3.3&nbsp;Lifting and lowering"
+                     class="sect">&sect;3.3</a>)
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+                  <p>Invoking a role method due to a callin binding first
+                     	    <strong>lifts</strong> the base object to the role class of the
+                     	    callin binding, in order to obtain the effective call target. 
+                     	    This is why callin bindings cannot be defined in roles that are <em>unliftable</em> 
+                     	    due to <em>potential binding ambiguity</em> (see <a href="#s4.1.b" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                        class="sect">&sect;4.1.(b)</a> 
+                     	    above and <a href="s2.html#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                        class="sect">&sect;2.3.4.(a)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+                  <p>During callin execution, each parameter for which the role method expects a role
+                     	    object is implicitly <strong>lifted</strong> to the declared role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+                  <p>Returning a role object from a callin method implicitly
+                     	    <strong>lowers</strong> this object.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+                  <p>A parameter mapping (implicit by parameter position or explicit
+                     	    by a <code>with</code> clause) is <strong>well typed</strong> if
+                     	    the right hand side conforms to the left hand side, either by
+                     			
+                  </p>
+                  <ul>
+                     <li>type equality</li>
+                     <li>implicit primitive type conversion</li>
+                     <li>subtype polymorphism</li>
+                     <li>translation polymorphism, here: <em>lifting</em>;<br />
+                        however, within <code>replace</code> bindings step 1 of the smart lifting 
+                        algorithm (<a href="s2.html#s2.3.3.a" title="&sect;2.3.3.(a)&nbsp;Static adjustment"
+                           class="sect">&sect;2.3.3.(a)</a>) is not applicable
+                     </li>
+                     <li><em>or</em> by a combination of the above.
+                     </li>
+                  </ul>
+                  <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                     	    is well typed, if the value at the left hand conforms to the
+                     	    right hand side according to the rules given above, except that
+                     	    translation polymorphism here applies <em>lowering</em> instead of
+                     	    lifting.
+                  </p>
+                  <p>
+                     	    These rules define <strong>translation polymorphism</strong> as introduced in
+                     	    <a href="s2.html#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+                     			
+                  </p>
+                  <p>Additionally, in a <code>replace</code> callin binding compatibility of parameters and return
+                     			types must hold in both directions. 
+                     			Thus, from the above list of conversions a replace binding cannot apply subtype polymorphism
+                     			nor primitive type conversion.
+                     			If more flexibility is desired, type parameters can be used as defined in <a href="#s4.10" title="&sect;4.10&nbsp;Generic callin bindings" class="sect">&sect;4.10</a>.
+                     	    	
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+                  <p>For arrays of roles as parameters <a href="s2.html#s2.3.d" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                        class="sect">&sect;2.3.(d)</a> applies 
+                     		accordingly. For arrays as return value <a href="s2.html#s2.2.e" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                        class="sect">&sect;2.2.(e)</a> applies.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Base calls</span></h4>
+                  <p>For base calls these rules are reversed again, i.e., a
+                     		base call behaves like a callout binding.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.6">
+               <h2 class="sect">&sect;4.6&nbsp;Overriding access restrictions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>Callin bindings may also mention inaccessible methods
+                  	(cf. decapsulation <a href="s3.html#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">&sect;3.4</a>).
+                  	Due to the reverse call direction this is relevant only for base calls within 
+                  	<code>callin</code> methods. 
+                  	Base calls have unrestricted access to protected base methods.
+                  	Accessing a base method with private or default visibility is
+                  	also allowed, but signaled by a compiler warning.
+                  		
+               </p>
+               <div class="note">
+                  <h5>Comment:</h5>
+                  			A base call to an inaccessible base method is considered harmless, 
+                  			since this is the originally intended method execution.
+                  		
+               </div>
+               <div class="subsect depth3" id="s4.6.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Private methods from super classes</span></h4>
+                  <p><em>(Cf. <a href="s3.html#s3.4.d"
+                           title="&sect;3.4.(d)&nbsp;Private methods from super classes"
+                           class="sect">&sect;3.4.(d)</a>)</em>
+                     			If a callin binding shall bind to a private base method, that method
+                     must be defined in the exact base class to which the current role
+                     class is bound using <code>playedBy</code>.
+                     <br />
+                     If a private base feature must indeed be callin-bound, a role class
+                     must be defined that is played by the exact base class defining the
+                     private feature. Another role bound to a sub-base-class can then
+                     be defined as a sub class of the first role. It will inherit the
+                     callin binding and through this it can access the desired feature.
+                     
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.7">
+               <h2 class="sect">&sect;4.7&nbsp;Callin binding with static methods<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>The normal case of callin bindings refers to non-static methods on both
+                  	sides (base and role). Furthermore, in Java inner classes can not define
+                  	static methods. Both restrictions are relaxed by the following rules:
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.7.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Static role methods</span></h4>
+                  <p>A role class may define static methods (see also <a href="s1.html#s1.2.1.f" title="&sect;1.2.1.(f)&nbsp;Static role methods"
+                        class="sect">&sect;1.2.1.(f)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Binding static to static</span></h4>
+                  <p>A callin binding may bind a static role method to one or more
+                     		static base methods. It is, however, an error to bind a static base method to a non-static role method, 
+                     		because such binding would require to lift a base object that is not provided.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">before/after</span></h4>
+                  <p>In addition to the above, <code>before</code> and <code>after</code>
+                     		callin bindings may also bind a static role method to non-static base methods.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">replace</span></h4>
+                  <p>In contrast to <a href="#s4.7.c" title="&sect;4.7.(c)&nbsp;before/after" class="sect">&sect;4.7.(c)</a> above, a <code>replace</code> callin binding
+                     		cannot bind a static role method to a non-static base method.
+                     			
+                  </p>
+               </div>
+               <p>The following table summarizes the combinations defined above:
+                  		
+               </p>
+               <table border="2" class="sep" cellpadding="5" width="80%">
+                  <tr class="z1">
+                     <td colspan="2" rowspan="2" align="right"><strong>&lt;-</strong>&nbsp;&nbsp;
+                     </td>
+                     <td colspan="2" align="center" rowspan="1"><strong>base method</strong></td>
+                  </tr>
+                  <tr class="z1">
+                     <td align="center" rowspan="1" colspan="1">static</td>
+                     <td align="center" rowspan="1" colspan="1">non-static</td>
+                  </tr>
+                  <tr class="z2">
+                     <td rowspan="2" align="center" class="z1" colspan="1"><strong>role<br />method</strong></td>
+                     <td align="center" class="z1" rowspan="1" colspan="1">static</td>
+                     <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+                     <td rowspan="1" colspan="1"><code>before/after</code>: <span class="green">OK</span><br /><code>replace</code>: <span class="error">illegal</span></td>
+                  </tr>
+                  <tr class="z2">
+                     <td align="center" class="z1" rowspan="1" colspan="1">non-static</td>
+                     <td rowspan="1" colspan="1"><span class="error">illegal</span></td>
+                     <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+                  </tr>
+               </table>
+               <div class="subsect depth3" id="s4.7.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">No overriding</span></h4>
+                  <p>Since static methods are not dynamically bound, <i>overriding</i> does not
+                     				   apply in the normal semantics. Regarding callin bindings this has the
+                     				   following consequences (assuming a role <code>RMid</code> played by
+                     				   <code>BMid</code> plus its super-class <code>BSuper</code> and its sub-class
+                     				   <code>BSub</code>.
+                     			
+                  </p>
+                  <ol>
+                     <li>If a static base method <code>BMid.m</code> is bound by a callin binding
+                        				       this has no effect on any method <code>m</code> in <code>BSub</code>.
+                     </li>
+                     <li>If a callin binding mentions a method <code>m</code> which is not present 
+                        in <code>BMid</code> but resolves to a static method in <code>BSuper</code> 
+                        the binding only affects invocations as <code>BMid.m()</code> but not
+                        <code>BSuper.m()</code>. If the latter call should be affected, too,
+                        the callin binding must appear in a role class bound to <code>BSuper</code>, 
+                        not <code>BMid</code>.
+                     </li>
+                     <li>In order to bind two static base methods with equal signatures, one being
+                        				       defined in a sub-class of the other one, two roles have to be defined
+                        				       where one role refines the <code>playedBy</code> clause of the other role
+                        				       (say: <code>public class RSub extends RMid playedBy BSub</code>).
+                        				       Now each role may bind to the static base method accessible in its direct
+                        				       base-class.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.8">
+               <h2 class="sect">&sect;4.8&nbsp;Callin precedence<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.8" title="&sect;A.8&nbsp;Precedence declaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.8</a></div>
+               <p>If multiple callins from the same team refer to the same base method and also have the same 
+                  	callin modifier (<code>before</code>, <code>after</code> or <code>replace</code>), the order in which 
+                  	the callin bindings shall be triggered has to be declared using a precedence declaration.
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.8.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Precedence declaration</span></h4>
+                  <p>A precedence declaration consists of the keyword <code>precedence</code> followed by 
+                     		a list of names referring to callin bindings (see <a href="#s4.1.e" title="&sect;4.1.(e)&nbsp;Named callin bindin" class="sect">&sect;4.1.(e)</a> for named callin bindings).
+                     		<br />
+                     	A precedence declaration is only legal within a role or team class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Qualified and unqualified names</span></h4>
+                  <p>Within a role class a callin binding may be referenced by its unqualified name. 
+                     		A precedence declaration in a team class must qualify the callin name with the name of the declaring 
+                     		role class. A team with nested teams may concat role class names. 
+                     		Elements of a qualified callin name are separated by ".".
+                     		<br />
+                     The callin binding must be found in the role specified by the qualifying prefix or 
+                     in the enclosing role for unqualified names, or any super class of this role 
+                     (including implicit super classes <a href="s1.html#s1.3.1"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Class based precedence</span></h4>
+                  <p>At the team level a precedence declaration may contain role class names without 
+                     		explicitly mentioning callin bindings in order to refer to all callin bindings of the role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple precedence statements</span></h4>
+                  <p>All precedence statements are collected at the outer-most team. At that level all 
+                     		precedence declarations involving the same base method are merged using the 
+                     		C3 algorithm <a href="#fn3-c3-algorithm" class="int">[3]</a>. It is an error to declare 
+                     		incompatible precedence lists that cannot be merged by the C3 algorithm.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Binding overriding</span></h4>
+                  <p>Precedence declarations may conflict with overriding of callin bindings 
+                     		(see <a href="#s4.1.e" title="&sect;4.1.(e)&nbsp;Named callin bindin" class="sect">&sect;4.1.(e)</a>): For each pair of callin bindings of which one 
+                     		callin binding overrides the other one, precedence declarations are not applicable, 
+                     		since dynamic binding will already select exactly one callin binding.
+                     		<br />
+                     		It is an error to <i>explicitly mention</i> such a pair of overriding callin bindings in a precedence declaration.
+                     		<br />
+                     		When a class-based precedence declaration <i>implicitly refers to</i> a callin binding that is overridden by, 
+                     		or overrides any other callin binding within the same precedence declaration, this does not affect the fact, 
+                     		that the most specific callin binding overrides less specific ones.
+                     			
+                  </p>
+               </div>
+               <h5 class="listing">Callin binding example</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> LogLog<b>in</b> <b>playedBy</b> Data<b>base</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>callin</b> <b>void</b> log (String what) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    System.out.println("enter " + what);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    base.log(what.toLowerCase());</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    System.out.println("leave " + what);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>void</b> log(String what) <b>&lt;-</b> <b>replace</b> <b>void</b> login(String uid, String passwd) </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>with</b> { what <b>&lt;-</b> uid }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>(<b>new</b> Database()).login("Admin", "Passwd");</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <p>Provided the callin bindings are active (cf. <a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>) then:
+                     			
+                  </p>
+                  <ul>
+                     <li>the call in line 10 is intercepted by method <code>log</code>
+                        						of role <code>LogLogin</code>.
+                     </li>
+                     <li>the call target of <code>log</code> is a role of type
+                        						<code>LogLogin</code> which is created by lifting the
+                        						original call target (of type <code>Database</code>) to
+                        						<code>LogLogin</code>.
+                     </li>
+                     <li>only parameter <code>uid</code> is passed to <code>log</code>
+                        						(bound to formal parameter <code>what</code>).
+                     </li>
+                     <li>within method <code>log</code> the base call (line 4) invokes 
+                        						the original method passing a modified uid (converted to lower case, cf. line 4) 
+                        						and the unmodified password, which is hidden from the callin method due to the
+                        						parameter mapping in line 8.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.9">
+               <h2 class="sect">&sect;4.9&nbsp;Callin inheritance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>
+                  			This section defines how callin bindings and callin methods relate to inheritance.
+                  		
+               </p>
+               <div class="sect depth3" id="s4.9.1">
+                  <h3 class="sect">&sect;4.9.1&nbsp;Base side inheritance<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     				Generally, a callin binding affects all sub-types of its bound base.
+                     				Specifically, if a role type <code>R</code> bound to a base type <code>B</code> 
+                     				defines a callin binding <code>rm &lt;- <i>callin_modifier</i> bm</code>,
+                     				the following rules apply:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s4.9.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Effect on sub-classes</span></h4>
+                     <p>The callin binding also effects instances of any type <code>BSub</code> 
+                        	that is a sub-type of <code>B</code>.
+                        	If <code>BSub</code> overrides the bound base method <code>bm</code>,
+                        	the overridden version is generally affected, too.
+                        	However, if <code>bm</code> covariantly redefines the return type from its
+                        	super version, the callin binding has to explicitly specify if the covariant
+                        	sub-class version should be affected, too (see <a href="#s4.9.3.b"
+                           title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                           class="sect">&sect;4.9.3.(b)</a>).
+                        
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">No effect on super-classes</span></h4>
+                     <p>The binding never affects an instance of any super-type of <code>B</code> 
+                        	                even if the method <code>bm</code> is inherited from a super-class 
+                        	                or overrides an inherited method. 
+                        	                This ensures that dispatching to a role method due to a callin binding 
+                        	                always provides a base instance that has at least the type declared in the role's 
+                        	                <code>playedBy</code> clause.
+                        
+                     </p>
+                  </div>
+                  <p>
+                     For corresponding definitions regarding static methods see <a href="#s4.7.e" title="&sect;4.7.(e)&nbsp;No overriding" class="sect">&sect;4.7.(e)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s4.9.2">
+                  <h3 class="sect">&sect;4.9.2&nbsp;Role side inheritance<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     	Any sub-type of <code>R</code> inherits the given callin binding 
+                     	(for overriding of bindings see <a href="#s4.8.e" title="&sect;4.8.(e)&nbsp;Binding overriding" class="sect">&sect;4.8.(e)</a>).
+                     If the sub-role overrides the role method <code>rm</code> this will be considered 
+                     for dynamic dispatch when the callin binding is triggered.
+                     
+                  </p>
+               </div>
+               <div class="sect depth3" id="s4.9.3">
+                  <h3 class="sect">&sect;4.9.3&nbsp;Covariant return types<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     				Since version 5, Java supports the covariant redefinition of a method's return type 
+                     				(see <a href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.5"
+                        class="ext">JLS 8.4.5</a>).
+                     				This is <em>not</em> supported for <code>callin</code> methods (<a href="#s4.9.3.a" title="&sect;4.9.3.(a)&nbsp;No covariant callin methods"
+                        class="sect">&sect;4.9.3.(a)</a>). 
+                     				If base methods with covariant redefinition of the return type are to be bound by a callin binding
+                     				the subsequent rules ensure that type safety is preserved.
+                     				Two <em>constraints</em> have to be considered: 
+                     			
+                  </p>
+                  <ol>
+                     <li>
+                        					When a callin method issues a base-call or calls its tsuper version, 
+                        					this call must produce a value whose type is compatible to the 
+                        					enclosing method's declared return type.
+                        				
+                     </li>
+                     <li>
+                        					If a replace-bound role method returns a value that is not the result of a base-call,
+                        					it must be ensured that the return value actually satisfies the declared signature of 
+                        					the bound base method.
+                        				
+                     </li>
+                  </ol>
+                  <div class="subsect depth4" id="s4.9.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">No covariant callin methods</span></h4>
+                     <p>
+                        					A method declared with the <code>callin</code> modifier that overrides an inherited method
+                        					must not redefine the return type with respect to the inherited method.
+                        					This reflects that fact that an inherited callin binding should remain type-safe
+                        					while binding to the new, overriding role method.
+                        					Binding a covariant role method to the original base method would break constraint (1) above.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Capturing covariant base methods</span></h4>
+                     <p>
+                        					If a callin binding should indeed affect not only the specified base method
+                        					but also overriding versions which covariantly redefine the return type,
+                        					the binding must specify the base method's return type with a "+" appended
+                        					to the type name as in
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> rm() <b>&lt;-</b> <b>before</b> <em>RT+</em> bm();</pre></div>
+                     <p>Without the "+" sign the binding would only capture base methods whose
+                        					return type is exactly <code>RT</code>;
+                        					by appending "+" also sub-types of <code>RT</code>
+                        					are accepted as the declared return type.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Covariant replace binding</span></h4>
+                     <p>
+                        					When using the syntax of <a href="#s4.9.3.b"
+                           title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                           class="sect">&sect;4.9.3.(b)</a> to capture base methods with
+                        					covariant return types in a callin binding with the <code>replace</code> modifier,
+                        					the role method must be specified using a free type parameter as follows:
+                     </p>
+                     <div class="listing plain"><pre><em>&lt;E <b>extends</b> RT&gt; E</em> rm() <b>&lt;-</b> <b>replace</b> RT+ bm();</pre></div>
+                     <p>The role method <code>rm</code> referenced by this callin binding must use the same style 
+                        	of return type using a type parameter.
+                        	                The only possible non-null value of type <code>E</code> 
+                        	                to be returned from such method is the value provided by a base-call or a tsuper-call.<br />
+                        	                This rule enforces the constraint (2) above.<br />
+                        	                Note that this rule is further generalized in <a href="#s4.10" title="&sect;4.10&nbsp;Generic callin bindings" class="sect">&sect;4.10</a>.
+                        				
+                     </p>
+                     <h5 class="listing">Binding a parametric role method</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>    SuperBase foo() { <b>return</b> this; }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>    <b>void</b> check() { System.out.print("OK"); }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>    @Override</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>    SubBase foo() { <b>return</b> this; }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>    <b>void</b> print() { System.out.print("SubBase"); }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>    String test() { </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>        this.foo().print(); <span class="comment">// print() requires a SubBase</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">15</td>
+                              <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">16</td>
+                              <td><pre>        <b>callin</b> &lt;E <b>extends</b> SuperBase&gt; E ci() {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">17</td>
+                              <td><pre>			E result= base.ci();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">18</td>
+                              <td><pre>			result.check(); <span class="comment">// check() is available on E via type bound SuperBase</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">19</td>
+                              <td><pre>			<b>return</b> result;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">20</td>
+                              <td><pre>        }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">21</td>
+                              <td><pre>        &lt;E <b>extends</b> SuperBase&gt; E  ci() <b>&lt;-</b> <b>replace</b> SuperBase+ foo();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">22</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">23</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <div class="codecomment">
+                        <h5>Explanation:</h5>
+                        <ul>
+                           <li>
+                              							Method <code>SubBase.foo</code> in line 7 redefines the return type
+                              							from <code>SuperBase</code>	(inherited version) to <code>SubBase</code>,
+                              							thus clients like the method call in line 10 must be safe to assume
+                              							that the return value will always conform to <code>SubBase</code>.
+                              						
+                           </li>
+                           <li>
+                              							The callin binding in line 21 explicitly captures both versions of <code>foo</code>
+                              							by specifying <code>SuperBase+</code> as the expected return type.
+                              							Thus, if an instance of <code>MyTeam</code> is active at the method call
+                              							in line 10, this call to <code>foo</code> will indeed be intercepted
+                              							even though this call is statically known to return a value of type <code>SubBase</code>.
+                              						
+                           </li>
+                           <li>
+                              							The callin method in lines 16-20 has a return type which is not known statically,
+                              							but the return type is represented by the type variable <code>E</code>.
+                              							Since the base call is known to have the exact same signature as its enclosing
+                              							method, the value provided by the base call is of the same type <code>E</code>
+                              							and thus can be safely returned from <code>ci</code>.
+                              							<em>Note,</em> that no other non-null value is known to have the type <code>E</code>.
+                              						
+                           </li>
+                           <li>
+                              							By specifying <code>SuperBase</code> as an upper bound for the type <code>E</code>
+                              							the callin method <code>ci</code> may invoke 
+                              							any method declared in type <code>SuperBase</code>
+                              							on any value of type <code>E</code>. For an example see the call to <code>check</code>
+                              							in line 18.
+                              						
+                           </li>
+                        </ul>
+                        <p><em>
+                              							As an aside note that the above example uses type <code>SuperBase</code>
+                              							in an undisciplined way: within role <code>R</code> this type is bound
+                              							using <code>playedBy</code><strong> and</strong> the same type is also
+                              							used directly (as the upper bound for <code>E</code>).
+                              							This is considered bad style and it is prohibited if <code>SuperBase</code>
+                              							is imported using an base import (<a href="s2.html#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports"
+                                 class="sect">&sect;2.1.2.(d)</a>).
+                              							Here this rule is neglegted just for the purpose of keeping the example small.
+                              						</em></p>
+                     </div>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.10">
+               <h2 class="sect">&sect;4.10&nbsp;Generic callin bindings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>
+                  			As mentioned in <a href="#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> replace bindings do not support subtype polymorphism
+                  			in either direction.
+                  			On the other hand, binding several base methods to the same <code>callin</code> method
+                  			may require some more flexibility if these base methods have different signatures.
+                  			This is where type parameter come to the rescue to allow for generic <code>callin</code> methods
+                  			and	their binding to base methods with different signatures.<br />
+                  			Note that this rule is a generalization of rule <a href="#s4.9.3.c" title="&sect;4.9.3.(c)&nbsp;Covariant replace binding"
+                     class="sect">&sect;4.9.3.(c)</a>.
+                  		
+               </p>
+               <p>
+                  			Additionally, any callin binding (before,replace,after) may declare one or more type parameters
+                  			for propagating type parameters of the bound base method(s) (<a href="#s4.10.e" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                     class="sect">&sect;4.10.(e)</a>).
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.10.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Fresh type parameter</span></h4>
+                  <p>
+                     			If a callin method declares a type parameter <code>&lt;T&gt;</code> for
+                     			capturing a covariant return type
+                     			this type <code>T</code>
+                     			can be used for specifying the type of exactly one parameter or the return type.
+                     			If a type parameter is used in more than one position of a <code>callin</code> method
+                     			it is not considered a <em>fresh type parameter</em>
+                     			and can thus not be bound to a covariant return type (see <a href="#s4.10.d" title="&sect;4.10.(d)&nbsp;Binding to a type parameter"
+                        class="sect">&sect;4.10.(d)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Type bounds</span></h4>
+                  <p>
+                     			The type parameter of a callin binding may be bounded by an upper bound as in <code>&lt;T extends C&gt;</code>.
+                     			In this case <code>T</code> can only be instantiated by types conforming to the upper bound <code>C</code>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Generic replace binding</span></h4>
+                  <p>
+                     			A generic <code>callin</code> method according to the above rules is bound using a replace
+                     			binding that declares the same number of type parameters,
+                     			where type parameters of the binding and its callin method are identified.
+                     			If the <code>callin</code> method declares bounds for its type parameters
+                     			so should the replace binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Binding to a type parameter</span></h4>
+                  <p>
+                     			A fresh type parameter can be used to capture arbitrary types in the base methods to be bound.
+                     			The type parameter may be instantiated differently for each bound base method.
+                     			By such type parameter instantiation the types in role and base signatures are actually identical,
+                     			thus satisfying the requirement of two-way substitutability.
+                     			
+                  </p>
+               </div>
+               <p>
+                  			Within the body of a generic <code>callin</code> method no further rules have to be followed,
+                  			because the fresh type variable actually guarantees, that the role method cannot replace the
+                  			original value (initial argument or base-call result) with a different object,
+                  			because no type exists that is guaranteed to conform to the type parameters.
+                  			Yet, the type bound allows the role method to invoke methods of the provided object.
+                  		
+               </p>
+               <h5 class="listing">Generic replace binding</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> Figures {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>        <b>callin</b> &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; E ci(F arg) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>            E result= base.ci(arg);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>            <span class="error">result= arg; // illegal, types E and F are incommensurable</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>            <span class="error">arg= result; // illegal, types E and F are incommensurable</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>            <b>int</b> size= arg.getSize(); <span class="comment">// getSize() is availabel on F via type bound Shape</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>            result.resize(size); <span class="comment">    // resize() is available on E via type bound Shape</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>            <b>return</b> result; <span class="comment">// only two legal values exist: <code>result</code> and <code>null</code></span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>        &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>        E  ci(F arg) <b>&lt;-</b> <b>replace</b> Rectangle getBoundingBox(Shape original), </pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>                                Rectangle stretch(Square original);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Explanation:</h5>
+                  			These declaration generate two version of the <code>callin</code> method <code>ci</code>:
+                  			
+                  <ol>
+                     <li><code>Rectangle ci (Shape arg)</code></li>
+                     <li><code>Rectangle ci (Square arg)</code></li>
+                  </ol>
+                  			Within the <code>callin</code> method the following observations hold:
+                  			
+                  <ul>
+                     <li>Line 5 is illegal for the first signature as <code>Shape</code> is not conform to <code>Rectangle</code></li>
+                     <li>Line 6 is illegal for the second signature as <code>Rectangle</code> is not conform to <code>Square</code></li>
+                     <li>Everything else is type-safe.</li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s4.10.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Propagating type parameters</span></h4>
+                  <p>
+                     				If a callin binding binds to a generic base method, 
+                     				any type parameter(s) of the base method must be propagated into the role method 
+                     				by declaring the callin binding with type parameters, too.
+                     				By matching a type parameter of a base method with a type variable
+                     				of the callin binding, this genericity is propagated through the callin binding.
+                     			
+                  </p>
+                  <div class="listing  frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>class</b> MyBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>	&lt;T&gt; T getIt(T it) { <b>return</b> it; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>	<b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>		<b>callin</b> &lt;U&gt; U rm(U a) { <b>return</b> base.rm(a); }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>		&lt;U&gt; U rm(U a) <b>&lt;-</b> <b>replace</b> U getIt(U it);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>	}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Explanation:</h5>
+                     				The callin binding declares a type parameter <code>&lt;U&gt;</code>
+                     				which is used to match all occurrences of <code>T</code> in the signature of <code>getIt</code>.
+                     				Thus the implementation of <code>rm</code> uses the type <code>U</code>
+                     				in exactly the same generic way as <code>getIt</code> uses <code>T</code>.
+                     			
+                  </div>
+               </div>
+            </div>
+            <div class="aux" id="aux4.2">
+               <h4 class="aux">Open issues:<span class="toplink"><a href="#s4">&uarr;&nbsp;&sect;4</a></span></h4>
+               <p>The query language for specifying sets of base methods (<a href="#s4.1.d" title="&sect;4.1.(d)&nbsp;Multiple base methods"
+                     class="sect">&sect;4.1.(d)</a>)
+                  		has not been finalized yet. In this version of the OTJLD <a href="s8.html" title="&sect;8&nbsp;Join Point Queries" class="sect">&sect;8</a> 
+                  		acts as a placeholder for the section that will define a join point query language in the future.
+               </p>
+            </div>
+            <div class="aux" id="aux4.1">
+               <h4 class="aux">References:<span class="toplink"><a href="#s4">&uarr;&nbsp;&sect;4</a></span></h4>
+               <p id="fn3-c3-algorithm">
+                  			[3] Kim Barrett, Bob Cassels, Paul Haahr, David A. Moon, Keith Playford, P. Tucker Withington. <em>A monotonic superclass linearization for Dylan</em>. OOPSLA '96: Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications,
+                  pages 69-82, 1996.
+                  		
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.html" rel="prev">&lt;&lt;&nbsp;&sect;3&nbsp;Callout Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.html" rel="next">&sect;5&nbsp;Team Activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s5.html
new file mode 100644
index 0000000..a177d12
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s5.html
@@ -0,0 +1,669 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.html" rel="prev">&lt;&lt;&nbsp;&sect;4&nbsp;Callin Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.html" rel="next">&sect;6&nbsp;Object Teams API&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s5">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;5&nbsp;Team Activation</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s5.html">&sect;5&nbsp;Team Activation</a></li>
+                  <li><a href="#s5.1">&sect;5.1&nbsp;Effect of team activation</a></li>
+                  <li><a href="#s5.2">&sect;5.2&nbsp;Explicit team activation</a></li>
+                  <li><a href="#s5.3">&sect;5.3&nbsp;Implicit team activation</a></li>
+                  <li><a href="#s5.4">&sect;5.4&nbsp;Guard predicates</a></li>
+                  <li><a href="#s5.5">&sect;5.5&nbsp;Unanticipated team activation</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>The concept of Activation</h3>
+               <div class="line"></div>
+               <div class="term">Binding activation</div>
+               <div class="termdesc">All <strong>callin</strong> bindings of a team only have effect if
+                  				the team is <strong>active</strong>. Activation may be caused by explicit
+                  				statements and also happens implicitly at certain points
+                  				during program execution.
+               </div>
+               <div class="line"></div>
+               <div class="term">Guard predicates</div>
+               <div class="termdesc">Callin bindings can further be controlled using guard predicates,
+                  				which can be attached to roles and teams at different levels. If a guard
+                  				predicate evaluates to <code>false</code>, all affected callin bindings
+                  				are disabled.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s5.1">
+               <h2 class="sect">&sect;5.1&nbsp;Effect of team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>Activating a team instance has the effect of enabling all its callin bindings. 
+                  	All effects defined in <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a> apply only if a corresponding 
+                  	team instance is active.<br />
+                  	The <strong>order</strong> of team activation controls the order of callin executions. 
+                  	If more than one team intercepts calls to the same base method, the most recently activated 
+                  	team has highest priority in that its before or replace callins are executed first while its after 
+                  	callins are executed last.
+                  		
+               </p>
+               <div class="sect depth3" id="s5.1.1">
+                  <h3 class="sect">&sect;5.1.1&nbsp;Global vs. thread local team activation<span class="toplink"><a href="#s5.1">&uarr;&nbsp;&sect;5.1</a></span></h3>
+                  <p>While <strong>thread local</strong> activation only enables the callin bindings of 
+                     		a team instance for a certain thread, <strong>global</strong> activation activates the 
+                     		team instance for all threads of the application.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.1.2">
+                  <h3 class="sect">&sect;5.1.2&nbsp;Effect on garbage collection<span class="toplink"><a href="#s5.1">&uarr;&nbsp;&sect;5.1</a></span></h3>
+                  <p>Any active team is referenced by internal infrastructure. 
+                     		Thus, a team cannot be reclaimed by the garbage collector while it is active.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.2">
+               <h2 class="sect">&sect;5.2&nbsp;Explicit team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <div class="subsect depth3" id="s5.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Activation block</span></h4>
+                  <p>A team can be activated thread local by the block construct</p>
+                  <div class="listing plain"><pre><b>within</b> (myTeam) { <i>stmts</i> }</pre></div>
+                  <p>If <em>stmts</em> has only one statement this can be abbreviated to
+                  </p>
+                  <div class="listing plain"><pre><b>within</b> (myTeam) <i>stmt</i></pre></div>
+                  <p>In these statements, <code>myTeam</code> must denote a team instance. 
+                     		For the time of executing this block, this team instance is activated for the current thread, 
+                     		which has entered the within block.
+                     			
+                  </p>
+                  <p>The <code>within</code> block statement guarantees that it leaves
+                     		the team in exactly the same activation state as it was in when
+                     		entering this block. This includes the cases of exceptions, meaning
+                     		that deactivation will also occur if the execution of the block
+                     		terminates abnormally.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Imperative activation</span></h4>
+                  <p>Each team class implicitly provides methods from the predefined interface 
+                     		<code>org.objectteams.ITeam</code> (super interface of all team classes) to control team 
+                     		activation disregarding the block structure of the program. The methods <code>activate()</code> 
+                     		and <code>deactivate()</code> are used to activate and deactivate a team instance for 
+                     		the current thread.<br />
+                     If a team should be de-/activated for another thread this can be done by the methods 
+                     <code>activate(Thread aThread)</code> and <code>deactivate(Thread aThread)</code>. 
+                     In order to achieve global activation for all threads the predefined constant 
+                     <code>org.objectteams.Team.ALL_THREADS</code> is passed to these methods (e.g. 
+                     <code>activate(Team.ALL_THREADS)</code>).<br />
+                     Note, that this methods make no guarantees with respect to exceptions.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Multiple and mixed activations</span></h4>
+                  <ul>
+                     <li>If <code>activate()</code> is invoked on a team instance
+                        				    that has been explicitly activated before, this statement has
+                        				    no effect at all (note the difference in <a href="#s5.3.a" title="&sect;5.3.(a)&nbsp;Team level methods" class="sect">&sect;5.3.(a)</a> below).
+                        				    <br />
+                        				    The same applies to deactivating an inactive team.
+                     </li>
+                     <li>If a team was already active when entering a <code>within</code>
+                        					block, it will remain active after leaving the block.
+                     </li>
+                     <li>If the team was active on entry of a <code>within</code> block
+                        					and if <code>deactivate()</code> is invoked on the same team
+                        					instance from within the <code>within</code> block,
+                        					leaving the block will re-activate the team.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.3">
+               <h2 class="sect">&sect;5.3&nbsp;Implicit team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>Implicit team activation is intended to ensure that
+                  	whenever the control flow is passed to a team or one of its roles,
+                  	the team is implicitly activated for the current thread.
+                  Implicit activation can be configured at different levels (see <a href="#s5.3.d" title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                     class="sect">&sect;5.3.(d)</a>).
+                  	
+               </p>
+               <p>When implicit activation is enabled a programmer may assume,
+                  that whenever a role forwards calls to its base object via callout,
+                  the callin bindings of the same role will be active at that time.
+                  Exceptions to this rule have to be programmed explicitly.
+                  		
+               </p>
+               <div class="subsect depth3" id="s5.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Team level methods</span></h4>
+                  <p>While executing a <strong>team level method</strong>, the target team
+                     	    is always active. Activation is reset to the previous state
+                     	    when leaving the team method, unless the team has been explicitly activated during
+                     	    execution of the team method by a call to <code>activate()</code>.
+                     	    Explicit activation is stronger than implicit activation and thus persists after the
+                     	    team level method terminates. Ie., leaving a team level method will never reset
+                     	    an explicit activation.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Methods of externalized roles</span></h4>
+                  <p>Invoking a method on an <strong>externalized role</strong>
+                     	    (see <a href="s1.html#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles"
+                        class="sect">&sect;1.2.2</a>) also has the
+                     	    effect of temporary activation of the team containing the role for the current thread.
+                     	    Regarding deactivation the rule of <a href="#s5.3.a" title="&sect;5.3.(a)&nbsp;Team level methods" class="sect">&sect;5.3.(a)</a> above applies accordingly.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Nested teams</span></h4>
+                  <p>Implicit activation has additional consequences for nested teams 
+                     		(see <a href="s1.html#s1.5" title="&sect;1.5&nbsp;Team and role nesting"
+                        class="sect">&sect;1.5</a>):
+                     
+                  </p>
+                  <ul>
+                     <li>Implicit activation of a team causes the activation of its outer teams.</li>
+                     <li>Implicit deactivation of a team causes the deactivation of its inner teams.</li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s5.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Configuring implicit activation</span></h4>
+                  <p>Implicit activation is disabled by default and can be enabled by adding the annotation
+                     				<code>@org.objectteams.ImplicitTeamActivation</code>, which can be applied to a type or a method.
+                     				When applied to a method it is ensured that invoking this method will trigger implicit activation.
+                     				When the annotation is applied to a type this has the same effect as applying it to all externally
+                     				visible methods of the type. Member types are not affected and have to be annotated separately.
+                  </p>
+                  <p>The runtime environment can be configured globally by defining the system property 
+                     				<code>ot.implicit.team.activation</code> to one of these values:
+                  </p>
+                  <dl>
+                     <dt>NEVER</dt>
+                     <dd>Implicit activation is completely disabled.</dd>
+                     <dt>ANNOTATED</dt>
+                     <dd>This is the default: implicit activation applies only where declared by <code>@ImplicitTeamActivation</code>.
+                     </dd>
+                     <dt>ALWAYS</dt>
+                     <dd>Implicit activation applies to all externally visible methods (this was the default in OTJLD versions &le;1.2)</dd>
+                  </dl>
+               </div>
+               <p>Note that among the different mechanisms for activation, <code>within</code> is strongest, 
+                  	followed by <code>(de)activate()</code>, weakest is implicit activation. In this sense, 
+                  	explicit imperative (de)activation may override the block structure of implicit activation 
+                  	(by explicit activation within a team level method), but not that of a <code>within</code> 
+                  	block (by deactivation from a within block).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s5.4">
+               <h2 class="sect">&sect;5.4&nbsp;Guard predicates<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.7" title="&sect;A.7&nbsp;Guard predicates" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.7</a></div>
+               <p>The effect of callins can further be controlled using so called guard predicates. 
+                  	Guards appear at four different levels:
+                  		
+               </p>
+               <ul>
+                  <li>callin method binding</li>
+                  <li>role method</li>
+                  <li>role class</li>
+                  <li>team class</li>
+               </ul>
+               <p>Guards can be specified as <em>regular</em> guards or <code>base</code> guards, 
+                  	which affects the exact point in the control flow, where the guard will be evaluated.
+                  		
+               </p>
+               <div class="subsect depth3" id="s5.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">General syntax for guards</span></h4>
+                  <p>A guard is declared using the keyword <code>when</code> followed by a 
+                     		boolean expression in parentheses:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><em><b>when</b> (</em><i>predicateExpression</i><em>)</em></pre></div>
+                  <p>Depending on the kind of guard different objects are in scope using
+                     special identifiers like <code>this</code>, <code>base</code>.<br />
+                     Any predicate expression that evaluates to <code>true</code> enables
+                     the callin binding(s) to which it applies.
+                     Evaluation to <code>false</code> disables the callin binding(s).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">No side effects</span></h4>
+                  <p>A guard predicate should have no side effects. 
+                     			   A compiler should optionally check this condition, but inter-procedural analysis
+                     			   actually depends on the availability of appropriate means to mark any method as side-effect free.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Exceptions</span></h4>
+                  <p>A guard predicate should not throw any exceptions. 
+                     			   Yet, any exception thrown within a guard predicate cause the guard to evaluate to <code>false</code> 
+                     			   rather than propagating the exception, meaning that the evaluation of a guard predicate will never
+                     			   interrupt the current base behaviour.<br />
+                     			   A compiler should flag any checked exception that is thrown within a guard.
+                     			   Such diagnosis should by default be treated as an error, with the option of configuring
+                     			   its severity to warning or ignore.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.4.1">
+                  <h3 class="sect">&sect;5.4.1&nbsp;Regular guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>This group of guards evaluates within the context of a given role. 
+                     		These guards are evaluated <em>after</em> a callin target is lifted and 
+                     		<em>before</em> a callin bound role method is invoked.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s5.4.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Method binding guards</span></h4>
+                     <p>A guard may be attached to a callin method binding as in:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir) <b>&lt;-</b> <b>after</b> <b>void</b> baseMethod(<b>int</b> ib)
+  <b>when</b> (ir &gt; MyTeam.this.threshold);</pre></div>
+                     <p>Such a guard only affects the callin binding to which it is attached, 
+                        			i.e., this specific callin binding is only effective, 
+                        			if the predicate evaluates to <code>true</code>.
+                        			<br />
+                        			The following values are within the scope of the predicate expression, 
+                        			and thus can be used to express the condition:
+                        				
+                     </p>
+                     <ul>
+                        <li>The role instance denoted by <code>this</code>.<br />
+                           				Features of the role instance can also be accessed relative to
+                           				<code>this</code> with or without explicit qualifying <code>this</code>.
+                           					
+                        </li>
+                        <li>The team instance denoted by a qualified this reference as in 
+                           				<code>MyTeam.this</code>.
+                           					
+                        </li>
+                        <li>If the callin binding includes signatures (as in the example above): 
+                           				Parameters of the role method.<br />
+                           				If parameter mappings are involved, they will be evaluated before evaluating the guard.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Method guards</span></h4>
+                     <p>A method guard is similar to a method binding guard, but it applies 
+                        			to all callin method bindings of this method.<br />
+                        			A method guard is declared between the method signature and the method body:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir)
+  <b>when</b> (ir &gt; MyTeam.this.threshold) { <i>body statements</i> }</pre></div>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Role level guards</span></h4>
+                     <p>When a guard is specified at the role level, i.e., directly before the 
+                        			class body of a role class, it applies to all callin method bindings of 
+                        			the role class:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole
+  <b>when</b> (value &gt; MyTeam.this.threshold)
+{
+    <b>int</b> value;
+    <i>other <b>class</b> body declarations</i>
+}</pre></div>
+                     <p>The following values are within the scope of the predicate expression:
+                        				
+                     </p>
+                     <ul>
+                        <li>The role instance denoted by <code>this</code> (explicit or implicit, see above). 
+                           				Thus, in the example <code>value</code> will be interpreted as a field of the enclosing role.
+                           					
+                        </li>
+                        <li>The team instance denoted by a qualified this reference as in <code>MyTeam.this</code></li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Team level guards</span></h4>
+                     <p>A guard specified in the header of a team class may disable the callin 
+                        			bindings of all contained role classes. The syntax corresponds to the syntax 
+                        			of role level guards.<br />
+                        			The only value directly available within team level guard is the 
+                        			team instance (denoted by <code>this</code>) and its features.
+                        				
+                     </p>
+                  </div>
+                  <p>Of course all guards can also access any visible static feature of a visible class.
+                     			
+                  </p>
+                  <p>Even if a guard has no direct effect, because, e.g., a role class has no callin 
+                     		bindings (maybe not even a role-base binding), predicates at such abstract 
+                     		levels are useful, because all predicates are inherited by all sub classes 
+                     		(explicit and implicit).
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.4.2">
+                  <h3 class="sect">&sect;5.4.2&nbsp;Base guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>The intention behind base guards is to prevent lifting of a callin-target
+                     		if a guard evaluates to <code>false</code> and thus refuses to invoke the
+                     		callin bound role method. Using base guards it is easier to prevent any
+                     		side-effects caused by a callin binding, because lifting could cause side-effects
+                     		at two levels:
+                     			
+                  </p>
+                  <ul>
+                     <li>Creating a role on-demand already is a side-effect (observable e.g.
+                        			by the reflective function <code><a href="s6.html#s6.1" title="&sect;6.1&nbsp;Reflection" class="sect">hasRole (&sect;6.1)</a></code>)
+                        				
+                     </li>
+                     <li>Role creation triggers execution of a role constructor 
+                        			(see <a href="s2.html#s2.3.1.c"
+                           title="&sect;2.3.1.(c)&nbsp;Custom lifting constructor"
+                           class="sect">custom lifting constructor (&sect;2.3.1.(c))</a>) 
+                        			which could produce arbitrary side-effects.
+                        				
+                     </li>
+                  </ul>
+                  <p>Both kinds of side-effects can be avoided using a base guard which prevents
+                     		unnecessary lifting.
+                     			
+                  </p>
+                  <p>Any guard (5.4.1 (b)-(e)) can be turned into a base guard by adding 
+                     		the modifier <code>base</code> as in:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase
+  <em><b>base</b> when</em> (base.value &gt; MyTeam.this.threshold)
+{
+    <i><b>class</b> body declarations</i>
+}</pre></div>
+                  <p>However, different scoping rules apply for the identifiers 
+                     		that can be used in a base guard:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s5.4.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Base object reference</span></h4>
+                     <p>In all base guard predicates the special identifier <code>base</code> 
+                        			can be used to denote the base object that is about to be lifted.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Method binding guards</span></h4>
+                     <p>A base method binding guard may access parameters as passed to the
+                        			base method. Parameter mappings are not considered.<br />
+                        Additionally, for <code>after</code> callin bindings, the identifier <code>result</code> 
+                        may be used to refer to the result of the base method (if any).
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        <p>In order to achieve the same effect of accessing
+                           	the base method's result, a regular binding guard (not a base guard)
+                           	must use a suitable parameter mapping (see <a href="s4.html#s4.4.c"
+                              title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                              class="sect">&sect;4.4.(c)</a>).
+                           					
+                        </p>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Method guards</span></h4>
+                     <p>In contrast to regular method guards, a <em>base</em> guard attached to a role method 
+                        			cannot access any method parameters. See the next item (d) for values that are actually in scope.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Role level guards</span></h4>
+                     <p>Role level base guards may use these values:
+                        				
+                     </p>
+                     <ul>
+                        <li>The base instance using the special identifier <code>base</code>.
+                        </li>
+                        <li>The team instance using a qualified this references (<code>MyTeam.this</code>).
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Team level guards</span></h4>
+                     <p>Team level base guards have the same scope as role level base guards (d). 
+                        			However, the type of the role instance is not known here, i.e., here <code>base</code> 
+                        			has the static type <code>java.lang.Object</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Unbound roles</span></h4>
+                     <p>In contrast to regular guards, base guards cannot be attached to
+                        	unbound role classes nor to their methods.<br />
+                        	Only team level base guards are independent of role binding.
+                        				
+                     </p>
+                  </div><img src="../images/guards.png" alt="Overview: Guard predicates" /></div>
+               <div class="sect depth3" id="s5.4.3">
+                  <h3 class="sect">&sect;5.4.3&nbsp;Multiple guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>Due to the different ranges of applicability different guards may affect the same method binding. 
+                     		In that case all applicable guards are conjoined using a logical <code>and</code>.<br />
+                     Any guard is interpreted as the conjunction of these predicates (if present):
+                     			
+                  </p>
+                  <ul>
+                     <li>The direct predicate expression of the guard.</li>
+                     <li>The next outer guard along the chain 
+                        			<em>method binding -&gt; method -&gt; role level -&gt; team level</em></li>
+                     <li>The guard at the same level that is inherited from the <em>implicit</em> super role.
+                     </li>
+                     <li>The guard at the same level that is inherited from the <em>explicit</em> super role.
+                     </li>
+                  </ul>
+                  <h5 class="listing">Example code (Guard Predicates):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> ATM {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>private</b> Bank myBank;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> ForeignAccount <b>playedBy</b> Account</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <em><b>base</b> when</em> (!ATM.this.myBank.equals(<em>base</em>.getBank()))</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <b>callin</b> <b>void</b> debitWithFee(<b>int</b> amount) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>      base.debitWithFee(fee+amount);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <b>void</b> debitWithFee(<b>int</b> i) <b>&lt;-</b> <b>replace</b> <b>void</b> debit(<b>int</b> amount)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>      <em><b>base</b> when</em> (amount &lt; 1000);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     				The team in this example causes that an additional fee has to be payed while debiting 
+                     				less than 1000 Euros from a "foreign" account.
+                     				
+                     <ul>
+                        <li>The base guard in line 4 ensures that <code>Account</code> objects only get 
+                           				<code>ForeignAccount</code> roles, if they belong to a different bank than the 
+                           				surrounding <code>ATM</code> team.<br />
+                           				It accesses the bank of the base via the <code>base</code> identifier.
+                           					
+                        </li>
+                        <li>The method binding guard in line 10 restricts the callin to 
+                           				<code>debitWithFee</code> to calls where the base method argument 
+                           				<code>amount</code> is lower than 1000.
+                           					
+                        </li>
+                        <li>A call to <code>Account.debit</code> causes a replace callin to 
+                           				<code>debitWithFee</code><em> only</em> if <em>both</em> predicates evaluate to true.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.5">
+               <h2 class="sect">&sect;5.5&nbsp;Unanticipated team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>If an application should be adapted unanticipatedly by one or more teams, 
+                  	this can be achieved without explicitly changing the program code of this application.
+                  		
+               </p>
+               <p><span class="underline">General activation via config file:</span><br />
+                  	Instead of adding the team initialization
+                  	and activation code to the main program, it is possible to add the respective teams via a config file.
+                  	Every line of this text file contains the fully qualified name of a compiled team, which has to be available
+                  	on the classpath.
+                  For the instantiation of these teams the default constructor is used, which means adding a team to
+                  an application this way requires the team to provide a default constructor.
+                  The activation order (see <a href="#s5.1" title="&sect;5.1&nbsp;Effect of team activation" class="sect">&sect;5.1</a>) for these teams corresponds to the order 
+                  in which they are listed in the config file.<br />
+                  	Lines starting with a '#' denote comment lines.
+                  		
+               </p>
+               <h5 class="listing">Example config file:</h5>
+               <div class="listing config frame"><pre><span class="comment"># Config file for an ObjectTeams application:</span>
+<em>mypackage1.MyTeam1</em>
+<span class="comment"># ...</span>
+<em>mypackageM.MyTeamN</em></pre></div>
+               <p>To get this config file recognized by the application the VM argument<br /><strong>'-Dot.teamconfig=&lt;<em>config_file_name</em>&gt;'</strong><br />
+                  	has to be used when starting the application.
+                  		
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  			In the ObjectTeams Development Tooling (OTDT) teams are activated unanticipatedly 
+                  			via a special tab in the "Run-Configuration" (see <a href="http://www.objectteams.org/distrib/features.html#execution" class="ext">OTDT features</a>), instead.
+                  		
+               </div>
+               <p><span class="underline">Activation adjustment example:</span><br />
+                  	Teams added via the config file mechanism are activated by default. Because no reference to them is
+                  	stored anywhere, it is not possible to deactivate them later.
+                  	If deactivation of unanticipated added teams is required, this can be achieved by adding a manager team
+                  	via config file and encapsulate the actual functionality in another team managed by the manager team.
+                  	This way a functional team can be activated and deactivated as needed.
+                  		
+               </p>
+               <h5 class="listing">Example code (Activation Adjustment):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyManagerTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>private</b> FunctionalTeam myFunctionalTeam = <b>new</b> FunctionalTeam();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyApplication {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>void</b> startAdaption() { myFunctionalTeam.activate(); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    startAdaption <b>&lt;-</b> <b>before</b> startMethod;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    <b>void</b> stopAdaption() { myFunctionalTeam.deactivate(); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    stopAdaption <b>&lt;-</b> <b>after</b> stopMethod;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing config frame"><pre><span class="comment"># Config file for the manager team example:</span>
+<em>MyManagerTeam</em></pre></div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li><code>startMethod</code> and <code>stopMethod</code> are methods which demand 
+                        			the activation and deactivation respectively.
+                        				
+                     </li>
+                     <li>If the activation/deactivation depends on other conditions these can be checked in addition.
+                        				
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.html" rel="prev">&lt;&lt;&nbsp;&sect;4&nbsp;Callin Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.html" rel="next">&sect;6&nbsp;Object Teams API&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s6.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s6.html
new file mode 100644
index 0000000..c0db8c4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s6.html
@@ -0,0 +1,405 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.html" rel="prev">&lt;&lt;&nbsp;&sect;5&nbsp;Team Activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.html" rel="next">&sect;7&nbsp;Role Encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s6">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;6&nbsp;Object Teams API</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s6.html">&sect;6&nbsp;Object Teams API</a></li>
+                  <li><a href="#s6.1">&sect;6.1&nbsp;Reflection</a></li>
+                  <li><a href="#s6.2">&sect;6.2&nbsp;Other API Elements</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>The role of predefined types and methods</h3>
+               <div class="line"></div>
+               <div class="term">Application Programming Interface (API)</div>
+               <div class="termdesc">Some features of OT/J are supported without introducing new syntax but by predefined types and methods.</div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s6.1">
+               <h2 class="sect">&sect;6.1&nbsp;Reflection<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;6</a></span></h2>
+               <p>Object Teams supports reflection with respect to teams, roles, and role-base relationships.
+                  		
+               </p>
+               <div class="subsect depth3" id="s6.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Interface to the role registry</span></h4>
+                  <p>Each team instance internally has a registry of known role objects indexed by their base object. 
+                     		Programmers may make use of this registry using the following reflective methods defined in 
+                     		<code>org.objectteams.ITeam</code>:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>boolean hasRole ( Object aBase ) ;</code></dt>
+                     <dd>This method checks whether a role for the passed base object already exists in the target team.
+                        				
+                     </dd>
+                     <dt><code>boolean hasRole ( Object aBase, Class expectedRole ) ;</code></dt>
+                     <dd>This method checks whether a instance of type <code>expectedRole</code> as a role for the passed base object 
+                        					<code>aBase</code> already exists in the target team.
+                        				    The role may also be of any subtype of the specified role type.
+                        				
+                     </dd>
+                     <dt><code>Object getRole ( Object aBase ) ;</code></dt>
+                     <dd>If the passed base object <code>aBase</code> already has a role in the target team, this role is returned. 
+                        					Otherwise <code>null</code> is returned.
+                        				
+                     </dd>
+                     <dt><code>&lt;T&gt; T getRole ( Object aBase, Class&lt;T&gt; expectedRole ) ;</code></dt>
+                     <dd>If the passed base object <code>aBase</code> already has a role in the target team that is assignable to the type represented by <code>expectedRole</code>, 
+                        					this role is returned. Otherwise <code>null</code> is returned.
+                        				
+                     </dd>
+                     <dt><code>Object[] getAllRoles () ;</code></dt>
+                     <dd>Retrieves all existing (registered) <a href="s2.html#s2.1.a" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                           class="sect">bound roles (&sect;2.1.(a))</a> in the target team.
+                        					<br />
+                        This method uses internal structures of weak references. For that reason it may return role instances which were about 
+                        to be reclaimed by the garbage collector. If performance permits, it is thus advisable to always call <code>System.gc()</code> 
+                        prior to calling <code>getAllRoles()</code> in order to achieve deterministic results (see also <a href="s2.html#s2.1.f"
+                           title="&sect;2.1.(f)&nbsp;Effect on garbage collection"
+                           class="sect">&sect;2.1.(f)</a>).
+                        				
+                     </dd>
+                     <dt><code>&lt;T&gt; T[] getAllRoles ( Class&lt;T&gt; expectedRole ) ;</code></dt>
+                     <dd>Retrieves all existing (registered) <a href="s2.html#s2.1.a" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                           class="sect">bound roles (&sect;2.1.(a))</a> in the target team that are assignable to the type represented by <code>expectedRole</code>. 
+                        					Class <code>expectedRole</code> must be a bound role otherwise an <code>IllegalArgumentException</code> is thrown.
+                        <br />
+                        See the note about garbage collection above.
+                        				
+                     </dd>
+                     <dt><code>void unregisterRole ( Object aRole ) ;</code></dt>
+                     <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                        					After calling this method the role should no longer be used.
+                        				
+                     </dd>
+                     <dt><code>void unregisterRole ( Object aRole, Class roleClass ) ;</code></dt>
+                     <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                        					After calling this method the role should no longer be used. 
+                        					The only difference to the previous method is improved speed because no search for the corresponding registry 
+                        					has to be performed.
+                        				
+                     </dd>
+                  </dl>
+                  <p>It is desirable and possible to use these methods within guards (see <a href="s5.html#s5.4" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>). 
+                     		These methods allow to write the specification of guards in a more concise and more expressive way. Determined by the signature,
+                     
+                     		the first four methods can only be used in a base-level guard (<a href="s5.html#s5.4.2" title="&sect;5.4.2&nbsp;Base guards" class="sect">&sect;5.4.2</a>) because they require a reference to a base object.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Guards and Reflection):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> SpecialConditions {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>void</b> participate(Account <b>as</b> BonusAccount ba) {}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> BonusAccount <b>playedBy</b> Account</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <b>base</b> when(SpecialConditions.this.<em>hasRole</em>(base, BonusAccount.class))</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <b>callin</b> <b>void</b> creditBonus(<b>int</b> amount) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>      base.creditBonus(amount + bonus);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <b>void</b> creditBonus(<b>int</b> amount) <b>&lt;-</b> <b>replace</b> <b>void</b> credit(<b>int</b> i)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>      <b>base</b> <b>when</b> (i &gt; 1000);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     				This teams provides a bonus system for registered <code>Account</code>s. Every time an amount of more than 1000 is 
+                     				deposited to a registered account, additional 1% of the amount is credited.
+                     				 
+                     <ul>
+                        <li>The team level method <code>participate</code> in line 2 uses declared lifting (see <a href="s2.html#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting"
+                              class="sect">&sect;2.3.2</a>) 
+                           to allow the passed <code>Account</code> object to participate the bonus system provided by the 
+                           <code>SpecialConditions</code> team.
+                           	
+                        </li>
+                        <li>The base guard in line 4 uses the reflective method <code>hasRole</code> to check whether the base object already has a role 
+                           	of type <code>BonusAccount</code> in the surrounding team. The expression <code>BonusAccount.class</code> returns 
+                           	the <code>java.lang.Class</code> object representing the role <code>BonusAccount</code> 
+                           	(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                              class="ext">JLS &sect;15.8.2</a>). 
+                           	This guard ensures, that only accounts explicitly registered via <code>participate</code> are ever decorated with a role of type <code>BonusAccount</code>.
+                           
+                        </li>
+                        <li>The method binding guard in line 10 restricts the callin to <code>creditBonus</code> to calls where 
+                           					the base method argument <code>amount</code> is greater than 1000.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s6.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Behavioral reflection</span></h4>
+                  <p>The following reflective methods defined in org.objectteams.ITeam can be used to
+                     			   inspect the dynamic behavior of a team:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>boolean isExecutingCallin () ;</code></dt>
+                     <dd>This method is used to inspect whether a control flow has already been intercepted by at least one callin binding of the current
+                        team. 
+                        					It can be used to avoid undesirable re-entrance to a team.
+                        				
+                     </dd>
+                     <dt><code>boolean isActive () ;</code></dt>
+                     <dd>This method checks whether the team instance is active for the current thread.
+                        				
+                     </dd>
+                     <dt><code>boolean isActive ( Thread aThread ) ;</code></dt>
+                     <dd>This method checks whether the team instance is active for the thread <code>aThread</code>.
+                        				
+                     </dd>
+                  </dl>
+               </div>
+               <div class="subsect depth3" id="s6.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Class literals for roles</span></h4>
+                  <p>The Java syntax for so-called class literals, <code>MyClass<strong>.class</strong></code> 
+                     		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                        class="ext">JLS &sect;15.8.2</a>) 
+                     		can be used for role types with slightly changed semantics: Role types are virtual types (<a href="s1.html#s1.3.1"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>) 
+                     		that are bound dynamically  (<a href="s1.html#s1.3.1.e"
+                        title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                        class="sect">&sect;1.3.1.(e)</a>). This applies to role class literals, too. 
+                     		From this follows the constraint that a role class literal can only be used within the non-static context of a team, 
+                     		ie., for evaluating a role class literal an enclosing team instance must be in scope.
+                     		<br />
+                     Unlike regular type checking for role types, the class literal itself does not have a dependent type. 
+                     Thus type checking of calls to methods like <code>hasRole(Object, Class)</code> cannot detect, whether the <code>Class</code> instance 
+                     has actually been obtained from the correct team instance. Any attempt to pass a class that is not known 
+                     as a bound role within the given team results in an <code>IllegalArgumentException</code> at run-time.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s6.2">
+               <h2 class="sect">&sect;6.2&nbsp;Other API Elements<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;6</a></span></h2>
+               <div class="subsect depth3" id="s6.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Interfaces for role encapsulation</span></h4>
+                  <p>A set of pre-defined types exist that do <span class="underline">not</span> extend <code>java.lang.Object</code>
+                     			and have <span class="underline">no</span> features except the operators <code>==</code> and <code>!=</code>.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     				The JLS defines that each interface declares all methods defined in <code>java.lang.Object</code> 
+                     				(<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#32392"
+                        class="ext">JLS &sect;9.2</a>) 
+                     				and also each object referenced by an interface type can be widened to <code>java.lang.Object</code>.
+                     				Compilers commonly implement this by declaring <code>java.lang.Object</code> the super-type of all interfaces.
+                     				Such implementation has no visible difference with respect to the more complex definition in the JLS.
+                     			
+                  </div>
+                  <p>These predefined types are
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>org.objectteams.IConfined</code></dt>
+                     <dd>regular interface</dd>
+                     <dt><code>org.objectteams.ITeam.IConfined</code></dt>
+                     <dd>role interface</dd>
+                     <dt><code>org.objectteams.Team.Confined</code></dt>
+                     <dd>role class</dd>
+                  </dl>
+                  <p>These types provide no new functionality but inheriting from these types influences the semantics with respect to encapsulation.
+                     
+                     		The purpose and usage of these types is described in <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Interface for explicit lowering</span></h4>
+                  <p>The following role interface exists for the purpose of allowing explicit lowering:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>org.objectteams.ITeam.ILowerable</code></dt>
+                     <dd>role interface</dd>
+                  </dl>
+                  <p>This interface was introduced in detail in <a href="s2.html#s2.2.d" title="&sect;2.2.(d)&nbsp;Explicit lowering"
+                        class="sect">&sect;2.2.(d)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Team activation methods</span></h4>
+                  <p>Every team can be activated and deactivated by predefined methods of the interface <code>org.objectteams.ITeam</code>.
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>activate()</code> and <code>activate(Thread th)</code></dt>
+                     <dd>Methods for activation of a team</dd>
+                     <dt><code>deactivate()</code> and <code>deactivate(Thread th)</code></dt>
+                     <dd>Methods for deactivation of a team</dd>
+                  </dl>
+                  <p>The usage of these Methods is described in <a href="s5.html#s5.2.b" title="&sect;5.2.(b)&nbsp;Imperative activation"
+                        class="sect">&sect;5.2.(b)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Exceptions</span></h4>
+                  <p>The following <code>Exceptions</code> can be thrown during the execution of an ObjectTeam/Java program:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>ResultNotProvidedException</code></dt>
+                     <dd>Thrown if a replace callin without a base call does not provide the necessary (primitive type) base result 
+                        					(see <a href="s4.html#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                           class="sect">&sect;4.3.(e)</a>).
+                     </dd>
+                     <dt><code>LiftingFailedException</code></dt>
+                     <dd>Thrown if an actual ambiguity occurs during lifting (see <a href="s2.html#s2.3.4.c" title="&sect;2.3.4.(c)&nbsp;Actual ambiguity"
+                           class="sect">&sect;2.3.4.(c)</a>).
+                     </dd>
+                     <dt><code>WrongRoleException</code></dt>
+                     <dd>Thrown during lifting if the base object has, with respect to the same team instance, previously been lifted 
+                        					to a role type that is not conform to the currently requested type 
+                        					(see <a href="s2.html#s2.3.4.d" title="&sect;2.3.4.(d)&nbsp;Mismatching role"
+                           class="sect">&sect;2.3.4.(d)</a> and <a href="s2.html#s2.4.3"
+                           title="&sect;2.4.3&nbsp;Role creation in the presence of smart lifting"
+                           class="sect">&sect;2.4.3</a>).
+                     </dd>
+                     <dt><code>DuplicateRoleException</code></dt>
+                     <dd>Thrown during explicit role creation, if a new role is created for a base object, which already has a role 
+                        					of the required type in the given team (see <a href="s2.html#s2.4.1.c"
+                           title="&sect;2.4.1.(c)&nbsp;Duplicate role runtime check"
+                           class="sect">&sect;2.4.1.(c)</a>).
+                     </dd>
+                     <dt><code>RoleCastException</code></dt>
+                     <dd>Thrown during cast of an externalized role, if the casted expression is anchored to a different team instance 
+                        					than the cast type (see <a href="s1.html#s1.2.4.b" title="&sect;1.2.4.(b)&nbsp;Casting" class="sect">&sect;1.2.4.(b)</a>).
+                     </dd>
+                     <dt><code>LiftingVetoException</code></dt>
+                     <dd>This exception is used internally to abort the process of lifting when a relevant guard predicate (<a href="s5.html#s5.4" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) evaluated to false. 
+                        					Such exceptions thrown from generated code will never appear in client code, so there is usually no need to catch a <code>LiftingVetoException</code>.
+                        					However, in some situations it is useful to explicitly <em>throw</em> a <code>LiftingVetoException</code> from a lifting constructor (<a href="s2.html#s2.3.1.b"
+                           title="&sect;2.3.1.(b)&nbsp;Default lifting constructor"
+                           class="sect">&sect;2.3.1.(b)</a>) of a role.
+                        					This style allows to abort lifting even after the lifting constructor has started to work and also for method parameters
+                        requiring lifting.
+                        					If lifting was triggered due to a callin method binding, this binding will simply not trigger if a <code>LiftingVetoException</code> is thrown
+                        					while preparing the call to the role method.
+                     </dd>
+                  </dl>
+               </div>
+               <div class="subsect depth3" id="s6.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role migration</span></h4>
+                  <p>The following interfaces can be used to enable role migration:</p>
+                  <dl>
+                     <dt><code>IBaseMigratable</code></dt>
+                     <dd>This interface declares a method
+                        <div class="listing plain"><pre>
+    <code>&lt;B&gt; <b>void</b> migrateToBase(B otherBase)</code> </pre></div>
+                        					and instructs the compiler to generate an implementation of this method 
+                        					for any bound role declaring <code>IBaseMigratable</code> as its super-interface.<br />
+                        					The effect of calling <code>migrateToBase</code> on a role instance is to re-bind this role to a new base instance.
+                        					The base instance must be compatible to the role's base class (in order to avoid problems during lifting the
+                        					compiler may require the base to be of the exact type of the role's base class).
+                        					Passing <code>null</code> to this method causes an <code>NullPointerException</code> to be thrown.
+                     </dd>
+                     <dt><code>ITeamMigratable</code></dt>
+                     <dd>This interface declares a method 
+                        <div class="listing plain"><pre>
+    <code>&lt;R&gt; R&lt;@otherTeam&gt; migrateToTeam(<b>final</b> ITeam otherTeam)</code></pre></div> 
+                        					and instructs the compiler to
+                        					generate an implementation of this method for any role declaring <code>ITeamMigratable</code> as its super-interface.<br />
+                        					The effect of calling <code>migrateToTeam</code> on a role instance is to re-bind this role to become a contained part of a new team instance.
+                        					The team instance must be of the exact type of the role's enclosing team.
+                        					Passing <code>null</code> to this method causes a <code>NullPointerException</code> to be thrown.<br /><div class="note">
+                           <h5>Caveat:</h5>
+                           					This method intentionally breaks the rules of family polymorphism: any reference <code>R&lt;@previousTeam&gt; r</code>
+                           					which was established before migration will incorrectly imply that the role's enclosing team still is <code>previousTeam</code>,
+                           					which is no longer true after migration.
+                           					While this does not effect any method lookup (which is still safe), further assumptions based on a role's dependent type
+                           					are invalidated by team migration. The same holds for references from the migrating role to any sibling role instances.<br />
+                           					If the rules of family polymorphism should be maintained one should just refrain from declaring <code>ITeamMigratable</code>
+                           					as a role's super-interface.
+                        </div>
+                     </dd>
+                  </dl>
+                  <p>For both methods the signature declared in the interface is over-generalized, yet the compiler performs the necessary checks
+                     to
+                     			   ensure that role, base and team instances are indeed compatible and additionally the return type of <code>migrateToTeam</code>
+                     			   is checked as a self-type, i.e., it reflects the exact type of the call target.
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.html" rel="prev">&lt;&lt;&nbsp;&sect;5&nbsp;Team Activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.html" rel="next">&sect;7&nbsp;Role Encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s7.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s7.html
new file mode 100644
index 0000000..18f529e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s7.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.html" rel="prev">&lt;&lt;&nbsp;&sect;6&nbsp;Object Teams API</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.html" rel="next">&sect;8&nbsp;Join Point Queries&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s7">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;7&nbsp;Role Encapsulation</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s7.html">&sect;7&nbsp;Role Encapsulation</a></li>
+                  <li><a href="#s7.1">&sect;7.1&nbsp;Opaque roles</a></li>
+                  <li><a href="#s7.2">&sect;7.2&nbsp;Confined roles</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Concepts of encapsulation</h3>
+               <div class="line"></div>
+               <div class="term">Protected roles</div>
+               <div class="termdesc">A role with visibility <code>protected</code> cannot be externalized, which means its type 
+                  				cannot be used outside the declaring team (<a href="s1.html#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Confined roles</div>
+               <div class="termdesc">Confined roles are encapsulated even stricter than protected roles: the compiler will ensure that 
+                  				by no means any object outside the enclosing team will ever have a reference to a confined role.
+               </div>
+               <div class="line"></div>
+               <div class="term">Opaque roles</div>
+               <div class="termdesc">Opaque roles build on the guarantees of confined roles but allow to be shared in a limited way such that
+                  				no information is exposed.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s7.1">
+               <h2 class="sect">&sect;7.1&nbsp;Opaque roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;7</a></span></h2>
+               <p>The purpose of the two <code>IConfined</code> interfaces (see <a href="s6.html#s6.2.a"
+                     title="&sect;6.2.(a)&nbsp;Interfaces for role encapsulation"
+                     class="sect">&sect;6.2.(a)</a>) is to define
+                  <strong>opaque roles</strong>: Any role implementing <code>IConfined</code>
+                  can be externalized using this type, such that external clients
+                  cannot access any features of the role. The type <code>IConfined</code>
+                  exposes no features and references of this type cannot be widened
+                  to any type not even to <code>java.lang.Object</code>.
+                  <br />
+                  If the actual role type is furthermore invisible outside the team 
+                  (by not declaring it <code>public</code>), it is perfectly safe to externalize
+                  such roles using type <code>IConfined</code> (which is a public interface)
+                  and pass them back to the owning team. The encapsulation
+                  of the team is in no way breached by externalizing opaque roles,
+                  which can only be used as a handle into internal state of the team.
+                  	
+               </p>
+               <p>The difference between the two mentioned interfaces is that
+                  <code>ITeam.IConfined</code> requires to use this type or any subtype
+                  as externalized role. Such a reference contains the information of
+                  the enclosing team. Even stricter control can be imposed using the
+                  regular interface <code>IConfined</code>. Here not even team membership
+                  is visible to clients using a reference of this type.
+                  	
+               </p>
+            </div>
+            <div class="sect depth2" id="s7.2">
+               <h2 class="sect">&sect;7.2&nbsp;Confined roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;7</a></span></h2>
+               <p>
+                  			Subclassing <code>Team.Confined</code> with a protected class
+                  			yields a role class to which no object outside the team will
+                  			ever have a reference. 
+                  			The point here is that instances of a role class with a regular super class 
+                  			can be widened to this super class.
+                  			Widening can occur either in an assignment or when invoking a method which the role
+                  			inherits from the regular super class, where the <code>this</code> reference is widened.
+                  			In both cases the widened reference is no longer protected by the team and can leak out.
+                  This would break encapsulation of a role object that should only be accessible within the enclosing team.<br />
+                  			Subclasses of <code>Team.Confined</code> are not compatible to any class outside their enclosing team (including <code>java.lang.Object</code>) and do not inherit any methods
+                  			that have the danger of leaking <code>this</code>.
+                  		
+               </p>
+               <div class="subsect depth3" id="s7.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Inhibition of overriding</span></h4>
+                  <p>The types <code>ITeam.IConfined</code> and <code>Team.Confined</code>
+                     			cannot be overridden (cf. <a href="s1.html#s1.3.1.c"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s7.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Arrays of Confined</span></h4>
+                  <p>For any confined type <code>C</code>, i.e., a type which is not compatible to <code>Object</code>, an array of <code>C</code> is not compatible to an array of <code>Object</code> nor to <code>Object</code> itself. This rule ensures that confinement cannot be bypassed by a sequence of compatible assignments and casts.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Upcoming:</h5>
+                     				Only by widening to a non-role super-type, a role instance can
+                     				be accessed from outside the team. In the future this can be inhibited by
+                     				restricted inheritance.
+                     			
+                  </div>
+               </div>
+               <h5 class="listing">Example code (Role Encapsulation):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> Company {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>private</b> HashMap&lt;String,Employee&gt; employees;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>protected</b> <b>class</b> Employee <em><b>implements</b> IConfined</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>void</b> pay(<b>int</b> amount) { ... }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  <b>public</b> <em>IConfined</em> getEmployee(String ID) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    <b>return</b> employees.get(ID); <span class="comment">// implicit widening to IConfined</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  <b>public</b> <b>void</b> payBonus(<em>IConfined</em> emp, <b>int</b> amount) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>    ((Employee)emp).pay(amount); <span class="comment">// explicit narrowing</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre><b>public</b> <b>class</b> Ma<b>in</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>  <b>public</b> <b>static</b> <b>void</b> main(String[] args) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>    <b>final</b> Company comp = <b>new</b> Company();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>    <em>IConfined</em>&lt;@comp&gt; emp = comp.getEmployee("emp1");</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>    <span class="comment">// System.out.println(emp); &lt;– <span class="error"><strong>forbidden!</strong></span></span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>    comp.payBonus(emp, 100);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>The <code>protected</code> role <code>Employee</code> implements 
+                        					the above described interface <code>IConfined</code> and therefore 
+                        					becomes <strong>opaque</strong> (line 4). 
+                     </li>
+                     <li>Methods sharing such an opaque role with the outside of the enclosing team 
+                        					have to use the type <code>IConfined</code> (line 8, line 11).
+                     </li>
+                     <li>It is possible to obtain an instance of such a role by using the type <code>IConfined</code> (line 18).
+                     </li>
+                     <li>Trying to access any feature of this instance, for example <code>toString()</code>, 
+                        					will cause a compilation error (line 19).
+                     </li>
+                     <li>Passing the opaque role reference back into the team works well (line 20).</li>
+                     <li>Inside the team some conversions between the types <code>IConfined</code> 
+                        					and the intrinsic role type <code>Employee</code> may be necessary (line 9 and 12).
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.html" rel="prev">&lt;&lt;&nbsp;&sect;6&nbsp;Object Teams API</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.html" rel="next">&sect;8&nbsp;Join Point Queries&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s8.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s8.html
new file mode 100644
index 0000000..a0afac2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s8.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s7.html" rel="prev">&lt;&lt;&nbsp;&sect;7&nbsp;Role Encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.html" rel="next">&sect;9&nbsp;Value Dependent Classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s8">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;8&nbsp;Join Point Queries</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s8.html">&sect;8&nbsp;Join Point Queries</a></li>
+                  <li><a href="#s8.1">&sect;8.1&nbsp;Join point queries</a></li>
+                  <li><a href="#s8.2">&sect;8.2&nbsp;Query expressions</a></li>
+                  <li><a href="#s8.3">&sect;8.3&nbsp;OT/J meta model</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Defining sets of join points for interception</h3>
+               <div class="line"></div>
+               <div class="term">join point</div>
+               <div class="termdesc">In OT/J a join point is considered to be an element
+                  of the program. A meta model exists which defines the <strong>kinds</strong> 
+                  of join points that can be identified.
+               </div>
+               <div class="line"></div>
+               <div class="term">join point interception</div>
+               <div class="termdesc">The purpose of identifying join points is to intercept program execution at these points 
+                  				by means of <em>callin</em> bindings.
+               </div>
+               <div class="line"></div>
+               <div class="term">join point query</div>
+               <div class="termdesc">Sets of join points are defined using functional queries of the program's reflective representation.</div>
+               <div class="line"></div>
+               <div class="term"><i>pointcuts</i></div>
+               <div class="termdesc">Dynamic "pointcuts" comparable to AspectJ's <code>cflow</code> or even the Trace-Matches approach 
+                  				are not subject to the join point language of OT/J. These features will be added at a different level 
+                  				of abstraction. Note, that guard predicates (<a href="s5.html#s5.4" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) subsume the dynamic 
+                  				capabilities of the pointcuts <code>if, target, this, args</code>.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s8.1">
+               <h2 class="sect">&sect;8.1&nbsp;Join point queries<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+               <p><strong><em>This section will describe the query language used to define sets
+                        	of join points. As of version 1.4.0 of the OTDT this query language is not yet supported.</em></strong></p>
+            </div>
+            <div class="sect depth2" id="s8.2">
+               <h2 class="sect">&sect;8.2&nbsp;Query expressions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+            </div>
+            <div class="sect depth2" id="s8.3">
+               <h2 class="sect">&sect;8.3&nbsp;OT/J meta model<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s7.html" rel="prev">&lt;&lt;&nbsp;&sect;7&nbsp;Role Encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.html" rel="next">&sect;9&nbsp;Value Dependent Classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s9.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s9.html
new file mode 100644
index 0000000..1f1f77b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s9.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s8.html" rel="prev">&lt;&lt;&nbsp;&sect;8&nbsp;Join Point Queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.html" rel="next">&sect;A&nbsp;OT/J Syntax&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="s9">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;9&nbsp;Value Dependent Classes</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s9.html">&sect;9&nbsp;Value Dependent Classes</a></li>
+                  <li><a href="#s9.1">&sect;9.1&nbsp;Defining classes with value parameters</a></li>
+                  <li><a href="#s9.2">&sect;9.2&nbsp;Using classes with value parameters</a></li>
+                  <li><a href="#s9.3">&sect;9.3&nbsp;Restrictions and limitations</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Generalizing externalized roles</h3>
+               <div class="line"></div>
+               <div class="term">Type Value Parameter</div>
+               <div class="termdesc">In addition to regular generics, a class may declare parameters that represent an object value. 
+                  				Such a value parameter is called the <strong>type anchor</strong> for this class, 
+                  				the class's type is said to be <strong>anchored</strong> to this parameter.
+               </div>
+               <div class="line"></div>
+               <div class="term">Value Dependent Classes</div>
+               <div class="termdesc">A class that declares one or more value parameters depends on the 
+                  				runtime instance(s) denoted by its anchor(s).
+               </div>
+               <div class="line"></div>
+               <div class="term">Externalized Roles</div>
+               <div class="termdesc">The concept of externalized roles (<a href="s1.html#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles"
+                     class="sect">&sect;1.2.2</a>) 
+                  				is a special case of the concepts presented here.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s9.1">
+               <h2 class="sect">&sect;9.1&nbsp;Defining classes with value parameters<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.9.1" title="&sect;A.9.1&nbsp;TypeParameter" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.1</a></div>
+               <div class="subsect depth3" id="s9.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Value parameter declaration</span></h4>
+                  <p>Within the angle brackets that mark the parameters of a generic class also value parameters 
+                     		can be declared. In contrast to a type parameter, a value parameter is denoted as a pair 
+                     		of two identifiers: a type and a free name, e.g., 
+                     			
+                  </p>
+                  <div class="listing plain"><pre><b>class</b> MyClass<em>&lt;YourType aName&gt;</em> { ...</pre></div>
+                  <p>Note that value parameters are valid for classes only, not for interfaces.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Value parameter application</span></h4>
+                  <p>Within the given class (<code>MyClass</code>) the parameter name (<code>aName</code>) can be used 
+                     		like a final field of the given type (<code>YourType</code>). In contrast to regular final fields 
+                     		the assignment to this name occurs even before the constructor is executed.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Role types as dependent types</span></h4>
+                  <p>Any role type can be interpreted as a value dependent type, however, in the declaration 
+                     		of a role type the value parameter remains implicit: it is identical to the enclosing team instance.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s9.2">
+               <h2 class="sect">&sect;9.2&nbsp;Using classes with value parameters<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+               <p>When using a class which declares one or more value parameters (type anchors) 
+                  	a corresponding <strong>anchor value</strong> has to be provided.
+                  		
+               </p>
+               <div class="sect depth3" id="s9.2.1">
+                  <h3 class="sect">&sect;9.2.1&nbsp;Parameter substitution<span class="toplink"><a href="#s9.2">&uarr;&nbsp;&sect;9.2</a></span></h3>
+                  <p>Substitution of a type anchor of a class <code>MyClass&lt;YourType p&gt;</code> is denoted as 
+                     		<code>MyClass&lt;@v&gt;</code>.
+                     	In this term <code>v</code> must be a value which is conform to the declaration of the value 
+                     	parameter "<code>YourType p</code>", ie., <code>v</code> must have the static type <code>YourType</code>.
+                     	<br />
+                     The value passed for substituting a type anchor must be a path of variables declared as <code>final</code>.
+                     Obviously, only the first element in such a path can be a local variable or a method argument, 
+                     all other elements have to be fields. The reason for requiring final variables is 
+                     in type checking as discussed next.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     				Externalized roles as defined in <a href="s1.html#s1.2.2.b"
+                        title="&sect;1.2.2.(b)&nbsp;Declaration with anchored type"
+                        class="sect">&sect;1.2.2.(b)</a> are 
+                     				a special case of types with a value parameter, where the value 
+                     				is an instance of the enclosing team.
+                     			
+                  </div>
+                  <div class="subsect depth4" id="s9.2.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Instance constrained type parameters</span></h4>
+                     <p>In addition to normal usage, a value parameter can be applied nested to a regular type parameter:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>class</b> MyClass&lt;YourType aName, DependentParam&lt;<em>@aName&gt;</em>&gt; { ...</pre></div>
+                     <p>
+                        					Here the type parameter <code>DependentParam</code> is constrained to be anchored to <code>aName</code>.
+                        				
+                     </p>
+                     <p>If a value parameter is used as a constraint for a regular type parameter 
+                        					any substitution for the type parameter must also supply a value matching the value parameter. 
+                        				    The class from above could be applied like this:				    
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>final</b> YourType anchor = <b>new</b> YourType();
+MyClass <em>&lt;anchor, YourDependent&lt;<strong>anchor</strong>&gt;&gt;</em></pre></div>
+                     <p>Within the declaring element (class or method)
+                        				   applications of the type variable representing the instance constrained type parameter 
+                        				   must repeat the anchor verbatim, i.e., no substitutions are performed here. 
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s9.2.2">
+                  <h3 class="sect">&sect;9.2.2&nbsp;Type conformance<span class="toplink"><a href="#s9.2">&uarr;&nbsp;&sect;9.2</a></span></h3>
+                  <p>Two value dependent types (anchored types) are considered conform only if the anchors 
+                     		of both types refer to <i>the same object(s)</i>.  The compiler must be able to statically 
+                     		analyze this anchor identity.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s9.2.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                     <p>Only two substitutions are considered for determining anchor identity:
+                        				
+                     </p>
+                     <ol>
+                        <li>If a method signature uses <code>this</code> as the anchor of any of its types, 
+                           		type checking an application of this method performs the following substitutions:
+                           		<br />
+                           A simple <code>this</code> expression is substituted by the actual call target 
+                           of the method application.
+                           <br />
+                           A qualified <code>Outer.this</code> expression is substituted by the corresponding 
+                           enclosing instance of the call target.
+                        </li>
+                        <li>Assignments from a <code>final</code> identifier to another <code>final</code> 
+                           					identifier are transitively followed, i.e., if <code>t1, t2</code> are final, 
+                           					after an assignment <code>t1=t2</code> the types <code>C&lt;@t1&gt;</code> and 
+                           					<code>C&lt;@t2&gt;</code> are considered identical. Otherwise <code>C&lt;@t1&gt;</code> 
+                           					and <code>C&lt;@t2&gt;</code> are incommensurable.
+                           					<br />
+                           Attaching an actual parameter to a formal parameter in a method call is also considered 
+                           as an assignment with respect to this rule.
+                        </li>
+                     </ol>
+                  </div>
+                  <div class="subsect depth4" id="s9.2.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Conformance of raw types</span></h4>
+                     <p>After anchors have been proven identical, the raw types are checked for compatibility 
+                        			using the standard Java rules.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s9.3">
+               <h2 class="sect">&sect;9.3&nbsp;Restrictions and limitations<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="subsect depth3" id="s9.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">No overriding</span></h4>
+                  <p>Types with value parameters that are declared outside a team cannot be overridden, 
+                     		as roles can be. Therefor, implicit inheritance does not apply for these types.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Only first parameter</span></h4>
+                  <div class="note">
+                     <p>Currently only the first parameter of a class may be a value parameter. 
+                        				This restriction may be removed in the future.
+                     </p>
+                  </div>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s8.html" rel="prev">&lt;&lt;&nbsp;&sect;8&nbsp;Join Point Queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.html" rel="next">&sect;A&nbsp;OT/J Syntax&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sA.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sA.html
new file mode 100644
index 0000000..14a76ab
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sA.html
@@ -0,0 +1,507 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.html" rel="prev">&lt;&lt;&nbsp;&sect;9&nbsp;Value Dependent Classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.html" rel="next">&sect;B&nbsp;Changes between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="chapter" id="sA">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;A&nbsp;OT/J Syntax</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="sA.html">&sect;A&nbsp;OT/J Syntax</a></li>
+                  <li><a href="#sA.0">&sect;A.0&nbsp;Keywords</a></li>
+                  <li><a href="#sA.1">&sect;A.1&nbsp;Class definitions</a></li>
+                  <li><a href="#sA.2">&sect;A.2&nbsp;Modifiers</a></li>
+                  <li><a href="#sA.3">&sect;A.3&nbsp;Method bindings</a></li>
+                  <li><a href="#sA.4">&sect;A.4&nbsp;Parameter mappings</a></li>
+                  <li><a href="#sA.5">&sect;A.5&nbsp;Statements</a></li>
+                  <li><a href="#sA.6">&sect;A.6&nbsp;Types</a></li>
+                  <li><a href="#sA.7">&sect;A.7&nbsp;Guard predicates</a></li>
+                  <li><a href="#sA.8">&sect;A.8&nbsp;Precedence declaration</a></li>
+                  <li><a href="#sA.9">&sect;A.9&nbsp;Value dependent types</a></li>
+                  <li><a href="#sA.10">&sect;A.10&nbsp;Packages and imports</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notation</h3>
+               <p>The following grammar rules extend the Java grammar given in the 
+                  	<a href="http://java.sun.com/docs/books/jls/second_edition/html/syntax.doc.html"
+                     class="ext">Java Language Specification</a>.
+                  	We adopt the conventions of printing non-terminal symbols in italic font
+                  	(e.g., <tt><em>ClassDeclaration</em></tt>), 
+                  	and terminal symbols in roman font (e.g., <tt>class</tt>).
+                  	Names printed in black refer to definitions from the original Java grammar.
+                  	Object Teams additions are printed in <strong class="blue">blue boldface</strong>.
+                  	For those rules that simply add a new option to an existing rule,
+                  	the original options are indicated by an ellipse (<code>...</code>).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="sA.0">
+               <h2 class="sect">&sect;A.0&nbsp;Keywords<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The keywords introduced by OT/J have different scopes, which means outside their
+                  	given scope these keywords can be used for regular identifiers. Only these names
+                  	are keywords unconditionally:
+                  		
+               </p>
+               <div class="listing plain"><pre>readonly, team, within</pre></div>
+               <div class="sect depth3" id="sA.0.1">
+                  <h3 class="sect">&sect;A.0.1&nbsp;Scoped keywords<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>The following names are keywords in OT/J only if they appear within a team or role class, 
+                     		ie., after the keyword <strong class="blue">team</strong> has been recognized:
+                     			
+                  </p>
+                  <div class="listing plain"><pre>as, base, callin, playedBy, precedence, tsuper, with, when</pre></div>
+                  <p>These names are keywords only in the context of a callin or callout binding 
+                     		respectively (<a href="#sA.3" title="&sect;A.3&nbsp;Method bindings" class="sect">&sect;A.3</a>):
+                     			
+                  </p>
+                  <div class="listing plain"><pre>after, before, replace, get, set</pre></div>
+               </div>
+               <div class="sect depth3" id="sA.0.2">
+                  <h3 class="sect">&sect;A.0.2&nbsp;Inheriting scoped keywords<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>While regular Java classes may use the scoped keywords 
+                     		(<a href="#sA.0.1" title="&sect;A.0.1&nbsp;Scoped keywords" class="sect">&sect;A.0.1</a>) of OT/J freely, it is an error if a role class 
+                     		inherits a feature whose name is a scoped keyword.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="sA.0.3">
+                  <h3 class="sect">&sect;A.0.3&nbsp;Internal names<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>Compiler and runtime environment generate internal methods and fields which start with 
+                     		the prefix <code>_OT$</code>. It is illegal to use any of these methods and fields within client code.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.1">
+               <h2 class="sect">&sect;A.1&nbsp;Class definitions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>Class definitions add two new keywords <code>team</code> and
+                  	<code>playedBy</code>. Classes which use these keywords are called
+                  	<strong>teams</strong> and <strong>bound roles</strong>, respectively.
+                  	Any class that inherits from a bound role class (either by an 
+                  	<code>extends</code> clause or by implicit inheritance, cf. 
+                  	<a href="s1.html#s1.3.1.c"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>) is again a bound role class.
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.1.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.1.1</td>
+                     <td class="rule"><span class="title">ClassDeclaration</span><br /><em>[Modifiers] </em><strong class="blue"><em>[</em>team<em>]</em></strong> class <em>Identifier [</em>extends <em>Type] [</em>implements <em>TypeList]</em><br /><span class="indent5"></span><strong class="blue"><em>[</em>playedBy <em>Type] [Guard]</em></strong><em> ClassBody</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>A class which has a <code>playedBy</code> clause (a <strong>bound
+                           					role</strong> class) may not be declared static and 
+                        					must be directly contained in a class that has the 
+                        					<code>team</code> modifier (a <strong>team</strong> class).
+                     </li>
+                     <li>A class which inherits from a team class must have the
+                        					<code>team</code> modifier, too.
+                     </li>
+                     <li>A class which has a guard (see <a href="s5.html#s5.4" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) 
+                        					must be a team or a role.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.2">
+               <h2 class="sect">&sect;A.2&nbsp;Modifiers<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The rule for method modifiers adds one keyword: <code>callin</code>:
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.2.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.2.1</td>
+                     <td class="rule"><span class="title">Modifier</span><br />... <br /><strong class="blue">callin</strong></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The class of a method which has the <code>callin</code> modifier 
+                        					may not be declared static and must be directly contained in a team class.
+                     </li>
+                     <li>A method that has the <code>callin</code> modifier may not
+                        					appear in an explicit method call (rule Apply in JLS).
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.3">
+               <h2 class="sect">&sect;A.3&nbsp;Method bindings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The rule of items declarable in a class body is augmented by method 
+                  		   bindings:
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.3.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.1</td>
+                     <td class="rule"><span class="title">ClassBodyDeclaration</span><br />... <br /><strong class="blue"><em>CalloutBinding</em></strong><br /><strong class="blue"><em>CallinBinding</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.2</td>
+                     <td class="rule"><span class="title">CalloutBinding</span><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind MethodSpec CalloutParameterMappings</strong></em><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind CalloutModifier FieldSpec</strong></em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.3</td>
+                     <td class="rule"><span class="title">Callin binding</span><br /><em>[ Identifier </em>:<em> ] [TypeArguments]</em><strong class="blue"><em> MethodSpec</em> &lt;- <em>CallinModifier MethodSpecs </em><br /><span class="indent5"></span>
+                           			[<em>Guard</em>]<em> CallinParameterMappings</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.4</td>
+                     <td class="rule"><span class="title">MethodSpec</span><br /><em>Identifier</em><br /><em>ResultType MethodDeclarator</em></td>
+                  </tr>
+               </table>
+               <div class="note">
+                  			Note, that <em>ResultType</em> and <em>MethodDeclarator</em> are not explicit in the 
+                  			overall syntax of the Java language specification. For convenience we refer to the definition in 
+                  			section <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40420"
+                     class="ext">8.4. Method Declarations</a> 
+                  			of the Java language specification.
+                  		
+               </div>
+               <table class="syntaxrule" id="sA.3.5">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.5</td>
+                     <td class="rule"><span class="title">MethodSpecs</span><br /><strong class="blue"><em>MethodSpec [</em>, <em>MethodSpecs]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.6">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.6</td>
+                     <td class="rule"><span class="title">CalloutKind</span><br /><strong class="blue">-&gt;<br />=&gt;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.7">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.7</td>
+                     <td class="rule"><span class="title">CallinModifier</span><br /><strong class="blue">before</strong><br /><strong class="blue">after</strong><br /><strong class="blue">replace</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.8">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.8</td>
+                     <td class="rule"><span class="title">CalloutModifier</span><br /><strong class="blue">get</strong><br /><strong class="blue">set</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.9">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.9</td>
+                     <td class="rule"><span class="title">FieldSpec</span><br /><em>[Type] Identifier</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li><code>CalloutBinding</code>s and <code>CallinBinding</code>s
+                        					may occur only in bound role classes.
+                     </li>
+                     <li>A <code>CalloutBinding</code> or <code>CallinBinding</code> 
+                        					may not mix identifiers and full signatures (<code>MethodDeclarationHead</code>) 
+                        					for its method specifiers (<code>MethodSpec</code>).
+                        					<br />
+                        					Binding a full method signature to a field requires the <code>FieldSpec</code>
+                        					to include the <code>Type</code>.
+                     </li>
+                     <li>The method specifier at the left hand side of a 
+                        					<code>CallinBinding</code> which has the <code>replace</code> modifier 
+                        					must refer to a method that has the <code>callin</code> modifier.
+                     </li>
+                     <li>The <code>Modifier</code> of a callout binding can only be one of the visility
+                        					modifiers <code>public</code>, <code>protected</code> or <code>private</code>. 
+                        					A short callout binding (i.e., without signatures) must not specify 
+                        					a visibility modifier.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.4">
+               <h2 class="sect">&sect;A.4&nbsp;Parameter mappings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.4.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.1</td>
+                     <td class="rule"><span class="title">CalloutParameterMappings</span><br /><strong class="blue">with { <em>CalloutParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.2</td>
+                     <td class="rule"><span class="title">CallinParameterMappings</span><br /><strong class="blue">with { <em>CallinParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.3</td>
+                     <td class="rule"><span class="title">CalloutParameterMappingList</span><br /><strong class="blue"><em>CalloutParameterMapping [</em>,<em> CalloutParameterMappingList]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.4</td>
+                     <td class="rule"><span class="title">CallinParameterMappingList</span><br /><strong class="blue"><em>CallinParameterMapping [</em>,<em> CallinParameterMappingList]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.5">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.5</td>
+                     <td class="rule"><span class="title">CalloutParameterMapping</span><br /><em>Expression</em><strong class="blue"> -&gt; </strong><em>Identifier</em><br /><strong class="blue">result &lt;- </strong><em>Expression</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.6">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.6</td>
+                     <td class="rule"><span class="title">CallinParameterMapping</span><br /><em>Identifier</em><strong class="blue"> &lt;- </strong><em>Expression</em><br /><em>Expression</em><strong class="blue"> -&gt; </strong><strong class="blue">result</strong></td>
+                  </tr>
+               </table>
+               <div class="note">
+                  <h5>Note:</h5>
+                  			By defining ";" as an option for parameter mappings, the grammar enforces that
+                  			method bindings without a parameter mapping are terminated by a ";".
+                  			Also method bindings with parameter mappings may optionally be terminated by a ";",
+                  			which in that case is interpreted as an empty member declaration, following the
+                  			same pattern how non-abstract methods in Java may optionally have a trailing ";".
+                  		
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.5">
+               <h2 class="sect">&sect;A.5&nbsp;Statements<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.5.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.1</td>
+                     <td class="rule"><span class="title">Statement</span><br />... <br /><em><strong class="blue">Within</strong><br /><strong class="blue">BaseCall</strong><br /><strong class="blue">TSuperCall</strong></em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.2</td>
+                     <td class="rule"><span class="title">Within</span><br /><strong class="blue">within</strong> ( <em>Expression</em> ) <em>Statement</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.3</td>
+                     <td class="rule"><span class="title">BaseCall</span><br /><strong class="blue">base</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                        			<br /><strong class="blue">base</strong> ( <em>Arguments<sub>opt</sub></em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.4</td>
+                     <td class="rule"><span class="title">TSuperCall</span><br /><strong class="blue">tsuper</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                        			<br /><strong class="blue">tsuper</strong> ( <em>Arguments<sub>opt</sub></em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The expression of a <code>Within</code> must evaluate
+                        	  				to an instance of a team class.
+                     </li>
+                     <li>The first form of a <code>BaseCall</code> may occur only
+                        	  				in the body of a method that has the <code>callin</code> modifier.
+                        	  				The identifier must be the name of the enclosing method.
+                     </li>
+                     <li>The second form of a <code>BaseCall</code> may occur only in a constructor of a 
+                        	  				bound role class.
+                     </li>
+                     <li>The first form of a <code>TSuperCall</code> may occur only in a method of
+                        	  				a role class.
+                     </li>
+                     <li>The second form of a <code>TSuperCall</code> may occur only in a constructor of a 
+                        	  				role class.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.6">
+               <h2 class="sect">&sect;A.6&nbsp;Types<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.6.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.1</td>
+                     <td class="rule"><span class="title">Type</span><br />... <br /><strong class="blue"><em>LiftingType</em></strong><br /><strong class="blue"><em>AnchoredType</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.2</td>
+                     <td class="rule"><span class="title">LiftingType</span><br /><em>Type</em><strong class="blue"> as </strong><em>Type</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.3</td>
+                     <td class="rule"><span class="title">AnchoredType</span><br /><strong class="blue"><em>Path</em></strong>.<em>Type</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.4</td>
+                     <td class="rule"><span class="title">Path</span><br /><em>Identifier</em><br /><strong class="blue"><em>Path</em></strong>.<em>Identifier</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li id="sA.6.a"><span class="title">Location</span><br />
+                        					A <code>LiftingType</code> may only occur in the parameter list 
+                        					of a method of a team class.
+                        				
+                     </li>
+                     <li id="sA.6.b"><span class="title">Role in scope</span><br />
+                        					The right hand side type in a <code>LiftingType</code> 
+                        					must be a class directly contained in the enclosing team class 
+                        					(the class may be acquired by <a href="s1.html#s1.3.1.c"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">implicit inheritance (&sect;1.3.1.(c))</a>).
+                        				
+                     </li>
+                     <li id="sA.6.c"><span class="title">Team path</span><br /><em>Note, that the syntax of &sect;A.6.3/4 is deprecated in favor of <a href="#sA.9" title="&sect;A.9&nbsp;Value dependent types" class="sect">&sect;A.9</a></em>.
+                        					<br />
+                        					The path in an <code>AnchoredType</code> must refer to an instance of a team class. 
+                        					Each identifier in the path must be declared with the <code>final</code> modifier.
+                        				
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.7">
+               <h2 class="sect">&sect;A.7&nbsp;Guard predicates<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.7.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.7.1</td>
+                     <td class="rule"><span class="title">Guard</span><br /><strong class="blue"><em>[</em>base<em>]</em> when</strong> ( <em>Expression</em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.7.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.7.2</td>
+                     <td class="rule"><span class="title">MethodDeclaration</span><br />...<br /><em>MethodHeader <strong class="blue">[Guard]</strong>  MethodBody</em></td>
+                  </tr>
+               </table>
+               <p>Other rules referring to <em><code>Guard</code></em>: 
+                  		   <a href="#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration" class="sect">ClassDeclaration (&sect;A.1.1)</a>, 
+                  <a href="#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">CallinBinding (&sect;A.3.3)</a></p>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The <code>Expression</code> in a guard must have type <code>boolean</code>.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.8">
+               <h2 class="sect">&sect;A.8&nbsp;Precedence declaration<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.8.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.8.1</td>
+                     <td class="rule"><span class="title">PrecedenceDeclaration</span><br /><strong class="blue">precedence</strong><em> CallinNameList</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.8.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.8.2</td>
+                     <td class="rule"><span class="title">CallinNameList</span><br /><em>Name [, CallinNameList]</em></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="sect depth2" id="sA.9">
+               <h2 class="sect">&sect;A.9&nbsp;Value dependent types<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.9.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.9.1</td>
+                     <td class="rule"><span class="title">TypeParameter</span><br /><em>TypeVariable [TypeBound]</em><br /><strong class="blue"><em>ReferenceType Name</em></strong></td>
+                  </tr>
+               </table>
+               <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#108850"
+                     class="ext">JLS 3 &sect;4.4</a></p>
+               <table class="syntaxrule" id="sA.9.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.9.2</td>
+                     <td class="rule"><span class="title">ActualTypeArgument</span><br /><em>ReferenceType</em><br /><em>Wildcard</em><br /><strong class="blue"><em>@Name</em></strong></td>
+                  </tr>
+               </table>
+               <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#107353"
+                     class="ext">JLS 3 &sect;4.5.1</a></p>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li id="sA.9.a"><span class="title">ActualTypeParameter</span><br />
+                        					An <code>ActualTypeArgument</code> of the form  <code>@Name</code> may only occur 
+                        					as a parameter of a simple name type reference.
+                        				
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.10">
+               <h2 class="sect">&sect;A.10&nbsp;Packages and imports<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.10.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.10.1</td>
+                     <td class="rule"><span class="title">PackageDeclaration</span><br />...<br /><strong class="blue">team </strong><em>QualifiedName</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.10.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.10.2</td>
+                     <td class="rule"><span class="title">Import</span><br />...<br /><strong>import </strong><strong class="blue">base </strong><em>QualifiedName</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.html" rel="prev">&lt;&lt;&nbsp;&sect;9&nbsp;Value Dependent Classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.html" rel="next">&sect;B&nbsp;Changes between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sB.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sB.html
new file mode 100644
index 0000000..ee285ea
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sB.html
@@ -0,0 +1,401 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.html" rel="prev">&lt;&lt;&nbsp;&sect;A&nbsp;OT/J Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="chapter" id="sB">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;B&nbsp;Changes between versions</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="sB.html">&sect;B&nbsp;Changes between versions</a></li>
+                  <li><a href="#sB.1">&sect;B.1&nbsp;Paragraphs changed between versions</a></li>
+                  <li><a href="#sB.2">&sect;B.2&nbsp;Additions between versions</a></li>
+               </ul>
+            </div>
+            <div class="sect depth2" id="sB.1">
+               <h2 class="sect">&sect;B.1&nbsp;Paragraphs changed between versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;B</a></span></h2>
+               <div class="subsect depth3" id="sB.1.1">
+                  <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+                  <ul>
+                     <li><a href="s3.html#s3.2.a" title="&sect;3.2.(a)&nbsp;with clause" class="sect">&sect;3.2.(a)</a> :
+                        				<strong>Parameter mappings</strong><p>
+                           				Disallow parameter mappings in a role interface.
+                           			
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> :
+                        				<strong>Replace bindings</strong><p>
+                           				Disallow unsafe use of polymorphism and primitive type conversions.
+                           			
+                        </p>
+                     </li>
+                     <li><a href="s6.html#s6.1.a"
+                           title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                           class="sect">&sect;6.1.(a)</a> :
+                        				<strong>Signatures of reflective methods</strong><p>
+                           					Made two methods generic so that return values can be used without the need of casting.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s7.html#s7.2" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a> :
+                        				<strong>Confined roles</strong><p>
+                           					Improved explanation.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.1.2">
+                  <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+                  <ul>
+                     <li><a href="s1.html#s1.2.1.e" title="&sect;1.2.1.(e)&nbsp;Role features"
+                           class="sect">&sect;1.2.1.(e)</a>:
+                        				<strong>Visibility of role features</strong><p>
+                           					Clarification has been added that a role can always access all the 
+                           					features that its enclosing team has access to.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s2.html#s2.1.2.e"
+                           title="&sect;2.1.2.(e)&nbsp;No free type parameters"
+                           class="sect">&sect;2.1.2.(e)</a>:
+                        				<strong>Generic roles/bases</strong><p>
+                           					Relaxed the rules about generic bound roles. This change also subsumes what previously was a specific restriction in
+                           <a href="s4.html#s4.1.b"
+                              title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                              class="sect">&sect;4.1.(b)</a>.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.html#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                           class="sect">&sect;3.1.(i)</a> and <a href="s3.html#s3.5.f" title="&sect;3.5.(f)&nbsp;Shorthand definition"
+                           class="sect">&sect;3.5.(f)</a>:
+                        				<strong>Visibility of shorthand callout</strong><p>
+                           					A role method defined by a shorthand callout binding can now specify a visibility modifier
+                           					(see also <a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>), 
+                           					otherwise it inherits the visibility modifier of it's bound base method/field.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.html#s3.1.j" title="&sect;3.1.(j)&nbsp;Inferred callout"
+                           class="sect">&sect;3.1.(j)</a> and <a href="s3.html#s3.5.h" title="&sect;3.5.(h)&nbsp;Inferred callout"
+                           class="sect">&sect;3.5.(h)</a>:
+                        				<strong>Visibility of inferred callout</strong><p>
+                           					Role methods inferred as a callout binding are either <code>public</code>
+                           					(inferred via interface) or <code>private</code> inferred from 
+                           					self call / field access. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.html#s3.5.h" title="&sect;3.5.(h)&nbsp;Inferred callout"
+                           class="sect">&sect;3.5.(h)</a>:
+                        				<strong>No explicit use of inferred callout to field</strong><p>
+                           					Clarification has been added that an accessor method generated for an inferred callout to field
+                           					can not be explicitly invoked. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.1.b"
+                           title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                           class="sect">&sect;4.1.(b)</a>:
+                        				<strong>No callin in generic role</strong><p>
+                           					A restriction has been made explicit that a generic role cannot define callin bindings. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.2.d" title="&sect;4.2.(d)&nbsp;Callin methods"
+                           class="sect">&sect;4.2.(d)</a> :
+                        				<strong>Callin methods</strong><p>Slightly rephrased and extended the rule to make explicit that a callin method can
+                           					indeed be intercepted using a second level callin binding.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s6.html#s6.1.a"
+                           title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                           class="sect">&sect;6.1.(a)</a> :
+                        				<strong>Reflective methods <code>getAllRoles</code></strong><p>
+                           					More precision: answer only <em>bound</em> roles.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.1.3">
+                  <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+                  <ul>
+                     <li><a href="s1.html#s1.2.4.c" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                           class="sect">&sect;1.2.4.(c)</a> :
+                        					<strong>Syntax for role class literals</strong><p>Previously, the syntax <code>R&lt;@t&gt;.class</code> was not supported.
+                           						This restriction has been removed.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s1.html#s1.3"
+                           title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                           class="sect">&sect;1.3</a> :
+                        					<strong>Teams extending non-team classes</strong><p>Previously, <code>org.objectteams.Team</code> was the super class of all team classes.
+                           					As a consequence a team could not extend a non-team class.
+                           					This restriction has been removed by introducing a new super-type of all teams,
+                           					the interface <code>org.objectteams.ITeam</code>.
+                           					This change also affects some paragraphs in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a> as members
+                           					have been moved to the new interface.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.4.c"
+                           title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                           class="sect">&sect;4.4.(c)</a> :
+                        					<strong>Further restrict result mapping in after callin bindings</strong><p>Clarify that <code>after</code> callin bindings cannot use the <code>-&gt;</code>
+                           					token to map a result value.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.10" title="&sect;4.10&nbsp;Generic callin bindings"
+                           class="sect">&sect;4.10</a>, <a href="s4.html#s4.10.a" title="&sect;4.10.(a)&nbsp;Fresh type parameter"
+                           class="sect">&sect;4.10.(a)</a> :
+                        	<strong>Generic callin bindings</strong><p>Minor changes to give room for new paragraph <a href="s4.html#s4.10.e"
+                              title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                              class="sect">&sect;4.10.(e)</a>.
+                        </p>
+                     </li>
+                     <li><a href="s5.html#s5.4.1.a" title="&sect;5.4.1.(a)&nbsp;Method binding guards"
+                           class="sect">&sect;5.4.1.(a)</a> :
+                        	<strong>Scope of regular binding guard</strong><p>Removed an erroneous sentence about the special identifier <code>result</code> in a regular method binding guard.
+                           		Since parameter mappings are applied before evaluating the guard, the result value can be accessed through
+                           		a result mapping (<a href="s4.html#s4.4.c"
+                              title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                              class="sect">&sect;4.4.(c)</a>). Furthermore, the sentence actually confused
+                           		base and role sides.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>, <a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">&sect;A.3.3</a> :
+                        	<strong>Syntax: generic method bindings</strong><p>The location of possible type parameters in a method binding has been made explicit.</p>
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="sB.2">
+               <h2 class="sect">&sect;B.2&nbsp;Additions between versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;B</a></span></h2>
+               <div class="subsect depth3" id="sB.2.1">
+                  <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+                  <ul>
+                     <li><a href="s1.html#s1.2.4.c" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                           class="sect">&sect;1.2.4.(c)</a>: 
+                        				<strong>Role class literal</strong><p>
+                           					Made existing feature explicit and introduce new qualified class literal for externalized roles.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.html#s3.1.j" title="&sect;3.1.(j)&nbsp;Inferred callout"
+                           class="sect">&sect;3.1.(j)</a> and <a href="s3.html#s3.5.h" title="&sect;3.5.(h)&nbsp;Inferred callout"
+                           class="sect">&sect;3.5.(h)</a> : 
+                        				<strong>Inferred callout</strong><p>
+                           					New feature.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.6.a"
+                           title="&sect;4.6.(a)&nbsp;Private methods from super classes"
+                           class="sect">&sect;4.6.(a)</a> : 
+                        				<strong>Callin-binding private methods from super classes</strong><p>
+                           				Added a necessary restriction.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.9" title="&sect;4.9&nbsp;Callin inheritance" class="sect">&sect;4.9</a> :	
+                        				<strong>Callin inheritance</strong><p>
+                           					Clarified issues that where under-specified or insufficiently explained, specifically:
+                           				
+                        </p>
+                        <ul>
+                           <li>Effect of callin bindings on inherited or overridden base methods 
+                              						(<a href="s4.html#s4.9.1" title="&sect;4.9.1&nbsp;Base side inheritance"
+                                 class="sect">&sect;4.9.1</a>).
+                           </li>
+                           <li>Interplay of callin bindings and base methods with covariant return types 
+                              						(<a href="s4.html#s4.9.3" title="&sect;4.9.3&nbsp;Covariant return types"
+                                 class="sect">&sect;4.9.3</a>)
+                           </li>
+                        </ul>
+                     </li>
+                     <li><a href="s4.html#s4.10" title="&sect;4.10&nbsp;Generic callin bindings"
+                           class="sect">&sect;4.10</a>:
+                        				<strong>Generic replace bindings</strong><p>
+                           					Reconcile type safety of replace bindings as introduced in <a href="s4.html#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>
+                           					with desirable flexibility by using type parameters.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s7.html#s7.2.b" title="&sect;7.2.(b)&nbsp;Arrays of Confined"
+                           class="sect">&sect;7.2.(b)</a> : 
+                        				<strong>Arrays of Confined</strong><p>
+                           					Added a necessary restriction.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.2.2">
+                  <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+                  <ul>
+                     <li><a href="s1.html#s1.2.2.h" title="&sect;1.2.2.(h)&nbsp;Externalized creation"
+                           class="sect">&sect;1.2.2.(h)</a> :
+                        					<strong>Externalized creation</strong><p>Added alternative syntax using value parameter and changed title.</p>
+                     </li>
+                     <li><a href="s1.html#s1.2.5.f" title="&sect;1.2.5.(f)&nbsp;Imports in role files"
+                           class="sect">&sect;1.2.5.(f)</a> :
+                        					<strong>Imports in role files</strong><p>Added a missing rule defining the effect of imports in role files.</p>
+                     </li>
+                     <li><a href="s1.html#s1.3.1.c"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">&sect;1.3.1.(c)</a> :
+                        					<strong>@Override annotation for roles</strong><p>The regular <code>@Override</code> annotation (Java &ge;5) has been extended to apply to role classes, too.
+					
+                        </p>
+                     </li>
+                     <li><a href="s1.html#s1.3.1.k" title="&sect;1.3.1.(k)&nbsp;Covariant return types"
+                           class="sect">&sect;1.3.1.(k)</a> :
+                        					<strong>Covariant return types</strong><p>Necessary constraint for covariant return types in the presence of both implicit and explicit inheritance.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.html#s2.1.2.c"
+                           title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a> :
+                        					<strong>Binding to final base class</strong><p>It has been added that binding to a final base class is now considered as decapsulation, too.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.html#s2.2.f" title="&sect;2.2.(f)&nbsp;Ambiguous lowering"
+                           class="sect">&sect;2.2.(f)</a> :
+                        					<strong>Ambiguous lowering</strong><p>A diagnostic has been added to detect situations where lowering might be intended
+                           					   but fails because the declared type is <code>java.lang.Object</code>,
+                           					   which makes a potential lowering translation unnecessary and thus ambiguous.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.html#s2.3.2.e"
+                           title="&sect;2.3.2.(e)&nbsp;Generic declared lifting"
+                           class="sect">&sect;2.3.2.(e)</a> :
+                        					<strong>Generic declared lifting</strong><p>Support passing unrelated base types into the same method with declared lifting.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.html#s2.6.g"
+                           title="&sect;2.6.(g)&nbsp;Decapsulation via base reference"
+                           class="sect">&sect;2.6.(g)</a> :
+                        					<strong>Decapsulation via base reference</strong><p>Extended applicability of decapsulation to two more positions.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.3.f" title="&sect;4.3.(f)&nbsp;Base super calls"
+                           class="sect">&sect;4.3.(f)</a> :
+                        					<strong>Base super call</strong><p>Support base calls directly to the super version of the bound base method,
+                           					thus bypassing both the exact bound base method and also any further callins
+                           					relating to this base method or its super version.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s5.html#s5.4.b" title="&sect;5.4.(b)&nbsp;No side effects"
+                           class="sect">&sect;5.4.(b)</a> :
+                        					<strong>Side-effects in guard predicates</strong><p>Migrate previous note about a future feature to a regular paragraph.</p>
+                     </li>
+                     <li><a href="s5.html#s5.4.c" title="&sect;5.4.(c)&nbsp;Exceptions" class="sect">&sect;5.4.(c)</a> :
+                        					<strong>Exceptions in guard predicates</strong><p>Clarify the effect of exceptions thrown from a guard predicate.</p>
+                     </li>
+                     <li><a href="s6.html#s6.2.d" title="&sect;6.2.(d)&nbsp;Exceptions" class="sect">&sect;6.2.(d)</a> :
+                        				    <strong>LiftingVetoException</strong><p>Added documentation for the mostly internal <code>LiftingVetoException</code> and how
+                           				    it could actually be used in client code.
+                           				    
+                        </p>
+                     </li>
+                     <li><a href="s6.html#s6.2.e" title="&sect;6.2.(e)&nbsp;Role migration"
+                           class="sect">&sect;6.2.(e)</a> :
+                        				    <strong>Role migration</strong><p>Added two interfaces to add migration capabilities to a role class.
+                           				    
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.2.3">
+                  <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+                  <ul>
+                     <li><a href="s3.html#s3.1.k" title="&sect;3.1.(k)&nbsp;Callout to generic method"
+                           class="sect">&sect;3.1.(k)</a> :
+                        					<strong>Callout to generic method</strong><p>Added a rule on how a callout binding may refer to a generic base method.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.1.h" title="&sect;4.1.(h)&nbsp;Method of enclosing class"
+                           class="sect">&sect;4.1.(h)</a> :
+                        	<strong>Binding to team methods</strong><p><code>before</code> and <code>after</code> callin bindings can now
+                           		bind to methods of an enclosing class, too.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="s4.html#s4.10.e"
+                           title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                           class="sect">&sect;4.10.(e)</a> :
+                        	<strong>Propagating type parameters in callin bindings</strong><p>
+                           		In addition to capturing covariant return types, a callin binding
+                           		may also declared type parameters in order to propagate genericity
+                           		from its base method to the role method.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="s5.html#s5.3.d"
+                           title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                           class="sect">&sect;5.3.(d)</a> :
+                        	<strong>Configuring implicit activation</strong><p>Mechanisms have been added for configuring implicit team activation.
+                           	The default has been changed to not apply implicit activation.
+                           	A corresponding note has also been added to <a href="s5.html#s5.3" title="&sect;5.3&nbsp;Implicit team activation"
+                              class="sect">&sect;5.3</a></p>
+                     </li>
+                     <li><a href="s9.html#s9.2.1.a"
+                           title="&sect;9.2.1.(a)&nbsp;Instance constrained type parameters"
+                           class="sect">&sect;9.2.1.(a)</a> :
+                        	<strong>Instance constrained type parameter</strong><p>
+                           		Type anchors can now be applied to type parameters, too, 
+                           		thus expressing a new kind of constraint on the type parameter.
+                           	
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.html" rel="prev">&lt;&lt;&nbsp;&sect;A&nbsp;OT/J Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/xhtml11-flat.dtd b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/xhtml11-flat.dtd
new file mode 100644
index 0000000..00d3f04
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/xhtml11-flat.dtd
@@ -0,0 +1,4615 @@
+<!-- ....................................................................... -->

+<!-- XHTML 1.1 DTD  ........................................................ -->

+<!-- file: xhtml11.dtd

+-->

+

+<!-- XHTML 1.1 DTD

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+

+     The Extensible HyperText Markup Language (XHTML)

+     Copyright 1998-2005 World Wide Web Consortium

+        (Massachusetts Institute of Technology, European Research Consortium

+         for Informatics and Mathematics, Keio University).

+         All Rights Reserved.

+

+     Permission to use, copy, modify and distribute the XHTML DTD and its 

+     accompanying documentation for any purpose and without fee is hereby 

+     granted in perpetuity, provided that the above copyright notice and 

+     this paragraph appear in all copies.  The copyright holders make no 

+     representation about the suitability of the DTD for any purpose.

+

+     It is provided "as is" without expressed or implied warranty.

+

+        Author:     Murray M. Altheim <altheim@eng.sun.com>

+        Revision:   $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $

+

+-->

+<!-- This is the driver file for version 1.1 of the XHTML DTD.

+

+     Please use this public identifier to identify it:

+

+         "-//W3C//DTD XHTML 1.1//EN"

+-->

+<!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >

+

+<!-- Use this URI to identify the default namespace:

+

+         "http://www.w3.org/1999/xhtml"

+

+     See the Qualified Names module for information

+     on the use of namespace prefixes in the DTD.

+

+	 Note that XHTML namespace elements are not prefixed by default,

+	 but the XHTML namespace prefix is defined as "xhtml" so that

+	 other markup languages can extend this one and use the XHTML

+	 prefixed global attributes if required.

+

+-->

+<!ENTITY % NS.prefixed "IGNORE" >

+<!ENTITY % XHTML.prefix "xhtml" >

+

+<!-- Be sure to include prefixed global attributes - we don't need

+     them, but languages that extend XHTML 1.1 might.

+-->

+<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >

+

+<!-- Reserved for use with the XLink namespace:

+-->

+<!ENTITY % XLINK.xmlns "" >

+<!ENTITY % XLINK.xmlns.attrib "" >

+

+<!-- For example, if you are using XHTML 1.1 directly, use the public

+     identifier in the DOCTYPE declaration, with the namespace declaration

+     on the document element to identify the default namespace:

+

+       <?xml version="1.0"?>

+       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

+                             "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

+       <html xmlns="http://www.w3.org/1999/xhtml"

+             xml:lang="en">

+       ...

+       </html>

+

+     Revisions:

+     (none)

+-->

+

+<!-- reserved for future use with document profiles -->

+<!ENTITY % XHTML.profile  "" >

+

+<!-- ensure XHTML Notations are disabled -->

+<!ENTITY % xhtml-notations.module "IGNORE" >

+

+<!-- Bidirectional Text features

+     This feature-test entity is used to declare elements

+     and attributes used for bidirectional text support.

+-->

+<!ENTITY % XHTML.bidi  "INCLUDE" >

+

+<?doc type="doctype" role="title" { XHTML 1.1 } ?>

+

+<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

+

+<!-- Pre-Framework Redeclaration placeholder  .................... -->

+<!-- this serves as a location to insert markup declarations

+     into the DTD prior to the framework declarations.

+-->

+<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >

+<![%xhtml-prefw-redecl.module;[

+%xhtml-prefw-redecl.mod;

+<!-- end of xhtml-prefw-redecl.module -->]]>

+

+<!ENTITY % xhtml-events.module "INCLUDE" >

+

+<!-- Inline Style Module  ........................................ -->

+<!ENTITY % xhtml-inlstyle.module "INCLUDE" >

+<![%xhtml-inlstyle.module;[

+<!ENTITY % xhtml-inlstyle.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Inline Style Module  ........................................... -->

+<!-- file: xhtml-inlstyle-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Inline Style

+

+     This module declares the 'style' attribute, used to support inline

+     style markup. This module must be instantiated prior to the XHTML

+     Common Attributes module in order to be included in %Core.attrib;.

+-->

+

+<!ENTITY % style.attrib

+     "style        CDATA                    #IMPLIED"

+>

+

+

+<!ENTITY % Core.extra.attrib

+     "%style.attrib;"

+>

+

+<!-- end of xhtml-inlstyle-1.mod -->

+]]>

+

+<!-- declare Document Model module instantiated in framework

+-->

+<!ENTITY % xhtml-model.mod

+     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" >

+

+<!-- Modular Framework Module (required) ......................... -->

+<!ENTITY % xhtml-framework.module "INCLUDE" >

+<![%xhtml-framework.module;[

+<!ENTITY % xhtml-framework.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Modular Framework Module  ...................................... -->

+<!-- file: xhtml-framework-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Modular Framework

+

+     This required module instantiates the modules needed

+     to support the XHTML modularization model, including:

+

+        +  notations

+        +  datatypes

+        +  namespace-qualified names

+        +  common attributes

+        +  document model

+        +  character entities

+

+     The Intrinsic Events module is ignored by default but

+     occurs in this module because it must be instantiated

+     prior to Attributes but after Datatypes.

+-->

+

+<!ENTITY % xhtml-arch.module "IGNORE" >

+<![%xhtml-arch.module;[

+<!ENTITY % xhtml-arch.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN"

+            "xhtml-arch-1.mod" >

+%xhtml-arch.mod;]]>

+

+<!ENTITY % xhtml-notations.module "INCLUDE" >

+<![%xhtml-notations.module;[

+<!ENTITY % xhtml-notations.mod

+     PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN"

+            "xhtml-notations-1.mod" >

+%xhtml-notations.mod;]]>

+

+<!ENTITY % xhtml-datatypes.module "INCLUDE" >

+<![%xhtml-datatypes.module;[

+<!ENTITY % xhtml-datatypes.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"

+            "xhtml-datatypes-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Datatypes Module  .............................................. -->

+<!-- file: xhtml-datatypes-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Datatypes

+

+     defines containers for the following datatypes, many of

+     these imported from other specifications and standards.

+-->

+

+<!-- Length defined for cellpadding/cellspacing -->

+

+<!-- nn for pixels or nn% for percentage length -->

+<!ENTITY % Length.datatype "CDATA" >

+

+<!-- space-separated list of link types -->

+<!ENTITY % LinkTypes.datatype "NMTOKENS" >

+

+<!-- single or comma-separated list of media descriptors -->

+<!ENTITY % MediaDesc.datatype "CDATA" >

+

+<!-- pixel, percentage, or relative -->

+<!ENTITY % MultiLength.datatype "CDATA" >

+

+<!-- one or more digits (NUMBER) -->

+<!ENTITY % Number.datatype "CDATA" >

+

+<!-- integer representing length in pixels -->

+<!ENTITY % Pixels.datatype "CDATA" >

+

+<!-- script expression -->

+<!ENTITY % Script.datatype "CDATA" >

+

+<!-- textual content -->

+<!ENTITY % Text.datatype "CDATA" >

+

+<!-- Imported Datatypes ................................ -->

+

+<!-- a single character from [ISO10646] -->

+<!ENTITY % Character.datatype "CDATA" >

+

+<!-- a character encoding, as per [RFC2045] -->

+<!ENTITY % Charset.datatype "CDATA" >

+

+<!-- a space separated list of character encodings, as per [RFC2045] -->

+<!ENTITY % Charsets.datatype "CDATA" >

+

+<!-- Color specification using color name or sRGB (#RRGGBB) values -->

+<!ENTITY % Color.datatype "CDATA" >

+

+<!-- media type, as per [RFC2045] -->

+<!ENTITY % ContentType.datatype "CDATA" >

+

+<!-- comma-separated list of media types, as per [RFC2045] -->

+<!ENTITY % ContentTypes.datatype "CDATA" >

+

+<!-- date and time information. ISO date format -->

+<!ENTITY % Datetime.datatype "CDATA" >

+

+<!-- formal public identifier, as per [ISO8879] -->

+<!ENTITY % FPI.datatype "CDATA" >

+

+<!-- a language code, as per [RFC3066] or its successor -->

+<!ENTITY % LanguageCode.datatype "CDATA" >

+

+<!-- a Uniform Resource Identifier, see [URI] -->

+<!ENTITY % URI.datatype "CDATA" >

+

+<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->

+<!ENTITY % URIs.datatype "CDATA" >

+

+<!-- end of xhtml-datatypes-1.mod -->

+]]>

+

+<!-- placeholder for XLink support module -->

+<!ENTITY % xhtml-xlink.mod "" >

+

+

+<!ENTITY % xhtml-qname.module "INCLUDE" >

+<![%xhtml-qname.module;[

+<!ENTITY % xhtml-qname.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"

+            "xhtml-qname-1.mod" >

+<!-- ....................................................................... -->

+<!-- XHTML Qname Module  ................................................... -->

+<!-- file: xhtml-qname-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod"

+

+     Revisions:

+#2000-10-22: added qname declarations for ruby elements

+     ....................................................................... -->

+

+<!-- XHTML Qname (Qualified Name) Module

+

+     This module is contained in two parts, labeled Section 'A' and 'B':

+

+       Section A declares parameter entities to support namespace-

+       qualified names, namespace declarations, and name prefixing

+       for XHTML and extensions.

+

+       Section B declares parameter entities used to provide

+       namespace-qualified names for all XHTML element types:

+

+         %applet.qname;   the xmlns-qualified name for <applet>

+         %base.qname;     the xmlns-qualified name for <base>

+         ...

+

+     XHTML extensions would create a module similar to this one.

+     Included in the XHTML distribution is a template module

+     ('template-qname-1.mod') suitable for this purpose.

+-->

+

+<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->

+

+<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used

+        to activate namespace prefixing. The default value should

+        inherit '%NS.prefixed;' from the DTD driver, so that unless

+        overridden, the default behaviour follows the overall DTD

+        prefixing scheme.

+-->

+<!ENTITY % NS.prefixed "IGNORE" >

+<!ENTITY % XHTML.prefixed "%NS.prefixed;" >

+

+<!-- By default, we always permit XHTML attribute collections to have

+     namespace-qualified prefixes as well.

+-->

+<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >

+<!-- By default, we allow the XML Schema attributes on the root

+     element.

+-->

+<!ENTITY % XHTML.xsi.attrs "INCLUDE" >

+

+<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing

+        the URI reference used to identify the XHTML namespace:

+-->

+<!ENTITY % XHTML.xmlns  "http://www.w3.org/1999/xhtml" >

+

+<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing

+        the default namespace prefix string(s) to use when prefixing

+        is enabled. This may be overridden in the DTD driver or the

+        internal subset of an document instance. If no default prefix

+        is desired, this may be declared as an empty string.

+

+     NOTE: As specified in [XMLNAMES], the namespace prefix serves

+     as a proxy for the URI reference, and is not in itself significant.

+-->

+<!ENTITY % XHTML.prefix  "xhtml" >

+

+<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the

+        colonized prefix(es) (eg., '%XHTML.prefix;:') used when

+        prefixing is active, an empty string when it is not.

+-->

+<![%XHTML.prefixed;[

+<!ENTITY % XHTML.pfx  "%XHTML.prefix;:" >

+]]>

+<!ENTITY % XHTML.pfx  "" >

+

+<!-- declare qualified name extensions here ............ -->

+<!ENTITY % xhtml-qname-extra.mod "" >

+

+

+<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be

+        redeclared to contain any non-XHTML namespace declaration

+        attributes for namespaces embedded in XHTML. The default

+        is an empty string.  XLink should be included here if used

+        in the DTD.

+-->

+<!ENTITY % XHTML.xmlns.extra.attrib "" >

+

+<!-- The remainder of Section A is only followed in XHTML, not extensions. -->

+

+<!-- Declare a parameter entity %NS.decl.attrib; containing

+     all XML Namespace declarations used in the DTD, plus the

+     xmlns declaration for XHTML, its form dependent on whether

+     prefixing is active.

+-->

+<!ENTITY % XHTML.xmlns.attrib.prefixed

+     "xmlns:%XHTML.prefix;  %URI.datatype;   #FIXED '%XHTML.xmlns;'"

+>

+<![%XHTML.prefixed;[

+<!ENTITY % NS.decl.attrib

+     "%XHTML.xmlns.attrib.prefixed;

+      %XHTML.xmlns.extra.attrib;"

+>

+]]>

+<!ENTITY % NS.decl.attrib

+     "%XHTML.xmlns.extra.attrib;"

+>

+

+<!-- Declare a parameter entity %XSI.prefix as a prefix to use for XML

+     Schema Instance attributes.

+-->

+<!ENTITY % XSI.prefix "xsi" >

+

+<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >

+

+<!-- Declare a parameter entity %XSI.xmlns.attrib as support for the

+     schemaLocation attribute, since this is legal throughout the DTD.

+-->

+<!ENTITY % XSI.xmlns.attrib

+     "xmlns:%XSI.prefix;  %URI.datatype;   #FIXED '%XSI.xmlns;'" >

+

+<!-- This is a placeholder for future XLink support.

+-->

+<!ENTITY % XLINK.xmlns.attrib "" >

+

+<!-- This is the attribute for the XML Schema namespace - XHTML

+     Modularization is also expressed in XML Schema, and it needs to

+	 be legal to declare the XML Schema namespace and the

+	 schemaLocation attribute on the root element of XHTML family

+	 documents.

+-->

+<![%XHTML.xsi.attrs;[

+<!ENTITY % XSI.prefix "xsi" >

+<!ENTITY % XSI.pfx "%XSI.prefix;:" >

+<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >

+

+<!ENTITY % XSI.xmlns.attrib

+     "xmlns:%XSI.prefix;  %URI.datatype;    #FIXED '%XSI.xmlns;'"

+>

+]]>

+<!ENTITY % XSI.prefix "" >

+<!ENTITY % XSI.pfx "" >

+<!ENTITY % XSI.xmlns.attrib "" >

+

+

+<!-- Declare a parameter entity %NS.decl.attrib; containing all

+     XML namespace declaration attributes used by XHTML, including

+     a default xmlns attribute when prefixing is inactive.

+-->

+<![%XHTML.prefixed;[

+<!ENTITY % XHTML.xmlns.attrib

+     "%NS.decl.attrib;

+      %XSI.xmlns.attrib;

+      %XLINK.xmlns.attrib;"

+>

+]]>

+<!ENTITY % XHTML.xmlns.attrib

+     "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'

+      %NS.decl.attrib;

+      %XSI.xmlns.attrib;

+      %XLINK.xmlns.attrib;"

+>

+

+<!-- placeholder for qualified name redeclarations -->

+<!ENTITY % xhtml-qname.redecl "" >

+

+

+<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: -->

+

+<!-- 6. This section declares parameter entities used to provide

+        namespace-qualified names for all XHTML element types.

+-->

+

+<!-- module:  xhtml-applet-1.mod -->

+<!ENTITY % applet.qname  "%XHTML.pfx;applet" >

+

+<!-- module:  xhtml-base-1.mod -->

+<!ENTITY % base.qname    "%XHTML.pfx;base" >

+

+<!-- module:  xhtml-bdo-1.mod -->

+<!ENTITY % bdo.qname     "%XHTML.pfx;bdo" >

+

+<!-- module:  xhtml-blkphras-1.mod -->

+<!ENTITY % address.qname "%XHTML.pfx;address" >

+<!ENTITY % blockquote.qname  "%XHTML.pfx;blockquote" >

+<!ENTITY % pre.qname     "%XHTML.pfx;pre" >

+<!ENTITY % h1.qname      "%XHTML.pfx;h1" >

+<!ENTITY % h2.qname      "%XHTML.pfx;h2" >

+<!ENTITY % h3.qname      "%XHTML.pfx;h3" >

+<!ENTITY % h4.qname      "%XHTML.pfx;h4" >

+<!ENTITY % h5.qname      "%XHTML.pfx;h5" >

+<!ENTITY % h6.qname      "%XHTML.pfx;h6" >

+

+<!-- module:  xhtml-blkpres-1.mod -->

+<!ENTITY % hr.qname      "%XHTML.pfx;hr" >

+

+<!-- module:  xhtml-blkstruct-1.mod -->

+<!ENTITY % div.qname     "%XHTML.pfx;div" >

+<!ENTITY % p.qname       "%XHTML.pfx;p" >

+

+<!-- module:  xhtml-edit-1.mod -->

+<!ENTITY % ins.qname     "%XHTML.pfx;ins" >

+<!ENTITY % del.qname     "%XHTML.pfx;del" >

+

+<!-- module:  xhtml-form-1.mod -->

+<!ENTITY % form.qname    "%XHTML.pfx;form" >

+<!ENTITY % label.qname   "%XHTML.pfx;label" >

+<!ENTITY % input.qname   "%XHTML.pfx;input" >

+<!ENTITY % select.qname  "%XHTML.pfx;select" >

+<!ENTITY % optgroup.qname  "%XHTML.pfx;optgroup" >

+<!ENTITY % option.qname  "%XHTML.pfx;option" >

+<!ENTITY % textarea.qname  "%XHTML.pfx;textarea" >

+<!ENTITY % fieldset.qname  "%XHTML.pfx;fieldset" >

+<!ENTITY % legend.qname  "%XHTML.pfx;legend" >

+<!ENTITY % button.qname  "%XHTML.pfx;button" >

+

+<!-- module:  xhtml-hypertext-1.mod -->

+<!ENTITY % a.qname       "%XHTML.pfx;a" >

+

+<!-- module:  xhtml-image-1.mod -->

+<!ENTITY % img.qname     "%XHTML.pfx;img" >

+

+<!-- module:  xhtml-inlphras-1.mod -->

+<!ENTITY % abbr.qname    "%XHTML.pfx;abbr" >

+<!ENTITY % acronym.qname "%XHTML.pfx;acronym" >

+<!ENTITY % cite.qname    "%XHTML.pfx;cite" >

+<!ENTITY % code.qname    "%XHTML.pfx;code" >

+<!ENTITY % dfn.qname     "%XHTML.pfx;dfn" >

+<!ENTITY % em.qname      "%XHTML.pfx;em" >

+<!ENTITY % kbd.qname     "%XHTML.pfx;kbd" >

+<!ENTITY % q.qname       "%XHTML.pfx;q" >

+<!ENTITY % samp.qname    "%XHTML.pfx;samp" >

+<!ENTITY % strong.qname  "%XHTML.pfx;strong" >

+<!ENTITY % var.qname     "%XHTML.pfx;var" >

+

+<!-- module:  xhtml-inlpres-1.mod -->

+<!ENTITY % b.qname       "%XHTML.pfx;b" >

+<!ENTITY % big.qname     "%XHTML.pfx;big" >

+<!ENTITY % i.qname       "%XHTML.pfx;i" >

+<!ENTITY % small.qname   "%XHTML.pfx;small" >

+<!ENTITY % sub.qname     "%XHTML.pfx;sub" >

+<!ENTITY % sup.qname     "%XHTML.pfx;sup" >

+<!ENTITY % tt.qname      "%XHTML.pfx;tt" >

+

+<!-- module:  xhtml-inlstruct-1.mod -->

+<!ENTITY % br.qname      "%XHTML.pfx;br" >

+<!ENTITY % span.qname    "%XHTML.pfx;span" >

+

+<!-- module:  xhtml-ismap-1.mod (also csismap, ssismap) -->

+<!ENTITY % map.qname     "%XHTML.pfx;map" >

+<!ENTITY % area.qname    "%XHTML.pfx;area" >

+

+<!-- module:  xhtml-link-1.mod -->

+<!ENTITY % link.qname    "%XHTML.pfx;link" >

+

+<!-- module:  xhtml-list-1.mod -->

+<!ENTITY % dl.qname      "%XHTML.pfx;dl" >

+<!ENTITY % dt.qname      "%XHTML.pfx;dt" >

+<!ENTITY % dd.qname      "%XHTML.pfx;dd" >

+<!ENTITY % ol.qname      "%XHTML.pfx;ol" >

+<!ENTITY % ul.qname      "%XHTML.pfx;ul" >

+<!ENTITY % li.qname      "%XHTML.pfx;li" >

+

+<!-- module:  xhtml-meta-1.mod -->

+<!ENTITY % meta.qname    "%XHTML.pfx;meta" >

+

+<!-- module:  xhtml-param-1.mod -->

+<!ENTITY % param.qname   "%XHTML.pfx;param" >

+

+<!-- module:  xhtml-object-1.mod -->

+<!ENTITY % object.qname  "%XHTML.pfx;object" >

+

+<!-- module:  xhtml-script-1.mod -->

+<!ENTITY % script.qname  "%XHTML.pfx;script" >

+<!ENTITY % noscript.qname  "%XHTML.pfx;noscript" >

+

+<!-- module:  xhtml-struct-1.mod -->

+<!ENTITY % html.qname    "%XHTML.pfx;html" >

+<!ENTITY % head.qname    "%XHTML.pfx;head" >

+<!ENTITY % title.qname   "%XHTML.pfx;title" >

+<!ENTITY % body.qname    "%XHTML.pfx;body" >

+

+<!-- module:  xhtml-style-1.mod -->

+<!ENTITY % style.qname   "%XHTML.pfx;style" >

+

+<!-- module:  xhtml-table-1.mod -->

+<!ENTITY % table.qname   "%XHTML.pfx;table" >

+<!ENTITY % caption.qname "%XHTML.pfx;caption" >

+<!ENTITY % thead.qname   "%XHTML.pfx;thead" >

+<!ENTITY % tfoot.qname   "%XHTML.pfx;tfoot" >

+<!ENTITY % tbody.qname   "%XHTML.pfx;tbody" >

+<!ENTITY % colgroup.qname  "%XHTML.pfx;colgroup" >

+<!ENTITY % col.qname     "%XHTML.pfx;col" >

+<!ENTITY % tr.qname      "%XHTML.pfx;tr" >

+<!ENTITY % th.qname      "%XHTML.pfx;th" >

+<!ENTITY % td.qname      "%XHTML.pfx;td" >

+

+<!-- module:  xhtml-ruby-1.mod -->

+

+<!ENTITY % ruby.qname    "%XHTML.pfx;ruby" >

+<!ENTITY % rbc.qname     "%XHTML.pfx;rbc" >

+<!ENTITY % rtc.qname     "%XHTML.pfx;rtc" >

+<!ENTITY % rb.qname      "%XHTML.pfx;rb" >

+<!ENTITY % rt.qname      "%XHTML.pfx;rt" >

+<!ENTITY % rp.qname      "%XHTML.pfx;rp" >

+

+<!-- Provisional XHTML 2.0 Qualified Names  ...................... -->

+

+<!-- module:  xhtml-image-2.mod -->

+<!ENTITY % alt.qname     "%XHTML.pfx;alt" >

+

+<!-- end of xhtml-qname-1.mod -->

+]]>

+

+<!ENTITY % xhtml-events.module "IGNORE" >

+<![%xhtml-events.module;[

+<!ENTITY % xhtml-events.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"

+            "xhtml-events-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Intrinsic Events Module  ....................................... -->

+<!-- file: xhtml-events-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Intrinsic Event Attributes

+

+     These are the event attributes defined in HTML 4,

+     Section 18.2.3 "Intrinsic Events". This module must be

+     instantiated prior to the Attributes Module but after

+     the Datatype Module in the Modular Framework module.

+

+    "Note: Authors of HTML documents are advised that changes

+     are likely to occur in the realm of intrinsic events

+     (e.g., how scripts are bound to events). Research in

+     this realm is carried on by members of the W3C Document

+     Object Model Working Group (see the W3C Web site at

+     http://www.w3.org/ for more information)."

+-->

+<!-- NOTE: Because the ATTLIST declarations in this module occur

+     before their respective ELEMENT declarations in other

+     modules, there may be a dependency on this module that

+     should be considered if any of the parameter entities used

+     for element type names (eg., %a.qname;) are redeclared.

+-->

+

+<!ENTITY % Events.attrib

+     "onclick      %Script.datatype;        #IMPLIED

+      ondblclick   %Script.datatype;        #IMPLIED

+      onmousedown  %Script.datatype;        #IMPLIED

+      onmouseup    %Script.datatype;        #IMPLIED

+      onmouseover  %Script.datatype;        #IMPLIED

+      onmousemove  %Script.datatype;        #IMPLIED

+      onmouseout   %Script.datatype;        #IMPLIED

+      onkeypress   %Script.datatype;        #IMPLIED

+      onkeydown    %Script.datatype;        #IMPLIED

+      onkeyup      %Script.datatype;        #IMPLIED"

+>

+

+<![%XHTML.global.attrs.prefixed;[

+<!ENTITY % XHTML.global.events.attrib

+     "%XHTML.prefix;:onclick      %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:ondblclick   %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onmousedown  %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onmouseup    %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onmouseover  %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onmousemove  %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onmouseout   %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onkeypress   %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onkeydown    %Script.datatype;        #IMPLIED

+      %XHTML.prefix;:onkeyup      %Script.datatype;        #IMPLIED"

+>

+]]>

+

+<!-- additional attributes on anchor element

+-->

+<!ATTLIST %a.qname;

+     onfocus      %Script.datatype;         #IMPLIED

+     onblur       %Script.datatype;         #IMPLIED

+>

+

+<!-- additional attributes on form element

+-->

+<!ATTLIST %form.qname;

+      onsubmit     %Script.datatype;        #IMPLIED

+      onreset      %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on label element

+-->

+<!ATTLIST %label.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on input element

+-->

+<!ATTLIST %input.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+      onselect     %Script.datatype;        #IMPLIED

+      onchange     %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on select element

+-->

+<!ATTLIST %select.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+      onchange     %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on textarea element

+-->

+<!ATTLIST %textarea.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+      onselect     %Script.datatype;        #IMPLIED

+      onchange     %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on button element

+-->

+<!ATTLIST %button.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on body element

+-->

+<!ATTLIST %body.qname;

+      onload       %Script.datatype;        #IMPLIED

+      onunload     %Script.datatype;        #IMPLIED

+>

+

+<!-- additional attributes on area element

+-->

+<!ATTLIST %area.qname;

+      onfocus      %Script.datatype;        #IMPLIED

+      onblur       %Script.datatype;        #IMPLIED

+>

+

+<!-- end of xhtml-events-1.mod -->

+]]>

+

+<!ENTITY % xhtml-attribs.module "INCLUDE" >

+<![%xhtml-attribs.module;[

+<!ENTITY % xhtml-attribs.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"

+            "xhtml-attribs-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Common Attributes Module  ...................................... -->

+<!-- file: xhtml-attribs-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Common Attributes

+

+     This module declares many of the common attributes for the XHTML DTD.

+     %NS.decl.attrib; is declared in the XHTML Qname module.

+

+	 Note that this file was extended in XHTML Modularization Second Edition to 

+	 include declarations of "global" versions of the attribute collections.

+	 The global versions of the attributes are for use on elements in other 

+	 namespaces.  The global version of "common" includes the xmlns declaration

+	 for the prefixed version of the xhtml namespace.  If you are only using a

+	 specific attribute or an individual attribute collection, you must also

+	 include the XHTML.xmlns.attrib.prefixed PE on your elements.

+-->

+

+<!ENTITY % id.attrib

+     "id           ID                       #IMPLIED"

+>

+

+<![%XHTML.global.attrs.prefixed;[

+<!ENTITY % XHTML.global.id.attrib

+     "%XHTML.prefix;:id           ID        #IMPLIED"

+>

+]]>

+

+<!ENTITY % class.attrib

+     "class        NMTOKENS                 #IMPLIED"

+>

+

+<![%XHTML.global.attrs.prefixed;[

+<!ENTITY % XHTML.global.class.attrib

+     "%XHTML.prefix;:class        NMTOKENS                 #IMPLIED"

+>

+]]>

+

+<!ENTITY % title.attrib

+     "title        %Text.datatype;          #IMPLIED"

+>

+

+<![%XHTML.global.attrs.prefixed;[

+<!ENTITY % XHTML.global.title.attrib

+     "%XHTML.prefix;:title        %Text.datatype;          #IMPLIED"

+>

+]]>

+

+<!ENTITY % Core.extra.attrib "" >

+

+<!ENTITY % Core.attrib

+     "%XHTML.xmlns.attrib;

+      %id.attrib;

+      %class.attrib;

+      %title.attrib;

+      xml:space    ( preserve )             #FIXED 'preserve'

+      %Core.extra.attrib;"

+>

+

+<!ENTITY % XHTML.global.core.extra.attrib "" >

+

+<![%XHTML.global.attrs.prefixed;[

+

+<!ENTITY % XHTML.global.core.attrib

+     "%XHTML.global.id.attrib;

+      %XHTML.global.class.attrib;

+      %XHTML.global.title.attrib;

+      %XHTML.global.core.extra.attrib;"

+>

+]]>

+

+<!ENTITY % XHTML.global.core.attrib "" >

+

+

+<!ENTITY % lang.attrib

+     "xml:lang     %LanguageCode.datatype;  #IMPLIED"

+>

+

+<![%XHTML.bidi;[

+<!ENTITY % dir.attrib

+     "dir          ( ltr | rtl )            #IMPLIED"

+>

+

+<!ENTITY % I18n.attrib

+     "%dir.attrib;

+      %lang.attrib;"

+>

+

+<![%XHTML.global.attrs.prefixed;[

+<!ENTITY XHTML.global.i18n.attrib

+     "%XHTML.prefix;:dir          ( ltr | rtl )            #IMPLIED

+      %lang.attrib;"

+>

+]]>

+<!ENTITY XHTML.global.i18n.attrib "" >

+

+]]>

+<!ENTITY % I18n.attrib

+     "%lang.attrib;"

+>

+<!ENTITY % XHTML.global.i18n.attrib

+     "%lang.attrib;"

+>

+

+<!ENTITY % Common.extra.attrib "" >

+<!ENTITY % XHTML.global.common.extra.attrib "" >

+

+<!-- intrinsic event attributes declared previously

+-->

+<!ENTITY % Events.attrib "" >

+

+<!ENTITY % XHTML.global.events.attrib "" >

+

+<!ENTITY % Common.attrib

+     "%Core.attrib;

+      %I18n.attrib;

+      %Events.attrib;

+      %Common.extra.attrib;"

+>

+

+<!ENTITY % XHTML.global.common.attrib

+     "%XHTML.xmlns.attrib.prefixed;

+      %XHTML.global.core.attrib;

+	  %XHTML.global.i18n.attrib;

+	  %XHTML.global.events.attrib;

+	  %XHTML.global.common.extra.attrib;"

+>

+

+<!-- end of xhtml-attribs-1.mod -->

+]]>

+

+<!-- placeholder for content model redeclarations -->

+<!ENTITY % xhtml-model.redecl "" >

+

+

+<!ENTITY % xhtml-model.module "INCLUDE" >

+<![%xhtml-model.module;[

+<!-- instantiate the Document Model module declared in the DTD driver

+-->

+<!-- ....................................................................... -->

+<!-- XHTML 1.1 Document Model Module  ...................................... -->

+<!-- file: xhtml11-model-1.mod

+

+     This is XHTML 1.1, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- XHTML 1.1 Document Model

+

+     This module describes the groupings of elements that make up

+     common content models for XHTML elements.

+

+     XHTML has three basic content models:

+

+         %Inline.mix;  character-level elements

+         %Block.mix;   block-like elements, eg., paragraphs and lists

+         %Flow.mix;    any block or inline elements

+

+     Any parameter entities declared in this module may be used

+     to create element content models, but the above three are

+     considered 'global' (insofar as that term applies here).

+

+     The reserved word '#PCDATA' (indicating a text string) is now

+     included explicitly with each element declaration that is

+     declared as mixed content, as XML requires that this token

+     occur first in a content model specification.

+-->

+<!-- Extending the Model

+

+     While in some cases this module may need to be rewritten to

+     accommodate changes to the document model, minor extensions

+     may be accomplished by redeclaring any of the three *.extra;

+     parameter entities to contain extension element types as follows:

+

+         %Misc.extra;    whose parent may be any block or

+                         inline element.

+

+         %Inline.extra;  whose parent may be any inline element.

+

+         %Block.extra;   whose parent may be any block element.

+

+     If used, these parameter entities must be an OR-separated

+     list beginning with an OR separator ("|"), eg., "| a | b | c"

+

+     All block and inline *.class parameter entities not part

+     of the *struct.class classes begin with "| " to allow for

+     exclusion from mixes.

+-->

+

+<!-- ..............  Optional Elements in head  .................. -->

+

+<!ENTITY % HeadOpts.mix

+     "( %script.qname; | %style.qname; | %meta.qname;

+      | %link.qname; | %object.qname; )*"

+>

+

+<!-- .................  Miscellaneous Elements  .................. -->

+

+<!-- ins and del are used to denote editing changes

+-->

+<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >

+

+<!-- script and noscript are used to contain scripts

+     and alternative content

+-->

+<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >

+

+<!ENTITY % Misc.extra "" >

+

+<!-- These elements are neither block nor inline, and can

+     essentially be used anywhere in the document body.

+-->

+<!ENTITY % Misc.class

+     "%Edit.class;

+      %Script.class;

+      %Misc.extra;"

+>

+

+<!-- ....................  Inline Elements  ...................... -->

+

+<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >

+

+<!ENTITY % InlPhras.class

+     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;

+      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;

+      | %abbr.qname; | %acronym.qname; | %q.qname;" >

+

+<!ENTITY % InlPres.class

+     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;

+      | %small.qname; | %sub.qname; | %sup.qname;" >

+

+<!ENTITY % I18n.class "| %bdo.qname;" >

+

+<!ENTITY % Anchor.class "| %a.qname;" >

+

+<!ENTITY % InlSpecial.class

+     "| %img.qname; | %map.qname;

+      | %object.qname;" >

+

+<!ENTITY % InlForm.class

+     "| %input.qname; | %select.qname; | %textarea.qname;

+      | %label.qname; | %button.qname;" >

+

+<!ENTITY % Inline.extra "" >

+

+<!ENTITY % Ruby.class "| %ruby.qname;" >

+

+<!-- %Inline.class; includes all inline elements,

+     used as a component in mixes

+-->

+<!ENTITY % Inline.class

+     "%InlStruct.class;

+      %InlPhras.class;

+      %InlPres.class;

+      %I18n.class;

+      %Anchor.class;

+      %InlSpecial.class;

+      %InlForm.class;

+      %Ruby.class;

+      %Inline.extra;"

+>

+

+<!-- %InlNoRuby.class; includes all inline elements

+     except ruby, used as a component in mixes

+-->

+<!ENTITY % InlNoRuby.class

+     "%InlStruct.class;

+      %InlPhras.class;

+      %InlPres.class;

+      %I18n.class;

+      %Anchor.class;

+      %InlSpecial.class;

+      %InlForm.class;

+      %Inline.extra;"

+>

+

+<!-- %NoRuby.content; includes all inlines except ruby

+-->

+<!ENTITY % NoRuby.content

+     "( #PCDATA

+      | %InlNoRuby.class;

+      %Misc.class; )*"

+>

+

+<!-- %InlNoAnchor.class; includes all non-anchor inlines,

+     used as a component in mixes

+-->

+<!ENTITY % InlNoAnchor.class

+     "%InlStruct.class;

+      %InlPhras.class;

+      %InlPres.class;

+      %I18n.class;

+      %InlSpecial.class;

+      %InlForm.class;

+      %Ruby.class;

+      %Inline.extra;"

+>

+

+<!-- %InlNoAnchor.mix; includes all non-anchor inlines

+-->

+<!ENTITY % InlNoAnchor.mix

+     "%InlNoAnchor.class;

+      %Misc.class;"

+>

+

+<!-- %Inline.mix; includes all inline elements, including %Misc.class;

+-->

+<!ENTITY % Inline.mix

+     "%Inline.class;

+      %Misc.class;"

+>

+

+<!-- .....................  Block Elements  ...................... -->

+

+<!-- In the HTML 4.0 DTD, heading and list elements were included

+     in the %block; parameter entity. The %Heading.class; and

+     %List.class; parameter entities must now be included explicitly

+     on element declarations where desired.

+-->

+

+<!ENTITY % Heading.class

+     "%h1.qname; | %h2.qname; | %h3.qname;

+      | %h4.qname; | %h5.qname; | %h6.qname;" >

+

+<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >

+

+<!ENTITY % Table.class "| %table.qname;" >

+

+<!ENTITY % Form.class  "| %form.qname;" >

+

+<!ENTITY % Fieldset.class  "| %fieldset.qname;" >

+

+<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >

+

+<!ENTITY % BlkPhras.class

+     "| %pre.qname; | %blockquote.qname; | %address.qname;" >

+

+<!ENTITY % BlkPres.class "| %hr.qname;" >

+

+<!ENTITY % BlkSpecial.class

+     "%Table.class;

+      %Form.class;

+      %Fieldset.class;"

+>

+

+<!ENTITY % Block.extra "" >

+

+<!-- %Block.class; includes all block elements,

+     used as an component in mixes

+-->

+<!ENTITY % Block.class

+     "%BlkStruct.class;

+      %BlkPhras.class;

+      %BlkPres.class;

+      %BlkSpecial.class;

+      %Block.extra;"

+>

+

+<!-- %Block.mix; includes all block elements plus %Misc.class;

+-->

+<!ENTITY % Block.mix

+     "%Heading.class;

+      | %List.class;

+      | %Block.class;

+      %Misc.class;"

+>

+

+<!-- ................  All Content Elements  .................. -->

+

+<!-- %Flow.mix; includes all text content, block and inline

+-->

+<!ENTITY % Flow.mix

+     "%Heading.class;

+      | %List.class;

+      | %Block.class;

+      | %Inline.class;

+      %Misc.class;"

+>

+

+<!-- end of xhtml11-model-1.mod -->

+]]>

+

+<!ENTITY % xhtml-charent.module "INCLUDE" >

+<![%xhtml-charent.module;[

+<!ENTITY % xhtml-charent.mod

+     PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"

+            "xhtml-charent-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Character Entities Module  ......................................... -->

+<!-- file: xhtml-charent-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Character Entities for XHTML

+

+     This module declares the set of character entities for XHTML,

+     including the Latin 1, Symbol and Special character collections.

+-->

+

+<!ENTITY % xhtml-lat1

+    PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"

+           "xhtml-lat1.ent" >

+<!-- Portions (C) International Organization for Standardization 1986

+     Permission to copy in any form is granted for use with

+     conforming SGML systems and applications as defined in

+     ISO 8879, provided this notice is included in all copies.

+-->

+<!-- Character entity set. Typical invocation:

+    <!ENTITY % HTMLlat1 PUBLIC

+       "-//W3C//ENTITIES Latin 1 for XHTML//EN"

+       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">

+    %HTMLlat1;

+-->

+

+<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,

+                                  U+00A0 ISOnum -->

+<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->

+<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->

+<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->

+<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->

+<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->

+<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,

+                                  U+00A6 ISOnum -->

+<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->

+<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,

+                                  U+00A8 ISOdia -->

+<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->

+<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->

+<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark

+                                  = left pointing guillemet, U+00AB ISOnum -->

+<!ENTITY not    "&#172;"> <!-- not sign = angled dash,

+                                  U+00AC ISOnum -->

+<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,

+                                  U+00AD ISOnum -->

+<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,

+                                  U+00AE ISOnum -->

+<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline

+                                  = APL overbar, U+00AF ISOdia -->

+<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->

+<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,

+                                  U+00B1 ISOnum -->

+<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two

+                                  = squared, U+00B2 ISOnum -->

+<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three

+                                  = cubed, U+00B3 ISOnum -->

+<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,

+                                  U+00B4 ISOdia -->

+<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->

+<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,

+                                  U+00B6 ISOnum -->

+<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma

+                                  = Greek middle dot, U+00B7 ISOnum -->

+<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->

+<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,

+                                  U+00B9 ISOnum -->

+<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,

+                                  U+00BA ISOnum -->

+<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark

+                                  = right pointing guillemet, U+00BB ISOnum -->

+<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter

+                                  = fraction one quarter, U+00BC ISOnum -->

+<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half

+                                  = fraction one half, U+00BD ISOnum -->

+<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters

+                                  = fraction three quarters, U+00BE ISOnum -->

+<!ENTITY iquest "&#191;"> <!-- inverted question mark

+                                  = turned question mark, U+00BF ISOnum -->

+<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave

+                                  = latin capital letter A grave,

+                                  U+00C0 ISOlat1 -->

+<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,

+                                  U+00C1 ISOlat1 -->

+<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,

+                                  U+00C2 ISOlat1 -->

+<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,

+                                  U+00C3 ISOlat1 -->

+<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,

+                                  U+00C4 ISOlat1 -->

+<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above

+                                  = latin capital letter A ring,

+                                  U+00C5 ISOlat1 -->

+<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE

+                                  = latin capital ligature AE,

+                                  U+00C6 ISOlat1 -->

+<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,

+                                  U+00C7 ISOlat1 -->

+<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,

+                                  U+00C8 ISOlat1 -->

+<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,

+                                  U+00C9 ISOlat1 -->

+<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,

+                                  U+00CA ISOlat1 -->

+<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,

+                                  U+00CB ISOlat1 -->

+<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,

+                                  U+00CC ISOlat1 -->

+<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,

+                                  U+00CD ISOlat1 -->

+<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,

+                                  U+00CE ISOlat1 -->

+<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,

+                                  U+00CF ISOlat1 -->

+<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->

+<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,

+                                  U+00D1 ISOlat1 -->

+<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,

+                                  U+00D2 ISOlat1 -->

+<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,

+                                  U+00D3 ISOlat1 -->

+<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,

+                                  U+00D4 ISOlat1 -->

+<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,

+                                  U+00D5 ISOlat1 -->

+<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,

+                                  U+00D6 ISOlat1 -->

+<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->

+<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke

+                                  = latin capital letter O slash,

+                                  U+00D8 ISOlat1 -->

+<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,

+                                  U+00D9 ISOlat1 -->

+<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,

+                                  U+00DA ISOlat1 -->

+<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,

+                                  U+00DB ISOlat1 -->

+<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,

+                                  U+00DC ISOlat1 -->

+<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,

+                                  U+00DD ISOlat1 -->

+<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,

+                                  U+00DE ISOlat1 -->

+<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,

+                                  U+00DF ISOlat1 -->

+<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave

+                                  = latin small letter a grave,

+                                  U+00E0 ISOlat1 -->

+<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,

+                                  U+00E1 ISOlat1 -->

+<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,

+                                  U+00E2 ISOlat1 -->

+<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,

+                                  U+00E3 ISOlat1 -->

+<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,

+                                  U+00E4 ISOlat1 -->

+<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above

+                                  = latin small letter a ring,

+                                  U+00E5 ISOlat1 -->

+<!ENTITY aelig  "&#230;"> <!-- latin small letter ae

+                                  = latin small ligature ae, U+00E6 ISOlat1 -->

+<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,

+                                  U+00E7 ISOlat1 -->

+<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,

+                                  U+00E8 ISOlat1 -->

+<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,

+                                  U+00E9 ISOlat1 -->

+<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,

+                                  U+00EA ISOlat1 -->

+<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,

+                                  U+00EB ISOlat1 -->

+<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,

+                                  U+00EC ISOlat1 -->

+<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,

+                                  U+00ED ISOlat1 -->

+<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,

+                                  U+00EE ISOlat1 -->

+<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,

+                                  U+00EF ISOlat1 -->

+<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->

+<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,

+                                  U+00F1 ISOlat1 -->

+<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,

+                                  U+00F2 ISOlat1 -->

+<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,

+                                  U+00F3 ISOlat1 -->

+<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,

+                                  U+00F4 ISOlat1 -->

+<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,

+                                  U+00F5 ISOlat1 -->

+<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,

+                                  U+00F6 ISOlat1 -->

+<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->

+<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,

+                                  = latin small letter o slash,

+                                  U+00F8 ISOlat1 -->

+<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,

+                                  U+00F9 ISOlat1 -->

+<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,

+                                  U+00FA ISOlat1 -->

+<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,

+                                  U+00FB ISOlat1 -->

+<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,

+                                  U+00FC ISOlat1 -->

+<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,

+                                  U+00FD ISOlat1 -->

+<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,

+                                  U+00FE ISOlat1 -->

+<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,

+                                  U+00FF ISOlat1 -->

+

+

+<!ENTITY % xhtml-symbol

+    PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"

+           "xhtml-symbol.ent" >

+<!-- Mathematical, Greek and Symbolic characters for XHTML -->

+

+<!-- Character entity set. Typical invocation:

+     <!ENTITY % HTMLsymbol PUBLIC

+        "-//W3C//ENTITIES Symbols for XHTML//EN"

+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">

+     %HTMLsymbol;

+-->

+

+<!-- Portions (C) International Organization for Standardization 1986:

+     Permission to copy in any form is granted for use with

+     conforming SGML systems and applications as defined in

+     ISO 8879, provided this notice is included in all copies.

+-->

+

+<!-- Relevant ISO entity set is given unless names are newly introduced.

+     New names (i.e., not in ISO 8879 list) do not clash with any

+     existing ISO 8879 entity names. ISO 10646 character numbers

+     are given for each character, in hex. values are decimal

+     conversions of the ISO 10646 values and refer to the document

+     character set. Names are Unicode names. 

+-->

+

+<!-- Latin Extended-B -->

+<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function

+                                    = florin, U+0192 ISOtech -->

+

+<!-- Greek -->

+<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->

+<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->

+<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,

+                                    U+0393 ISOgrk3 -->

+<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,

+                                    U+0394 ISOgrk3 -->

+<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->

+<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->

+<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->

+<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,

+                                    U+0398 ISOgrk3 -->

+<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->

+<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->

+<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,

+                                    U+039B ISOgrk3 -->

+<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->

+<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->

+<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->

+<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->

+<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->

+<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->

+<!-- there is no Sigmaf, and no U+03A2 character either -->

+<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,

+                                    U+03A3 ISOgrk3 -->

+<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->

+<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,

+                                    U+03A5 ISOgrk3 -->

+<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,

+                                    U+03A6 ISOgrk3 -->

+<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->

+<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,

+                                    U+03A8 ISOgrk3 -->

+<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,

+                                    U+03A9 ISOgrk3 -->

+

+<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,

+                                    U+03B1 ISOgrk3 -->

+<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->

+<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,

+                                    U+03B3 ISOgrk3 -->

+<!ENTITY delta    "&#948;"> <!-- greek small letter delta,

+                                    U+03B4 ISOgrk3 -->

+<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,

+                                    U+03B5 ISOgrk3 -->

+<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->

+<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->

+<!ENTITY theta    "&#952;"> <!-- greek small letter theta,

+                                    U+03B8 ISOgrk3 -->

+<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->

+<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,

+                                    U+03BA ISOgrk3 -->

+<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,

+                                    U+03BB ISOgrk3 -->

+<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->

+<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->

+<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->

+<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->

+<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->

+<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->

+<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,

+                                    U+03C2 ISOgrk3 -->

+<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,

+                                    U+03C3 ISOgrk3 -->

+<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->

+<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,

+                                    U+03C5 ISOgrk3 -->

+<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->

+<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->

+<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->

+<!ENTITY omega    "&#969;"> <!-- greek small letter omega,

+                                    U+03C9 ISOgrk3 -->

+<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,

+                                    U+03D1 NEW -->

+<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,

+                                    U+03D2 NEW -->

+<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->

+

+<!-- General Punctuation -->

+<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,

+                                     U+2022 ISOpub  -->

+<!-- bullet is NOT the same as bullet operator, U+2219 -->

+<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,

+                                     U+2026 ISOpub  -->

+<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->

+<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,

+                                     U+2033 ISOtech -->

+<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,

+                                     U+203E NEW -->

+<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->

+

+<!-- Letterlike Symbols -->

+<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set

+                                     = Weierstrass p, U+2118 ISOamso -->

+<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,

+                                     U+2111 ISOamso -->

+<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,

+                                     U+211C ISOamso -->

+<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->

+<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,

+                                     U+2135 NEW -->

+<!-- alef symbol is NOT the same as hebrew letter alef,

+     U+05D0 although the same glyph could be used to depict both characters -->

+

+<!-- Arrows -->

+<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->

+<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->

+<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->

+<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->

+<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->

+<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards

+                                     = carriage return, U+21B5 NEW -->

+<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->

+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow

+    but also does not have any other character for that function. So lArr can

+    be used for 'is implied by' as ISOtech suggests -->

+<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->

+<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,

+                                     U+21D2 ISOtech -->

+<!-- Unicode does not say this is the 'implies' character but does not have 

+     another character with this function so rArr can be used for 'implies'

+     as ISOtech suggests -->

+<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->

+<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,

+                                     U+21D4 ISOamsa -->

+

+<!-- Mathematical Operators -->

+<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->

+<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->

+<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->

+<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->

+<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,

+                                     U+2207 ISOtech -->

+<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->

+<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->

+<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->

+<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,

+                                     U+220F ISOamsb -->

+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though

+     the same glyph might be used for both -->

+<!ENTITY sum      "&#8721;"> <!-- n-ary summation, U+2211 ISOamsb -->

+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'

+     though the same glyph might be used for both -->

+<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->

+<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->

+<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,

+                                     U+221A ISOtech -->

+<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->

+<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->

+<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->

+<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->

+<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->

+<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->

+<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->

+<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->

+<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->

+<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,

+                                     U+223C ISOtech -->

+<!-- tilde operator is NOT the same character as the tilde, U+007E,

+     although the same glyph might be used to represent both  -->

+<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->

+<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,

+                                     U+2248 ISOamsr -->

+<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->

+<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->

+<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->

+<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,

+                                     U+2265 ISOtech -->

+<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->

+<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->

+<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->

+<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->

+<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,

+                                     U+2287 ISOtech -->

+<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,

+                                     U+2295 ISOamsb -->

+<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,

+                                     U+2297 ISOamsb -->

+<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,

+                                     U+22A5 ISOtech -->

+<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->

+<!-- dot operator is NOT the same character as U+00B7 middle dot -->

+

+<!-- Miscellaneous Technical -->

+<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,

+                                     U+2308 ISOamsc  -->

+<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->

+<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,

+                                     U+230A ISOamsc  -->

+<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->

+<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,

+                                     U+2329 ISOtech -->

+<!-- lang is NOT the same character as U+003C 'less than sign' 

+     or U+2039 'single left-pointing angle quotation mark' -->

+<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,

+                                     U+232A ISOtech -->

+<!-- rang is NOT the same character as U+003E 'greater than sign' 

+     or U+203A 'single right-pointing angle quotation mark' -->

+

+<!-- Geometric Shapes -->

+<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->

+

+<!-- Miscellaneous Symbols -->

+<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->

+<!-- black here seems to mean filled as opposed to hollow -->

+<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,

+                                     U+2663 ISOpub -->

+<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,

+                                     U+2665 ISOpub -->

+<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->

+

+

+<!ENTITY % xhtml-special

+    PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"

+           "xhtml-special.ent" >

+<!-- Special characters for XHTML -->

+

+<!-- Character entity set. Typical invocation:

+     <!ENTITY % HTMLspecial PUBLIC

+        "-//W3C//ENTITIES Special for XHTML//EN"

+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">

+     %HTMLspecial;

+-->

+

+<!-- Portions (C) International Organization for Standardization 1986:

+     Permission to copy in any form is granted for use with

+     conforming SGML systems and applications as defined in

+     ISO 8879, provided this notice is included in all copies.

+-->

+

+<!-- Relevant ISO entity set is given unless names are newly introduced.

+     New names (i.e., not in ISO 8879 list) do not clash with any

+     existing ISO 8879 entity names. ISO 10646 character numbers

+     are given for each character, in hex. values are decimal

+     conversions of the ISO 10646 values and refer to the document

+     character set. Names are Unicode names. 

+-->

+

+<!-- C0 Controls and Basic Latin -->

+<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->

+<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->

+<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->

+<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->

+<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->

+

+<!-- Latin Extended-A -->

+<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,

+                                    U+0152 ISOlat2 -->

+<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->

+<!-- ligature is a misnomer, this is a separate character in some languages -->

+<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,

+                                    U+0160 ISOlat2 -->

+<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,

+                                    U+0161 ISOlat2 -->

+<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,

+                                    U+0178 ISOlat2 -->

+

+<!-- Spacing Modifier Letters -->

+<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,

+                                    U+02C6 ISOpub -->

+<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->

+

+<!-- General Punctuation -->

+<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->

+<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->

+<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->

+<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,

+                                    U+200C NEW RFC 2070 -->

+<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->

+<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->

+<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->

+<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->

+<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->

+<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,

+                                    U+2018 ISOnum -->

+<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,

+                                    U+2019 ISOnum -->

+<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->

+<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,

+                                    U+201C ISOnum -->

+<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,

+                                    U+201D ISOnum -->

+<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->

+<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->

+<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->

+<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->

+<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,

+                                    U+2039 ISO proposed -->

+<!-- lsaquo is proposed but not yet ISO standardized -->

+<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,

+                                    U+203A ISO proposed -->

+<!-- rsaquo is proposed but not yet ISO standardized -->

+

+<!-- Currency Symbols -->

+<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->

+

+

+<!-- end of xhtml-charent-1.mod -->

+]]>

+

+<!-- end of xhtml-framework-1.mod -->

+]]>

+

+<!-- Post-Framework Redeclaration placeholder  ................... -->

+<!-- this serves as a location to insert markup declarations

+     into the DTD following the framework declarations.

+-->

+<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >

+<![%xhtml-postfw-redecl.module;[

+%xhtml-postfw-redecl.mod;

+<!-- end of xhtml-postfw-redecl.module -->]]>

+

+<!-- Text Module (Required)  ..................................... -->

+<!ENTITY % xhtml-text.module "INCLUDE" >

+<![%xhtml-text.module;[

+<!ENTITY % xhtml-text.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Text Module  ................................................... -->

+<!-- file: xhtml-text-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Textual Content

+

+     The Text module includes declarations for all core

+     text container elements and their attributes.

+-->

+

+<!ENTITY % xhtml-inlstruct.module "INCLUDE" >

+<![%xhtml-inlstruct.module;[

+<!ENTITY % xhtml-inlstruct.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"

+            "xhtml-inlstruct-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Inline Structural Module  ...................................... -->

+<!-- file: xhtml-inlstruct-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Inline Structural

+

+        br, span

+

+     This module declares the elements and their attributes

+     used to support inline-level structural markup.

+-->

+

+<!-- br: forced line break ............................. -->

+

+<!ENTITY % br.element  "INCLUDE" >

+<![%br.element;[

+

+<!ENTITY % br.content  "EMPTY" >

+<!ENTITY % br.qname  "br" >

+<!ELEMENT %br.qname;  %br.content; >

+

+<!-- end of br.element -->]]>

+

+<!ENTITY % br.attlist  "INCLUDE" >

+<![%br.attlist;[

+<!ATTLIST %br.qname;

+      %Core.attrib;

+>

+<!-- end of br.attlist -->]]>

+

+<!-- span: generic inline container .................... -->

+

+<!ENTITY % span.element  "INCLUDE" >

+<![%span.element;[

+<!ENTITY % span.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % span.qname  "span" >

+<!ELEMENT %span.qname;  %span.content; >

+<!-- end of span.element -->]]>

+

+<!ENTITY % span.attlist  "INCLUDE" >

+<![%span.attlist;[

+<!ATTLIST %span.qname;

+      %Common.attrib;

+>

+<!-- end of span.attlist -->]]>

+

+<!-- end of xhtml-inlstruct-1.mod -->

+]]>

+

+<!ENTITY % xhtml-inlphras.module "INCLUDE" >

+<![%xhtml-inlphras.module;[

+<!ENTITY % xhtml-inlphras.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"

+            "xhtml-inlphras-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Inline Phrasal Module  ......................................... -->

+<!-- file: xhtml-inlphras-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Inline Phrasal

+

+        abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var

+

+     This module declares the elements and their attributes used to

+     support inline-level phrasal markup.

+-->

+

+<!ENTITY % abbr.element  "INCLUDE" >

+<![%abbr.element;[

+<!ENTITY % abbr.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % abbr.qname  "abbr" >

+<!ELEMENT %abbr.qname;  %abbr.content; >

+<!-- end of abbr.element -->]]>

+

+<!ENTITY % abbr.attlist  "INCLUDE" >

+<![%abbr.attlist;[

+<!ATTLIST %abbr.qname;

+      %Common.attrib;

+>

+<!-- end of abbr.attlist -->]]>

+

+<!ENTITY % acronym.element  "INCLUDE" >

+<![%acronym.element;[

+<!ENTITY % acronym.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % acronym.qname  "acronym" >

+<!ELEMENT %acronym.qname;  %acronym.content; >

+<!-- end of acronym.element -->]]>

+

+<!ENTITY % acronym.attlist  "INCLUDE" >

+<![%acronym.attlist;[

+<!ATTLIST %acronym.qname;

+      %Common.attrib;

+>

+<!-- end of acronym.attlist -->]]>

+

+<!ENTITY % cite.element  "INCLUDE" >

+<![%cite.element;[

+<!ENTITY % cite.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % cite.qname  "cite" >

+<!ELEMENT %cite.qname;  %cite.content; >

+<!-- end of cite.element -->]]>

+

+<!ENTITY % cite.attlist  "INCLUDE" >

+<![%cite.attlist;[

+<!ATTLIST %cite.qname;

+      %Common.attrib;

+>

+<!-- end of cite.attlist -->]]>

+

+<!ENTITY % code.element  "INCLUDE" >

+<![%code.element;[

+<!ENTITY % code.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % code.qname  "code" >

+<!ELEMENT %code.qname;  %code.content; >

+<!-- end of code.element -->]]>

+

+<!ENTITY % code.attlist  "INCLUDE" >

+<![%code.attlist;[

+<!ATTLIST %code.qname;

+      %Common.attrib;

+>

+<!-- end of code.attlist -->]]>

+

+<!ENTITY % dfn.element  "INCLUDE" >

+<![%dfn.element;[

+<!ENTITY % dfn.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % dfn.qname  "dfn" >

+<!ELEMENT %dfn.qname;  %dfn.content; >

+<!-- end of dfn.element -->]]>

+

+<!ENTITY % dfn.attlist  "INCLUDE" >

+<![%dfn.attlist;[

+<!ATTLIST %dfn.qname;

+      %Common.attrib;

+>

+<!-- end of dfn.attlist -->]]>

+

+<!ENTITY % em.element  "INCLUDE" >

+<![%em.element;[

+<!ENTITY % em.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % em.qname  "em" >

+<!ELEMENT %em.qname;  %em.content; >

+<!-- end of em.element -->]]>

+

+<!ENTITY % em.attlist  "INCLUDE" >

+<![%em.attlist;[

+<!ATTLIST %em.qname;

+      %Common.attrib;

+>

+<!-- end of em.attlist -->]]>

+

+<!ENTITY % kbd.element  "INCLUDE" >

+<![%kbd.element;[

+<!ENTITY % kbd.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % kbd.qname  "kbd" >

+<!ELEMENT %kbd.qname;  %kbd.content; >

+<!-- end of kbd.element -->]]>

+

+<!ENTITY % kbd.attlist  "INCLUDE" >

+<![%kbd.attlist;[

+<!ATTLIST %kbd.qname;

+      %Common.attrib;

+>

+<!-- end of kbd.attlist -->]]>

+

+<!ENTITY % q.element  "INCLUDE" >

+<![%q.element;[

+<!ENTITY % q.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % q.qname  "q" >

+<!ELEMENT %q.qname;  %q.content; >

+<!-- end of q.element -->]]>

+

+<!ENTITY % q.attlist  "INCLUDE" >

+<![%q.attlist;[

+<!ATTLIST %q.qname;

+      %Common.attrib;

+      cite         %URI.datatype;           #IMPLIED

+>

+<!-- end of q.attlist -->]]>

+

+<!ENTITY % samp.element  "INCLUDE" >

+<![%samp.element;[

+<!ENTITY % samp.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % samp.qname  "samp" >

+<!ELEMENT %samp.qname;  %samp.content; >

+<!-- end of samp.element -->]]>

+

+<!ENTITY % samp.attlist  "INCLUDE" >

+<![%samp.attlist;[

+<!ATTLIST %samp.qname;

+      %Common.attrib;

+>

+<!-- end of samp.attlist -->]]>

+

+<!ENTITY % strong.element  "INCLUDE" >

+<![%strong.element;[

+<!ENTITY % strong.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % strong.qname  "strong" >

+<!ELEMENT %strong.qname;  %strong.content; >

+<!-- end of strong.element -->]]>

+

+<!ENTITY % strong.attlist  "INCLUDE" >

+<![%strong.attlist;[

+<!ATTLIST %strong.qname;

+      %Common.attrib;

+>

+<!-- end of strong.attlist -->]]>

+

+<!ENTITY % var.element  "INCLUDE" >

+<![%var.element;[

+<!ENTITY % var.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % var.qname  "var" >

+<!ELEMENT %var.qname;  %var.content; >

+<!-- end of var.element -->]]>

+

+<!ENTITY % var.attlist  "INCLUDE" >

+<![%var.attlist;[

+<!ATTLIST %var.qname;

+      %Common.attrib;

+>

+<!-- end of var.attlist -->]]>

+

+<!-- end of xhtml-inlphras-1.mod -->

+]]>

+

+<!ENTITY % xhtml-blkstruct.module "INCLUDE" >

+<![%xhtml-blkstruct.module;[

+<!ENTITY % xhtml-blkstruct.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"

+            "xhtml-blkstruct-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Block Structural Module  ....................................... -->

+<!-- file: xhtml-blkstruct-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Block Structural

+

+        div, p

+

+     This module declares the elements and their attributes used to

+     support block-level structural markup.

+-->

+

+<!ENTITY % div.element  "INCLUDE" >

+<![%div.element;[

+<!ENTITY % div.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ENTITY % div.qname  "div" >

+<!ELEMENT %div.qname;  %div.content; >

+<!-- end of div.element -->]]>

+

+<!ENTITY % div.attlist  "INCLUDE" >

+<![%div.attlist;[

+<!ATTLIST %div.qname;

+      %Common.attrib;

+>

+<!-- end of div.attlist -->]]>

+

+<!ENTITY % p.element  "INCLUDE" >

+<![%p.element;[

+<!ENTITY % p.content

+     "( #PCDATA | %Inline.mix; )*" >

+<!ENTITY % p.qname  "p" >

+<!ELEMENT %p.qname;  %p.content; >

+<!-- end of p.element -->]]>

+

+<!ENTITY % p.attlist  "INCLUDE" >

+<![%p.attlist;[

+<!ATTLIST %p.qname;

+      %Common.attrib;

+>

+<!-- end of p.attlist -->]]>

+

+<!-- end of xhtml-blkstruct-1.mod -->

+]]>

+

+<!ENTITY % xhtml-blkphras.module "INCLUDE" >

+<![%xhtml-blkphras.module;[

+<!ENTITY % xhtml-blkphras.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"

+            "xhtml-blkphras-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Block Phrasal Module  .......................................... -->

+<!-- file: xhtml-blkphras-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Block Phrasal

+

+        address, blockquote, pre, h1, h2, h3, h4, h5, h6

+

+     This module declares the elements and their attributes used to

+     support block-level phrasal markup.

+-->

+

+<!ENTITY % address.element  "INCLUDE" >

+<![%address.element;[

+<!ENTITY % address.content

+     "( #PCDATA | %Inline.mix; )*" >

+<!ENTITY % address.qname  "address" >

+<!ELEMENT %address.qname;  %address.content; >

+<!-- end of address.element -->]]>

+

+<!ENTITY % address.attlist  "INCLUDE" >

+<![%address.attlist;[

+<!ATTLIST %address.qname;

+      %Common.attrib;

+>

+<!-- end of address.attlist -->]]>

+

+<!ENTITY % blockquote.element  "INCLUDE" >

+<![%blockquote.element;[

+<!ENTITY % blockquote.content

+     "( %Block.mix; )+"

+>

+<!ENTITY % blockquote.qname  "blockquote" >

+<!ELEMENT %blockquote.qname;  %blockquote.content; >

+<!-- end of blockquote.element -->]]>

+

+<!ENTITY % blockquote.attlist  "INCLUDE" >

+<![%blockquote.attlist;[

+<!ATTLIST %blockquote.qname;

+      %Common.attrib;

+      cite         %URI.datatype;           #IMPLIED

+>

+<!-- end of blockquote.attlist -->]]>

+

+<!ENTITY % pre.element  "INCLUDE" >

+<![%pre.element;[

+<!ENTITY % pre.content

+     "( #PCDATA

+      | %InlStruct.class;

+      %InlPhras.class;

+      | %tt.qname; | %i.qname; | %b.qname;

+      %I18n.class;

+      %Anchor.class;

+      | %script.qname; | %map.qname;

+      %Inline.extra; )*"

+>

+<!ENTITY % pre.qname  "pre" >

+<!ELEMENT %pre.qname;  %pre.content; >

+<!-- end of pre.element -->]]>

+

+<!ENTITY % pre.attlist  "INCLUDE" >

+<![%pre.attlist;[

+<!ATTLIST %pre.qname;

+      %Common.attrib;

+>

+<!-- end of pre.attlist -->]]>

+

+<!-- ...................  Heading Elements  ................... -->

+

+<!ENTITY % Heading.content  "( #PCDATA | %Inline.mix; )*" >

+

+<!ENTITY % h1.element  "INCLUDE" >

+<![%h1.element;[

+<!ENTITY % h1.qname  "h1" >

+<!ELEMENT %h1.qname;  %Heading.content; >

+<!-- end of h1.element -->]]>

+

+<!ENTITY % h1.attlist  "INCLUDE" >

+<![%h1.attlist;[

+<!ATTLIST %h1.qname;

+      %Common.attrib;

+>

+<!-- end of h1.attlist -->]]>

+

+<!ENTITY % h2.element  "INCLUDE" >

+<![%h2.element;[

+<!ENTITY % h2.qname  "h2" >

+<!ELEMENT %h2.qname;  %Heading.content; >

+<!-- end of h2.element -->]]>

+

+<!ENTITY % h2.attlist  "INCLUDE" >

+<![%h2.attlist;[

+<!ATTLIST %h2.qname;

+      %Common.attrib;

+>

+<!-- end of h2.attlist -->]]>

+

+<!ENTITY % h3.element  "INCLUDE" >

+<![%h3.element;[

+<!ENTITY % h3.qname  "h3" >

+<!ELEMENT %h3.qname;  %Heading.content; >

+<!-- end of h3.element -->]]>

+

+<!ENTITY % h3.attlist  "INCLUDE" >

+<![%h3.attlist;[

+<!ATTLIST %h3.qname;

+      %Common.attrib;

+>

+<!-- end of h3.attlist -->]]>

+

+<!ENTITY % h4.element  "INCLUDE" >

+<![%h4.element;[

+<!ENTITY % h4.qname  "h4" >

+<!ELEMENT %h4.qname;  %Heading.content; >

+<!-- end of h4.element -->]]>

+

+<!ENTITY % h4.attlist  "INCLUDE" >

+<![%h4.attlist;[

+<!ATTLIST %h4.qname;

+      %Common.attrib;

+>

+<!-- end of h4.attlist -->]]>

+

+<!ENTITY % h5.element  "INCLUDE" >

+<![%h5.element;[

+<!ENTITY % h5.qname  "h5" >

+<!ELEMENT %h5.qname;  %Heading.content; >

+<!-- end of h5.element -->]]>

+

+<!ENTITY % h5.attlist  "INCLUDE" >

+<![%h5.attlist;[

+<!ATTLIST %h5.qname;

+      %Common.attrib;

+>

+<!-- end of h5.attlist -->]]>

+

+<!ENTITY % h6.element  "INCLUDE" >

+<![%h6.element;[

+<!ENTITY % h6.qname  "h6" >

+<!ELEMENT %h6.qname;  %Heading.content; >

+<!-- end of h6.element -->]]>

+

+<!ENTITY % h6.attlist  "INCLUDE" >

+<![%h6.attlist;[

+<!ATTLIST %h6.qname;

+      %Common.attrib;

+>

+<!-- end of h6.attlist -->]]>

+

+<!-- end of xhtml-blkphras-1.mod -->

+]]>

+

+<!-- end of xhtml-text-1.mod -->

+]]>

+

+<!-- Hypertext Module (required) ................................. -->

+<!ENTITY % xhtml-hypertext.module "INCLUDE" >

+<![%xhtml-hypertext.module;[

+<!ENTITY % xhtml-hypertext.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Hypertext Module  .............................................. -->

+<!-- file: xhtml-hypertext-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Hypertext

+

+        a

+

+     This module declares the anchor ('a') element type, which

+     defines the source of a hypertext link. The destination

+     (or link 'target') is identified via its 'id' attribute

+     rather than the 'name' attribute as was used in HTML.

+-->

+

+<!-- ............  Anchor Element  ............ -->

+

+<!ENTITY % a.element  "INCLUDE" >

+<![%a.element;[

+<!ENTITY % a.content

+     "( #PCDATA | %InlNoAnchor.mix; )*"

+>

+<!ENTITY % a.qname  "a" >

+<!ELEMENT %a.qname;  %a.content; >

+<!-- end of a.element -->]]>

+

+<!ENTITY % a.attlist  "INCLUDE" >

+<![%a.attlist;[

+<!ATTLIST %a.qname;

+      %Common.attrib;

+      href         %URI.datatype;           #IMPLIED

+      charset      %Charset.datatype;       #IMPLIED

+      type         %ContentType.datatype;   #IMPLIED

+      hreflang     %LanguageCode.datatype;  #IMPLIED

+      rel          %LinkTypes.datatype;     #IMPLIED

+      rev          %LinkTypes.datatype;     #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+>

+<!-- end of a.attlist -->]]>

+

+<!-- end of xhtml-hypertext-1.mod -->

+]]>

+

+<!-- Lists Module (required)  .................................... -->

+<!ENTITY % xhtml-list.module "INCLUDE" >

+<![%xhtml-list.module;[

+<!ENTITY % xhtml-list.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Lists Module  .................................................. -->

+<!-- file: xhtml-list-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Lists

+

+        dl, dt, dd, ol, ul, li

+

+     This module declares the list-oriented element types

+     and their attributes.

+-->

+

+<!ENTITY % dl.qname  "dl" >

+<!ENTITY % dt.qname  "dt" >

+<!ENTITY % dd.qname  "dd" >

+<!ENTITY % ol.qname  "ol" >

+<!ENTITY % ul.qname  "ul" >

+<!ENTITY % li.qname  "li" >

+

+<!-- dl: Definition List ............................... -->

+

+<!ENTITY % dl.element  "INCLUDE" >

+<![%dl.element;[

+<!ENTITY % dl.content  "( %dt.qname; | %dd.qname; )+" >

+<!ELEMENT %dl.qname;  %dl.content; >

+<!-- end of dl.element -->]]>

+

+<!ENTITY % dl.attlist  "INCLUDE" >

+<![%dl.attlist;[

+<!ATTLIST %dl.qname;

+      %Common.attrib;

+>

+<!-- end of dl.attlist -->]]>

+

+<!-- dt: Definition Term ............................... -->

+

+<!ENTITY % dt.element  "INCLUDE" >

+<![%dt.element;[

+<!ENTITY % dt.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ELEMENT %dt.qname;  %dt.content; >

+<!-- end of dt.element -->]]>

+

+<!ENTITY % dt.attlist  "INCLUDE" >

+<![%dt.attlist;[

+<!ATTLIST %dt.qname;

+      %Common.attrib;

+>

+<!-- end of dt.attlist -->]]>

+

+<!-- dd: Definition Description ........................ -->

+

+<!ENTITY % dd.element  "INCLUDE" >

+<![%dd.element;[

+<!ENTITY % dd.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ELEMENT %dd.qname;  %dd.content; >

+<!-- end of dd.element -->]]>

+

+<!ENTITY % dd.attlist  "INCLUDE" >

+<![%dd.attlist;[

+<!ATTLIST %dd.qname;

+      %Common.attrib;

+>

+<!-- end of dd.attlist -->]]>

+

+<!-- ol: Ordered List (numbered styles) ................ -->

+

+<!ENTITY % ol.element  "INCLUDE" >

+<![%ol.element;[

+<!ENTITY % ol.content  "( %li.qname; )+" >

+<!ELEMENT %ol.qname;  %ol.content; >

+<!-- end of ol.element -->]]>

+

+<!ENTITY % ol.attlist  "INCLUDE" >

+<![%ol.attlist;[

+<!ATTLIST %ol.qname;

+      %Common.attrib;

+>

+<!-- end of ol.attlist -->]]>

+

+<!-- ul: Unordered List (bullet styles) ................ -->

+

+<!ENTITY % ul.element  "INCLUDE" >

+<![%ul.element;[

+<!ENTITY % ul.content  "( %li.qname; )+" >

+<!ELEMENT %ul.qname;  %ul.content; >

+<!-- end of ul.element -->]]>

+

+<!ENTITY % ul.attlist  "INCLUDE" >

+<![%ul.attlist;[

+<!ATTLIST %ul.qname;

+      %Common.attrib;

+>

+<!-- end of ul.attlist -->]]>

+

+<!-- li: List Item ..................................... -->

+

+<!ENTITY % li.element  "INCLUDE" >

+<![%li.element;[

+<!ENTITY % li.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ELEMENT %li.qname;  %li.content; >

+<!-- end of li.element -->]]>

+

+<!ENTITY % li.attlist  "INCLUDE" >

+<![%li.attlist;[

+<!ATTLIST %li.qname;

+      %Common.attrib;

+>

+<!-- end of li.attlist -->]]>

+

+<!-- end of xhtml-list-1.mod -->

+]]>

+

+<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

+

+<!-- Edit Module  ................................................ -->

+<!ENTITY % xhtml-edit.module "INCLUDE" >

+<![%xhtml-edit.module;[

+<!ENTITY % xhtml-edit.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Editing Elements Module  ....................................... -->

+<!-- file: xhtml-edit-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Editing Elements

+

+        ins, del

+

+     This module declares element types and attributes used to indicate

+     inserted and deleted content while editing a document.

+-->

+

+<!-- ins: Inserted Text  ............................... -->

+

+<!ENTITY % ins.element  "INCLUDE" >

+<![%ins.element;[

+<!ENTITY % ins.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ENTITY % ins.qname  "ins" >

+<!ELEMENT %ins.qname;  %ins.content; >

+<!-- end of ins.element -->]]>

+

+<!ENTITY % ins.attlist  "INCLUDE" >

+<![%ins.attlist;[

+<!ATTLIST %ins.qname;

+      %Common.attrib;

+      cite         %URI.datatype;           #IMPLIED

+      datetime     %Datetime.datatype;      #IMPLIED

+>

+<!-- end of ins.attlist -->]]>

+

+<!-- del: Deleted Text  ................................ -->

+

+<!ENTITY % del.element  "INCLUDE" >

+<![%del.element;[

+<!ENTITY % del.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ENTITY % del.qname  "del" >

+<!ELEMENT %del.qname;  %del.content; >

+<!-- end of del.element -->]]>

+

+<!ENTITY % del.attlist  "INCLUDE" >

+<![%del.attlist;[

+<!ATTLIST %del.qname;

+      %Common.attrib;

+      cite         %URI.datatype;           #IMPLIED

+      datetime     %Datetime.datatype;      #IMPLIED

+>

+<!-- end of del.attlist -->]]>

+

+<!-- end of xhtml-edit-1.mod -->

+]]>

+

+<!-- BIDI Override Module  ....................................... -->

+<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >

+<![%xhtml-bdo.module;[

+<!ENTITY % xhtml-bdo.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML BDO Element Module ............................................. -->

+<!-- file: xhtml-bdo-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Bidirectional Override (bdo) Element

+

+     This modules declares the element 'bdo', used to override the

+     Unicode bidirectional algorithm for selected fragments of text.

+

+     DEPENDENCIES:

+     Relies on the conditional section keyword %XHTML.bidi; declared

+     as "INCLUDE". Bidirectional text support includes both the bdo

+     element and the 'dir' attribute.

+-->

+

+<!ENTITY % bdo.element  "INCLUDE" >

+<![%bdo.element;[

+<!ENTITY % bdo.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % bdo.qname  "bdo" >

+<!ELEMENT %bdo.qname;  %bdo.content; >

+<!-- end of bdo.element -->]]>

+

+<!ENTITY % bdo.attlist  "INCLUDE" >

+<![%bdo.attlist;[

+<!ATTLIST %bdo.qname;

+      %Core.attrib;

+      xml:lang     %LanguageCode.datatype;  #IMPLIED

+      dir          ( ltr | rtl )            #REQUIRED

+>

+]]>

+

+<!-- end of xhtml-bdo-1.mod -->

+]]>

+

+<!-- Ruby Module  ................................................ -->

+<!ENTITY % Ruby.common.attlists "INCLUDE" >

+<!ENTITY % Ruby.common.attrib "%Common.attrib;" >

+<!ENTITY % xhtml-ruby.module "INCLUDE" >

+<![%xhtml-ruby.module;[

+<!ENTITY % xhtml-ruby.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"

+            "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Ruby Module .................................................... -->

+<!-- file: xhtml-ruby-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $

+

+     This module is based on the W3C Ruby Annotation Specification:

+

+        http://www.w3.org/TR/ruby

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"

+       SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"

+

+     ...................................................................... -->

+

+<!-- Ruby Elements

+

+        ruby, rbc, rtc, rb, rt, rp

+

+     This module declares the elements and their attributes used to

+     support ruby annotation markup.

+-->

+

+<!-- declare qualified element type names:

+-->

+<!ENTITY % ruby.qname  "ruby" >

+<!ENTITY % rbc.qname  "rbc" >

+<!ENTITY % rtc.qname  "rtc" >

+<!ENTITY % rb.qname  "rb" >

+<!ENTITY % rt.qname  "rt" >

+<!ENTITY % rp.qname  "rp" >

+

+<!-- rp fallback is included by default.

+-->

+<!ENTITY % Ruby.fallback "INCLUDE" >

+<!ENTITY % Ruby.fallback.mandatory "IGNORE" >

+

+<!-- Complex ruby is included by default; it may be 

+     overridden by other modules to ignore it.

+-->

+<!ENTITY % Ruby.complex "INCLUDE" >

+

+<!-- Fragments for the content model of the ruby element -->

+<![%Ruby.fallback;[

+<![%Ruby.fallback.mandatory;[

+<!ENTITY % Ruby.content.simple 

+     "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"

+>

+]]>

+<!ENTITY % Ruby.content.simple 

+     "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"

+>

+]]>

+<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >

+

+<![%Ruby.complex;[

+<!ENTITY % Ruby.content.complex 

+     "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"

+>

+]]>

+<!ENTITY % Ruby.content.complex "" >

+

+<!-- Content models of the rb and the rt elements are intended to

+     allow other inline-level elements of its parent markup language,

+     but it should not include ruby descendent elements. The following

+     parameter entity %NoRuby.content; can be used to redefine

+     those content models with minimum effort.  It's defined as

+     '( #PCDATA )' by default.

+-->

+<!ENTITY % NoRuby.content "( #PCDATA )" >

+

+<!-- one or more digits (NUMBER) -->

+<!ENTITY % Number.datatype "CDATA" >

+

+<!-- ruby element ...................................... -->

+

+<!ENTITY % ruby.element  "INCLUDE" >

+<![%ruby.element;[

+<!ENTITY % ruby.content

+     "( %Ruby.content.simple; %Ruby.content.complex; )"

+>

+<!ELEMENT %ruby.qname;  %ruby.content; >

+<!-- end of ruby.element -->]]>

+

+<![%Ruby.complex;[

+<!-- rbc (ruby base component) element ................. -->

+

+<!ENTITY % rbc.element  "INCLUDE" >

+<![%rbc.element;[

+<!ENTITY % rbc.content

+     "(%rb.qname;)+"

+>

+<!ELEMENT %rbc.qname;  %rbc.content; >

+<!-- end of rbc.element -->]]>

+

+<!-- rtc (ruby text component) element ................. -->

+

+<!ENTITY % rtc.element  "INCLUDE" >

+<![%rtc.element;[

+<!ENTITY % rtc.content

+     "(%rt.qname;)+"

+>

+<!ELEMENT %rtc.qname;  %rtc.content; >

+<!-- end of rtc.element -->]]>

+]]>

+

+<!-- rb (ruby base) element ............................ -->

+

+<!ENTITY % rb.element  "INCLUDE" >

+<![%rb.element;[

+<!-- %rb.content; uses %NoRuby.content; as its content model,

+     which is '( #PCDATA )' by default. It may be overridden

+     by other modules to allow other inline-level elements

+     of its parent markup language, but it should not include

+     ruby descendent elements.

+-->

+<!ENTITY % rb.content "%NoRuby.content;" >

+<!ELEMENT %rb.qname;  %rb.content; >

+<!-- end of rb.element -->]]>

+

+<!-- rt (ruby text) element ............................ -->

+

+<!ENTITY % rt.element  "INCLUDE" >

+<![%rt.element;[

+<!-- %rt.content; uses %NoRuby.content; as its content model,

+     which is '( #PCDATA )' by default. It may be overridden

+     by other modules to allow other inline-level elements

+     of its parent markup language, but it should not include

+     ruby descendent elements.

+-->

+<!ENTITY % rt.content "%NoRuby.content;" >

+

+<!ELEMENT %rt.qname;  %rt.content; >

+<!-- end of rt.element -->]]>

+

+<!-- rbspan attribute is used for complex ruby only ...... -->

+<![%Ruby.complex;[

+<!ENTITY % rt.attlist  "INCLUDE" >

+<![%rt.attlist;[

+<!ATTLIST %rt.qname;

+      rbspan         %Number.datatype;      "1"

+>

+<!-- end of rt.attlist -->]]>

+]]>

+

+<!-- rp (ruby parenthesis) element ..................... -->

+

+<![%Ruby.fallback;[

+<!ENTITY % rp.element  "INCLUDE" >

+<![%rp.element;[

+<!ENTITY % rp.content

+     "( #PCDATA )"

+>

+<!ELEMENT %rp.qname;  %rp.content; >

+<!-- end of rp.element -->]]>

+]]>

+

+<!-- Ruby Common Attributes

+

+     The following optional ATTLIST declarations provide an easy way

+     to define common attributes for ruby elements.  These declarations

+     are ignored by default.

+

+     Ruby elements are intended to have common attributes of its

+     parent markup language.  For example, if a markup language defines

+     common attributes as a parameter entity %attrs;, you may add

+     those attributes by just declaring the following parameter entities

+

+         <!ENTITY % Ruby.common.attlists  "INCLUDE" >

+         <!ENTITY % Ruby.common.attrib  "%attrs;" >

+

+     before including the Ruby module.

+-->

+

+<!ENTITY % Ruby.common.attlists  "IGNORE" >

+<![%Ruby.common.attlists;[

+<!ENTITY % Ruby.common.attrib  "" >

+

+<!-- common attributes for ruby ........................ -->

+

+<!ENTITY % Ruby.common.attlist  "INCLUDE" >

+<![%Ruby.common.attlist;[

+<!ATTLIST %ruby.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Ruby.common.attlist -->]]>

+

+<![%Ruby.complex;[

+<!-- common attributes for rbc ......................... -->

+

+<!ENTITY % Rbc.common.attlist  "INCLUDE" >

+<![%Rbc.common.attlist;[

+<!ATTLIST %rbc.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Rbc.common.attlist -->]]>

+

+<!-- common attributes for rtc ......................... -->

+

+<!ENTITY % Rtc.common.attlist  "INCLUDE" >

+<![%Rtc.common.attlist;[

+<!ATTLIST %rtc.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Rtc.common.attlist -->]]>

+]]>

+

+<!-- common attributes for rb .......................... -->

+

+<!ENTITY % Rb.common.attlist  "INCLUDE" >

+<![%Rb.common.attlist;[

+<!ATTLIST %rb.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Rb.common.attlist -->]]>

+

+<!-- common attributes for rt .......................... -->

+

+<!ENTITY % Rt.common.attlist  "INCLUDE" >

+<![%Rt.common.attlist;[

+<!ATTLIST %rt.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Rt.common.attlist -->]]>

+

+<![%Ruby.fallback;[

+<!-- common attributes for rp .......................... -->

+

+<!ENTITY % Rp.common.attlist  "INCLUDE" >

+<![%Rp.common.attlist;[

+<!ATTLIST %rp.qname;

+      %Ruby.common.attrib;

+>

+<!-- end of Rp.common.attlist -->]]>

+]]>

+]]>

+

+<!-- end of xhtml-ruby-1.mod -->

+]]>

+

+<!-- Presentation Module  ........................................ -->

+<!ENTITY % xhtml-pres.module "INCLUDE" >

+<![%xhtml-pres.module;[

+<!ENTITY % xhtml-pres.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Presentation Module ............................................ -->

+<!-- file: xhtml-pres-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Presentational Elements

+

+     This module defines elements and their attributes for

+     simple presentation-related markup.

+-->

+

+<!ENTITY % xhtml-inlpres.module "INCLUDE" >

+<![%xhtml-inlpres.module;[

+<!ENTITY % xhtml-inlpres.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"

+            "xhtml-inlpres-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Inline Presentation Module  .................................... -->

+<!-- file: xhtml-inlpres-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Inline Presentational Elements

+

+        b, big, i, small, sub, sup, tt

+

+     This module declares the elements and their attributes used to

+     support inline-level presentational markup.

+-->

+

+<!ENTITY % b.element  "INCLUDE" >

+<![%b.element;[

+<!ENTITY % b.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % b.qname  "b" >

+<!ELEMENT %b.qname;  %b.content; >

+<!-- end of b.element -->]]>

+

+<!ENTITY % b.attlist  "INCLUDE" >

+<![%b.attlist;[

+<!ATTLIST %b.qname;

+      %Common.attrib;

+>

+<!-- end of b.attlist -->]]>

+

+<!ENTITY % big.element  "INCLUDE" >

+<![%big.element;[

+<!ENTITY % big.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % big.qname  "big" >

+<!ELEMENT %big.qname;  %big.content; >

+<!-- end of big.element -->]]>

+

+<!ENTITY % big.attlist  "INCLUDE" >

+<![%big.attlist;[

+<!ATTLIST %big.qname;

+      %Common.attrib;

+>

+<!-- end of big.attlist -->]]>

+

+<!ENTITY % i.element  "INCLUDE" >

+<![%i.element;[

+<!ENTITY % i.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % i.qname  "i" >

+<!ELEMENT %i.qname;  %i.content; >

+<!-- end of i.element -->]]>

+

+<!ENTITY % i.attlist  "INCLUDE" >

+<![%i.attlist;[

+<!ATTLIST %i.qname;

+      %Common.attrib;

+>

+<!-- end of i.attlist -->]]>

+

+<!ENTITY % small.element  "INCLUDE" >

+<![%small.element;[

+<!ENTITY % small.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % small.qname  "small" >

+<!ELEMENT %small.qname;  %small.content; >

+<!-- end of small.element -->]]>

+

+<!ENTITY % small.attlist  "INCLUDE" >

+<![%small.attlist;[

+<!ATTLIST %small.qname;

+      %Common.attrib;

+>

+<!-- end of small.attlist -->]]>

+

+<!ENTITY % sub.element  "INCLUDE" >

+<![%sub.element;[

+<!ENTITY % sub.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % sub.qname  "sub" >

+<!ELEMENT %sub.qname;  %sub.content; >

+<!-- end of sub.element -->]]>

+

+<!ENTITY % sub.attlist  "INCLUDE" >

+<![%sub.attlist;[

+<!ATTLIST %sub.qname;

+      %Common.attrib;

+>

+<!-- end of sub.attlist -->]]>

+

+<!ENTITY % sup.element  "INCLUDE" >

+<![%sup.element;[

+<!ENTITY % sup.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % sup.qname  "sup" >

+<!ELEMENT %sup.qname;  %sup.content; >

+<!-- end of sup.element -->]]>

+

+<!ENTITY % sup.attlist  "INCLUDE" >

+<![%sup.attlist;[

+<!ATTLIST %sup.qname;

+      %Common.attrib;

+>

+<!-- end of sup.attlist -->]]>

+

+<!ENTITY % tt.element  "INCLUDE" >

+<![%tt.element;[

+<!ENTITY % tt.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ENTITY % tt.qname  "tt" >

+<!ELEMENT %tt.qname;  %tt.content; >

+<!-- end of tt.element -->]]>

+

+<!ENTITY % tt.attlist  "INCLUDE" >

+<![%tt.attlist;[

+<!ATTLIST %tt.qname;

+      %Common.attrib;

+>

+<!-- end of tt.attlist -->]]>

+

+<!-- end of xhtml-inlpres-1.mod -->

+]]>

+

+<!ENTITY % xhtml-blkpres.module "INCLUDE" >

+<![%xhtml-blkpres.module;[

+<!ENTITY % xhtml-blkpres.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"

+            "xhtml-blkpres-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Block Presentation Module  ..................................... -->

+<!-- file: xhtml-blkpres-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Block Presentational Elements

+

+        hr

+

+     This module declares the elements and their attributes used to

+     support block-level presentational markup.

+-->

+

+<!ENTITY % hr.element  "INCLUDE" >

+<![%hr.element;[

+<!ENTITY % hr.content  "EMPTY" >

+<!ENTITY % hr.qname  "hr" >

+<!ELEMENT %hr.qname;  %hr.content; >

+<!-- end of hr.element -->]]>

+

+<!ENTITY % hr.attlist  "INCLUDE" >

+<![%hr.attlist;[

+<!ATTLIST %hr.qname;

+      %Common.attrib;

+>

+<!-- end of hr.attlist -->]]>

+

+<!-- end of xhtml-blkpres-1.mod -->

+]]>

+

+<!-- end of xhtml-pres-1.mod -->

+]]>

+

+<!-- Link Element Module  ........................................ -->

+<!ENTITY % xhtml-link.module "INCLUDE" >

+<![%xhtml-link.module;[

+<!ENTITY % xhtml-link.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Link Element Module  ........................................... -->

+<!-- file: xhtml-link-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Link element

+

+        link

+

+     This module declares the link element type and its attributes,

+     which could (in principle) be used to define document-level links

+     to external resources such as:

+

+     a) for document specific toolbars/menus, e.g. start, contents,

+        previous, next, index, end, help

+     b) to link to a separate style sheet (rel="stylesheet")

+     c) to make a link to a script (rel="script")

+     d) by style sheets to control how collections of html nodes are

+        rendered into printed documents

+     e) to make a link to a printable version of this document

+        e.g. a postscript or pdf version (rel="alternate" media="print")

+-->

+

+<!-- link: Media-Independent Link ...................... -->

+

+<!ENTITY % link.element  "INCLUDE" >

+<![%link.element;[

+<!ENTITY % link.content  "EMPTY" >

+<!ENTITY % link.qname  "link" >

+<!ELEMENT %link.qname;  %link.content; >

+<!-- end of link.element -->]]>

+

+<!ENTITY % link.attlist  "INCLUDE" >

+<![%link.attlist;[

+<!ATTLIST %link.qname;

+      %Common.attrib;

+      charset      %Charset.datatype;       #IMPLIED

+      href         %URI.datatype;           #IMPLIED

+      hreflang     %LanguageCode.datatype;  #IMPLIED

+      type         %ContentType.datatype;   #IMPLIED

+      rel          %LinkTypes.datatype;     #IMPLIED

+      rev          %LinkTypes.datatype;     #IMPLIED

+      media        %MediaDesc.datatype;     #IMPLIED

+>

+<!-- end of link.attlist -->]]>

+

+<!-- end of xhtml-link-1.mod -->

+]]>

+

+<!-- Document Metainformation Module  ............................ -->

+<!ENTITY % xhtml-meta.module "INCLUDE" >

+<![%xhtml-meta.module;[

+<!ENTITY % xhtml-meta.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Document Metainformation Module  ............................... -->

+<!-- file: xhtml-meta-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Meta Information

+

+        meta

+

+     This module declares the meta element type and its attributes,

+     used to provide declarative document metainformation.

+-->

+

+<!-- meta: Generic Metainformation ..................... -->

+

+<!ENTITY % meta.element  "INCLUDE" >

+<![%meta.element;[

+<!ENTITY % meta.content  "EMPTY" >

+<!ENTITY % meta.qname  "meta" >

+<!ELEMENT %meta.qname;  %meta.content; >

+<!-- end of meta.element -->]]>

+

+<!ENTITY % meta.attlist  "INCLUDE" >

+<![%meta.attlist;[

+<!ATTLIST %meta.qname;

+      %XHTML.xmlns.attrib;

+      %I18n.attrib;

+      http-equiv   NMTOKEN                  #IMPLIED

+      name         NMTOKEN                  #IMPLIED

+      content      CDATA                    #REQUIRED

+      scheme       CDATA                    #IMPLIED

+>

+<!-- end of meta.attlist -->]]>

+

+<!-- end of xhtml-meta-1.mod -->

+]]>

+

+<!-- Base Element Module  ........................................ -->

+<!ENTITY % xhtml-base.module "INCLUDE" >

+<![%xhtml-base.module;[

+<!ENTITY % xhtml-base.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Base Element Module  ........................................... -->

+<!-- file: xhtml-base-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Base element

+

+        base

+

+     This module declares the base element type and its attributes,

+     used to define a base URI against which relative URIs in the

+     document will be resolved.

+

+     Note that this module also redeclares the content model for

+     the head element to include the base element.

+-->

+

+<!-- base: Document Base URI ........................... -->

+

+<!ENTITY % base.element  "INCLUDE" >

+<![%base.element;[

+<!ENTITY % base.content  "EMPTY" >

+<!ENTITY % base.qname  "base" >

+<!ELEMENT %base.qname;  %base.content; >

+<!-- end of base.element -->]]>

+

+<!ENTITY % base.attlist  "INCLUDE" >

+<![%base.attlist;[

+<!ATTLIST %base.qname;

+      %XHTML.xmlns.attrib;

+      href         %URI.datatype;           #REQUIRED

+>

+<!-- end of base.attlist -->]]>

+

+<!ENTITY % head.content

+    "( %HeadOpts.mix;,

+     ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? )

+     | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))"

+>

+

+<!-- end of xhtml-base-1.mod -->

+]]>

+

+<!-- Scripting Module  ........................................... -->

+<!ENTITY % xhtml-script.module "INCLUDE" >

+<![%xhtml-script.module;[

+<!ENTITY % xhtml-script.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Document Scripting Module  ..................................... -->

+<!-- file: xhtml-script-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Scripting

+

+        script, noscript

+

+     This module declares element types and attributes used to provide

+     support for executable scripts as well as an alternate content

+     container where scripts are not supported.

+-->

+

+<!-- script: Scripting Statement ....................... -->

+

+<!ENTITY % script.element  "INCLUDE" >

+<![%script.element;[

+<!ENTITY % script.content  "( #PCDATA )" >

+<!ENTITY % script.qname  "script" >

+<!ELEMENT %script.qname;  %script.content; >

+<!-- end of script.element -->]]>

+

+<!ENTITY % script.attlist  "INCLUDE" >

+<![%script.attlist;[

+<!ATTLIST %script.qname;

+      %XHTML.xmlns.attrib;

+	  %id.attrib;

+      charset      %Charset.datatype;       #IMPLIED

+      type         %ContentType.datatype;   #REQUIRED

+      src          %URI.datatype;           #IMPLIED

+      defer        ( defer )                #IMPLIED

+>

+<!-- end of script.attlist -->]]>

+

+<!-- noscript: No-Script Alternate Content ............. -->

+

+<!ENTITY % noscript.element  "INCLUDE" >

+<![%noscript.element;[

+<!ENTITY % noscript.content

+     "( %Block.mix; )+"

+>

+<!ENTITY % noscript.qname  "noscript" >

+<!ELEMENT %noscript.qname;  %noscript.content; >

+<!-- end of noscript.element -->]]>

+

+<!ENTITY % noscript.attlist  "INCLUDE" >

+<![%noscript.attlist;[

+<!ATTLIST %noscript.qname;

+      %Common.attrib;

+>

+<!-- end of noscript.attlist -->]]>

+

+<!-- end of xhtml-script-1.mod -->

+]]>

+

+<!-- Style Sheets Module  ......................................... -->

+<!ENTITY % xhtml-style.module "INCLUDE" >

+<![%xhtml-style.module;[

+<!ENTITY % xhtml-style.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Document Style Sheet Module  ................................... -->

+<!-- file: xhtml-style-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Style Sheets

+

+        style

+

+     This module declares the style element type and its attributes,

+     used to embed style sheet information in the document head element.

+-->

+

+<!-- style: Style Sheet Information .................... -->

+

+<!ENTITY % style.element  "INCLUDE" >

+<![%style.element;[

+<!ENTITY % style.content  "( #PCDATA )" >

+<!ENTITY % style.qname  "style" >

+<!ELEMENT %style.qname;  %style.content; >

+<!-- end of style.element -->]]>

+

+<!ENTITY % style.attlist  "INCLUDE" >

+<![%style.attlist;[

+<!ATTLIST %style.qname;

+      %XHTML.xmlns.attrib;

+      %id.attrib;

+      %title.attrib;

+      %I18n.attrib;

+      type         %ContentType.datatype;   #REQUIRED

+      media        %MediaDesc.datatype;     #IMPLIED

+>

+<!-- end of style.attlist -->]]>

+

+<!-- end of xhtml-style-1.mod -->

+]]>

+

+<!-- Image Module  ............................................... -->

+<!ENTITY % xhtml-image.module "INCLUDE" >

+<![%xhtml-image.module;[

+<!ENTITY % xhtml-image.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Images Module  ................................................. -->

+<!-- file: xhtml-image-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Rovision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Images

+

+        img

+

+     This module provides markup to support basic image embedding.

+-->

+

+<!-- To avoid problems with text-only UAs as well as to make

+     image content understandable and navigable to users of

+     non-visual UAs, you need to provide a description with

+     the 'alt' attribute, and avoid server-side image maps.

+-->

+

+<!ENTITY % img.element  "INCLUDE" >

+<![%img.element;[

+<!ENTITY % img.content  "EMPTY" >

+<!ENTITY % img.qname  "img" >

+<!ELEMENT %img.qname;  %img.content; >

+<!-- end of img.element -->]]>

+

+<!ENTITY % img.attlist  "INCLUDE" >

+<![%img.attlist;[

+<!ATTLIST %img.qname;

+      %Common.attrib;

+      src          %URI.datatype;           #REQUIRED

+      alt          %Text.datatype;          #REQUIRED

+      longdesc     %URI.datatype;           #IMPLIED

+      height       %Length.datatype;        #IMPLIED

+      width        %Length.datatype;        #IMPLIED

+>

+<!-- end of img.attlist -->]]>

+

+<!-- end of xhtml-image-1.mod -->

+]]>

+

+<!-- Client-side Image Map Module  ............................... -->

+<!ENTITY % xhtml-csismap.module "INCLUDE" >

+<![%xhtml-csismap.module;[

+<!ENTITY % xhtml-csismap.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Client-side Image Map Module  .................................. -->

+<!-- file: xhtml-csismap-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Client-side Image Maps

+

+        area, map

+

+     This module declares elements and attributes to support client-side

+     image maps. This requires that the Image Module (or a module

+     declaring the img element type) be included in the DTD.

+

+     These can be placed in the same document or grouped in a

+     separate document, although the latter isn't widely supported

+-->

+

+<!ENTITY % area.element  "INCLUDE" >

+<![%area.element;[

+<!ENTITY % area.content  "EMPTY" >

+<!ENTITY % area.qname  "area" >

+<!ELEMENT %area.qname;  %area.content; >

+<!-- end of area.element -->]]>

+

+<!ENTITY % Shape.datatype "( rect | circle | poly | default )">

+<!ENTITY % Coords.datatype "CDATA" >

+

+<!ENTITY % area.attlist  "INCLUDE" >

+<![%area.attlist;[

+<!ATTLIST %area.qname;

+      %Common.attrib;

+      href         %URI.datatype;           #IMPLIED

+      shape        %Shape.datatype;         'rect'

+      coords       %Coords.datatype;        #IMPLIED

+      nohref       ( nohref )               #IMPLIED

+      alt          %Text.datatype;          #REQUIRED

+      tabindex     %Number.datatype;        #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+>

+<!-- end of area.attlist -->]]>

+

+<!-- modify anchor attribute definition list

+     to allow for client-side image maps

+-->

+<!ATTLIST %a.qname;

+      shape        %Shape.datatype;         'rect'

+      coords       %Coords.datatype;        #IMPLIED

+>

+

+<!-- modify img attribute definition list

+     to allow for client-side image maps

+-->

+<!ATTLIST %img.qname;

+      usemap       IDREF                    #IMPLIED

+>

+

+<!-- modify form input attribute definition list

+     to allow for client-side image maps

+-->

+<!ATTLIST %input.qname;

+      usemap       IDREF                    #IMPLIED

+>

+

+<!-- modify object attribute definition list

+     to allow for client-side image maps

+-->

+<!ATTLIST %object.qname;

+      usemap       IDREF                    #IMPLIED

+>

+

+<!-- 'usemap' points to the 'id' attribute of a <map> element,

+     which must be in the same document; support for external

+     document maps was not widely supported in HTML and is

+     eliminated in XHTML.

+

+     It is considered an error for the element pointed to by

+     a usemap IDREF to occur in anything but a <map> element.

+-->

+

+<!ENTITY % map.element  "INCLUDE" >

+<![%map.element;[

+<!ENTITY % map.content

+     "(( %Block.mix; ) | %area.qname; )+"

+>

+<!ENTITY % map.qname  "map" >

+<!ELEMENT %map.qname;  %map.content; >

+<!-- end of map.element -->]]>

+

+<!ENTITY % map.attlist  "INCLUDE" >

+<![%map.attlist;[

+<!ATTLIST %map.qname;

+      %XHTML.xmlns.attrib;

+      id           ID                       #REQUIRED

+      %class.attrib;

+      %title.attrib;

+      %Core.extra.attrib;

+      %I18n.attrib;

+      %Events.attrib;

+>

+<!-- end of map.attlist -->]]>

+

+<!-- end of xhtml-csismap-1.mod -->

+]]>

+

+<!-- Server-side Image Map Module  ............................... -->

+<!ENTITY % xhtml-ssismap.module "INCLUDE" >

+<![%xhtml-ssismap.module;[

+<!ENTITY % xhtml-ssismap.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Server-side Image Map Module  .................................. -->

+<!-- file: xhtml-ssismap-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod"

+

+     Revisions:

+#2000-10-22: added declaration for 'ismap' on <input>

+     ....................................................................... -->

+

+<!-- Server-side Image Maps

+

+     This adds the 'ismap' attribute to the img and input elements

+     to support server-side processing of a user selection.

+-->

+

+<!ATTLIST %img.qname;

+      ismap        ( ismap )                #IMPLIED

+>

+

+<!ATTLIST %input.qname;

+      ismap        ( ismap )                #IMPLIED

+>

+

+<!-- end of xhtml-ssismap-1.mod -->

+]]>

+

+<!-- Param Element Module  ....................................... -->

+<!ENTITY % xhtml-param.module "INCLUDE" >

+<![%xhtml-param.module;[

+<!ENTITY % xhtml-param.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Param Element Module  ..................................... -->

+<!-- file: xhtml-param-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Parameters for Java Applets and Embedded Objects

+

+        param

+

+     This module provides declarations for the param element,

+     used to provide named property values for the applet

+     and object elements.

+-->

+

+<!-- param: Named Property Value ....................... -->

+

+<!ENTITY % param.element  "INCLUDE" >

+<![%param.element;[

+<!ENTITY % param.content  "EMPTY" >

+<!ENTITY % param.qname  "param" >

+<!ELEMENT %param.qname;  %param.content; >

+<!-- end of param.element -->]]>

+

+<!ENTITY % param.attlist  "INCLUDE" >

+<![%param.attlist;[

+<!ATTLIST %param.qname;

+      %XHTML.xmlns.attrib;

+      %id.attrib;

+      name         CDATA                    #REQUIRED

+      value        CDATA                    #IMPLIED

+      valuetype    ( data | ref | object )  'data'

+      type         %ContentType.datatype;   #IMPLIED

+>

+<!-- end of param.attlist -->]]>

+

+<!-- end of xhtml-param-1.mod -->

+]]>

+

+<!-- Embedded Object Module  ..................................... -->

+<!ENTITY % xhtml-object.module "INCLUDE" >

+<![%xhtml-object.module;[

+<!ENTITY % xhtml-object.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Embedded Object Module  ........................................ -->

+<!-- file: xhtml-object-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Embedded Objects

+

+        object

+

+     This module declares the object element type and its attributes, used

+     to embed external objects as part of XHTML pages. In the document,

+     place param elements prior to other content within the object element.

+

+     Note that use of this module requires instantiation of the Param

+     Element Module.

+-->

+

+<!-- object: Generic Embedded Object ................... -->

+

+<!ENTITY % object.element  "INCLUDE" >

+<![%object.element;[

+<!ENTITY % object.content

+     "( #PCDATA | %Flow.mix; | %param.qname; )*"

+>

+<!ENTITY % object.qname  "object" >

+<!ELEMENT %object.qname;  %object.content; >

+<!-- end of object.element -->]]>

+

+<!ENTITY % object.attlist  "INCLUDE" >

+<![%object.attlist;[

+<!ATTLIST %object.qname;

+      %Common.attrib;

+      declare      ( declare )              #IMPLIED

+      classid      %URI.datatype;           #IMPLIED

+      codebase     %URI.datatype;           #IMPLIED

+      data         %URI.datatype;           #IMPLIED

+      type         %ContentType.datatype;   #IMPLIED

+      codetype     %ContentType.datatype;   #IMPLIED

+      archive      %URIs.datatype;          #IMPLIED

+      standby      %Text.datatype;          #IMPLIED

+      height       %Length.datatype;        #IMPLIED

+      width        %Length.datatype;        #IMPLIED

+      name         CDATA                    #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+>

+<!-- end of object.attlist -->]]>

+

+<!-- end of xhtml-object-1.mod -->

+]]>

+

+<!-- Tables Module ............................................... -->

+<!ENTITY % xhtml-table.module "INCLUDE" >

+<![%xhtml-table.module;[

+<!ENTITY % xhtml-table.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Table Module  .................................................. -->

+<!-- file: xhtml-table-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Tables

+

+        table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td

+

+     This module declares element types and attributes used to provide

+     table markup similar to HTML 4, including features that enable

+     better accessibility for non-visual user agents.

+-->

+

+<!-- declare qualified element type names:

+-->

+<!ENTITY % table.qname  "table" >

+<!ENTITY % caption.qname  "caption" >

+<!ENTITY % thead.qname  "thead" >

+<!ENTITY % tfoot.qname  "tfoot" >

+<!ENTITY % tbody.qname  "tbody" >

+<!ENTITY % colgroup.qname  "colgroup" >

+<!ENTITY % col.qname  "col" >

+<!ENTITY % tr.qname  "tr" >

+<!ENTITY % th.qname  "th" >

+<!ENTITY % td.qname  "td" >

+

+<!-- The frame attribute specifies which parts of the frame around

+     the table should be rendered. The values are not the same as

+     CALS to avoid a name clash with the valign attribute.

+-->

+<!ENTITY % frame.attrib

+     "frame        ( void

+                   | above

+                   | below

+                   | hsides

+                   | lhs

+                   | rhs

+                   | vsides

+                   | box

+                   | border )               #IMPLIED"

+>

+

+<!-- The rules attribute defines which rules to draw between cells:

+

+     If rules is absent then assume:

+

+       "none" if border is absent or border="0" otherwise "all"

+-->

+<!ENTITY % rules.attrib

+     "rules        ( none

+                   | groups

+                   | rows

+                   | cols

+                   | all )                  #IMPLIED"

+>

+

+<!-- horizontal alignment attributes for cell contents

+-->

+<!ENTITY % CellHAlign.attrib

+     "align        ( left

+                   | center

+                   | right

+                   | justify

+                   | char )                 #IMPLIED

+      char         %Character.datatype;     #IMPLIED

+      charoff      %Length.datatype;        #IMPLIED"

+>

+

+<!-- vertical alignment attribute for cell contents

+-->

+<!ENTITY % CellVAlign.attrib

+     "valign       ( top

+                   | middle

+                   | bottom

+                   | baseline )             #IMPLIED"

+>

+

+<!-- scope is simpler than axes attribute for common tables

+-->

+<!ENTITY % scope.attrib

+     "scope        ( row

+                   | col

+                   | rowgroup

+                   | colgroup )             #IMPLIED"

+>

+

+<!-- table: Table Element .............................. -->

+

+<!ENTITY % table.element  "INCLUDE" >

+<![%table.element;[

+<!ENTITY % table.content

+     "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ),

+      (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))"

+>

+<!ELEMENT %table.qname;  %table.content; >

+<!-- end of table.element -->]]>

+

+<!ENTITY % table.attlist  "INCLUDE" >

+<![%table.attlist;[

+<!ATTLIST %table.qname;

+      %Common.attrib;

+      summary      %Text.datatype;          #IMPLIED

+      width        %Length.datatype;        #IMPLIED

+      border       %Pixels.datatype;        #IMPLIED

+      %frame.attrib;

+      %rules.attrib;

+      cellspacing  %Length.datatype;        #IMPLIED

+      cellpadding  %Length.datatype;        #IMPLIED

+>

+<!-- end of table.attlist -->]]>

+

+<!-- caption: Table Caption ............................ -->

+

+<!ENTITY % caption.element  "INCLUDE" >

+<![%caption.element;[

+<!ENTITY % caption.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ELEMENT %caption.qname;  %caption.content; >

+<!-- end of caption.element -->]]>

+

+<!ENTITY % caption.attlist  "INCLUDE" >

+<![%caption.attlist;[

+<!ATTLIST %caption.qname;

+      %Common.attrib;

+>

+<!-- end of caption.attlist -->]]>

+

+<!-- thead: Table Header ............................... -->

+

+<!-- Use thead to duplicate headers when breaking table

+     across page boundaries, or for static headers when

+     tbody sections are rendered in scrolling panel.

+-->

+

+<!ENTITY % thead.element  "INCLUDE" >

+<![%thead.element;[

+<!ENTITY % thead.content  "( %tr.qname; )+" >

+<!ELEMENT %thead.qname;  %thead.content; >

+<!-- end of thead.element -->]]>

+

+<!ENTITY % thead.attlist  "INCLUDE" >

+<![%thead.attlist;[

+<!ATTLIST %thead.qname;

+      %Common.attrib;

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of thead.attlist -->]]>

+

+<!-- tfoot: Table Footer ............................... -->

+

+<!-- Use tfoot to duplicate footers when breaking table

+     across page boundaries, or for static footers when

+     tbody sections are rendered in scrolling panel.

+-->

+

+<!ENTITY % tfoot.element  "INCLUDE" >

+<![%tfoot.element;[

+<!ENTITY % tfoot.content  "( %tr.qname; )+" >

+<!ELEMENT %tfoot.qname;  %tfoot.content; >

+<!-- end of tfoot.element -->]]>

+

+<!ENTITY % tfoot.attlist  "INCLUDE" >

+<![%tfoot.attlist;[

+<!ATTLIST %tfoot.qname;

+      %Common.attrib;

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of tfoot.attlist -->]]>

+

+<!-- tbody: Table Body ................................. -->

+

+<!-- Use multiple tbody sections when rules are needed

+     between groups of table rows.

+-->

+

+<!ENTITY % tbody.element  "INCLUDE" >

+<![%tbody.element;[

+<!ENTITY % tbody.content  "( %tr.qname; )+" >

+<!ELEMENT %tbody.qname;  %tbody.content; >

+<!-- end of tbody.element -->]]>

+

+<!ENTITY % tbody.attlist  "INCLUDE" >

+<![%tbody.attlist;[

+<!ATTLIST %tbody.qname;

+      %Common.attrib;

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of tbody.attlist -->]]>

+

+<!-- colgroup: Table Column Group ...................... -->

+

+<!-- colgroup groups a set of col elements. It allows you

+     to group several semantically-related columns together.

+-->

+

+<!ENTITY % colgroup.element  "INCLUDE" >

+<![%colgroup.element;[

+<!ENTITY % colgroup.content  "( %col.qname; )*" >

+<!ELEMENT %colgroup.qname;  %colgroup.content; >

+<!-- end of colgroup.element -->]]>

+

+<!ENTITY % colgroup.attlist  "INCLUDE" >

+<![%colgroup.attlist;[

+<!ATTLIST %colgroup.qname;

+      %Common.attrib;

+      span         %Number.datatype;        '1'

+      width        %MultiLength.datatype;   #IMPLIED

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of colgroup.attlist -->]]>

+

+<!-- col: Table Column ................................. -->

+

+<!-- col elements define the alignment properties for

+     cells in one or more columns.

+

+     The width attribute specifies the width of the

+     columns, e.g.

+

+       width="64"        width in screen pixels

+       width="0.5*"      relative width of 0.5

+

+     The span attribute causes the attributes of one

+     col element to apply to more than one column.

+-->

+

+<!ENTITY % col.element  "INCLUDE" >

+<![%col.element;[

+<!ENTITY % col.content  "EMPTY" >

+<!ELEMENT %col.qname;  %col.content; >

+<!-- end of col.element -->]]>

+

+<!ENTITY % col.attlist  "INCLUDE" >

+<![%col.attlist;[

+<!ATTLIST %col.qname;

+      %Common.attrib;

+      span         %Number.datatype;        '1'

+      width        %MultiLength.datatype;   #IMPLIED

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of col.attlist -->]]>

+

+<!-- tr: Table Row ..................................... -->

+

+<!ENTITY % tr.element  "INCLUDE" >

+<![%tr.element;[

+<!ENTITY % tr.content  "( %th.qname; | %td.qname; )+" >

+<!ELEMENT %tr.qname;  %tr.content; >

+<!-- end of tr.element -->]]>

+

+<!ENTITY % tr.attlist  "INCLUDE" >

+<![%tr.attlist;[

+<!ATTLIST %tr.qname;

+      %Common.attrib;

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of tr.attlist -->]]>

+

+<!-- th: Table Header Cell ............................. -->

+

+<!-- th is for header cells, td for data,

+     but for cells acting as both use td

+-->

+

+<!ENTITY % th.element  "INCLUDE" >

+<![%th.element;[

+<!ENTITY % th.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ELEMENT %th.qname;  %th.content; >

+<!-- end of th.element -->]]>

+

+<!ENTITY % th.attlist  "INCLUDE" >

+<![%th.attlist;[

+<!ATTLIST %th.qname;

+      %Common.attrib;

+      abbr         %Text.datatype;          #IMPLIED

+      axis         CDATA                    #IMPLIED

+      headers      IDREFS                   #IMPLIED

+      %scope.attrib;

+      rowspan      %Number.datatype;        '1'

+      colspan      %Number.datatype;        '1'

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of th.attlist -->]]>

+

+<!-- td: Table Data Cell ............................... -->

+

+<!ENTITY % td.element  "INCLUDE" >

+<![%td.element;[

+<!ENTITY % td.content

+     "( #PCDATA | %Flow.mix; )*"

+>

+<!ELEMENT %td.qname;  %td.content; >

+<!-- end of td.element -->]]>

+

+<!ENTITY % td.attlist  "INCLUDE" >

+<![%td.attlist;[

+<!ATTLIST %td.qname;

+      %Common.attrib;

+      abbr         %Text.datatype;          #IMPLIED

+      axis         CDATA                    #IMPLIED

+      headers      IDREFS                   #IMPLIED

+      %scope.attrib;

+      rowspan      %Number.datatype;        '1'

+      colspan      %Number.datatype;        '1'

+      %CellHAlign.attrib;

+      %CellVAlign.attrib;

+>

+<!-- end of td.attlist -->]]>

+

+<!-- end of xhtml-table-1.mod -->

+]]>

+

+<!-- Forms Module  ............................................... -->

+<!ENTITY % xhtml-form.module "INCLUDE" >

+<![%xhtml-form.module;[

+<!ENTITY % xhtml-form.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Forms Module  .................................................. -->

+<!-- file: xhtml-form-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Forms

+

+        form, label, input, select, optgroup, option,

+        textarea, fieldset, legend, button

+

+     This module declares markup to provide support for online

+     forms, based on the features found in HTML 4 forms.

+-->

+

+<!-- declare qualified element type names:

+-->

+<!ENTITY % form.qname  "form" >

+<!ENTITY % label.qname  "label" >

+<!ENTITY % input.qname  "input" >

+<!ENTITY % select.qname  "select" >

+<!ENTITY % optgroup.qname  "optgroup" >

+<!ENTITY % option.qname  "option" >

+<!ENTITY % textarea.qname  "textarea" >

+<!ENTITY % fieldset.qname  "fieldset" >

+<!ENTITY % legend.qname  "legend" >

+<!ENTITY % button.qname  "button" >

+

+<!-- %BlkNoForm.mix; includes all non-form block elements,

+     plus %Misc.class;

+-->

+<!ENTITY % BlkNoForm.mix

+     "%Heading.class;

+      | %List.class;

+      | %BlkStruct.class;

+      %BlkPhras.class;

+      %BlkPres.class;

+      %Table.class;

+      %Block.extra;

+      %Misc.class;"

+>

+

+<!-- form: Form Element ................................ -->

+

+<!ENTITY % form.element  "INCLUDE" >

+<![%form.element;[

+<!ENTITY % form.content

+     "( %BlkNoForm.mix;

+      | %fieldset.qname; )+"

+>

+<!ELEMENT %form.qname;  %form.content; >

+<!-- end of form.element -->]]>

+

+<!ENTITY % form.attlist  "INCLUDE" >

+<![%form.attlist;[

+<!ATTLIST %form.qname;

+      %Common.attrib;

+      action       %URI.datatype;           #REQUIRED

+      method       ( get | post )           'get'

+      enctype      %ContentType.datatype;   'application/x-www-form-urlencoded'

+      accept-charset %Charsets.datatype;    #IMPLIED

+      accept       %ContentTypes.datatype;  #IMPLIED

+>

+<!-- end of form.attlist -->]]>

+

+<!-- label: Form Field Label Text ...................... -->

+

+<!-- Each label must not contain more than ONE field

+-->

+

+<!ENTITY % label.element  "INCLUDE" >

+<![%label.element;[

+<!ENTITY % label.content

+     "( #PCDATA

+      | %input.qname; | %select.qname; | %textarea.qname; | %button.qname;

+      | %InlStruct.class;

+      %InlPhras.class;

+      %I18n.class;

+      %InlPres.class;

+      %Anchor.class;

+      %InlSpecial.class;

+      %Inline.extra;

+      %Misc.class; )*"

+>

+<!ELEMENT %label.qname;  %label.content; >

+<!-- end of label.element -->]]>

+

+<!ENTITY % label.attlist  "INCLUDE" >

+<![%label.attlist;[

+<!ATTLIST %label.qname;

+      %Common.attrib;

+      for          IDREF                    #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+>

+<!-- end of label.attlist -->]]>

+

+<!-- input: Form Control ............................... -->

+

+<!ENTITY % input.element  "INCLUDE" >

+<![%input.element;[

+<!ENTITY % input.content  "EMPTY" >

+<!ELEMENT %input.qname;  %input.content; >

+<!-- end of input.element -->]]>

+

+<!ENTITY % input.attlist  "INCLUDE" >

+<![%input.attlist;[

+<!ENTITY % InputType.class

+     "( text | password | checkbox | radio | submit

+      | reset | file | hidden | image | button )"

+>

+<!-- attribute 'name' required for all but submit & reset

+-->

+<!ATTLIST %input.qname;

+      %Common.attrib;

+      type         %InputType.class;        'text'

+      name         CDATA                    #IMPLIED

+      value        CDATA                    #IMPLIED

+      checked      ( checked )              #IMPLIED

+      disabled     ( disabled )             #IMPLIED

+      readonly     ( readonly )             #IMPLIED

+      size         %Number.datatype;        #IMPLIED

+      maxlength    %Number.datatype;        #IMPLIED

+      src          %URI.datatype;           #IMPLIED

+      alt          %Text.datatype;          #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+      accept       %ContentTypes.datatype;  #IMPLIED

+>

+<!-- end of input.attlist -->]]>

+

+<!-- select: Option Selector ........................... -->

+

+<!ENTITY % select.element  "INCLUDE" >

+<![%select.element;[

+<!ENTITY % select.content

+     "( %optgroup.qname; | %option.qname; )+"

+>

+<!ELEMENT %select.qname;  %select.content; >

+<!-- end of select.element -->]]>

+

+<!ENTITY % select.attlist  "INCLUDE" >

+<![%select.attlist;[

+<!ATTLIST %select.qname;

+      %Common.attrib;

+      name         CDATA                    #IMPLIED

+      size         %Number.datatype;        #IMPLIED

+      multiple     ( multiple )             #IMPLIED

+      disabled     ( disabled )             #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+>

+<!-- end of select.attlist -->]]>

+

+<!-- optgroup: Option Group ............................ -->

+

+<!ENTITY % optgroup.element  "INCLUDE" >

+<![%optgroup.element;[

+<!ENTITY % optgroup.content  "( %option.qname; )+" >

+<!ELEMENT %optgroup.qname;  %optgroup.content; >

+<!-- end of optgroup.element -->]]>

+

+<!ENTITY % optgroup.attlist  "INCLUDE" >

+<![%optgroup.attlist;[

+<!ATTLIST %optgroup.qname;

+      %Common.attrib;

+      disabled     ( disabled )             #IMPLIED

+      label        %Text.datatype;          #REQUIRED

+>

+<!-- end of optgroup.attlist -->]]>

+

+<!-- option: Selectable Choice ......................... -->

+

+<!ENTITY % option.element  "INCLUDE" >

+<![%option.element;[

+<!ENTITY % option.content  "( #PCDATA )" >

+<!ELEMENT %option.qname;  %option.content; >

+<!-- end of option.element -->]]>

+

+<!ENTITY % option.attlist  "INCLUDE" >

+<![%option.attlist;[

+<!ATTLIST %option.qname;

+      %Common.attrib;

+      selected     ( selected )             #IMPLIED

+      disabled     ( disabled )             #IMPLIED

+      label        %Text.datatype;          #IMPLIED

+      value        CDATA                    #IMPLIED

+>

+<!-- end of option.attlist -->]]>

+

+<!-- textarea: Multi-Line Text Field ................... -->

+

+<!ENTITY % textarea.element  "INCLUDE" >

+<![%textarea.element;[

+<!ENTITY % textarea.content  "( #PCDATA )" >

+<!ELEMENT %textarea.qname;  %textarea.content; >

+<!-- end of textarea.element -->]]>

+

+<!ENTITY % textarea.attlist  "INCLUDE" >

+<![%textarea.attlist;[

+<!ATTLIST %textarea.qname;

+      %Common.attrib;

+      name         CDATA                    #IMPLIED

+      rows         %Number.datatype;        #REQUIRED

+      cols         %Number.datatype;        #REQUIRED

+      disabled     ( disabled )             #IMPLIED

+      readonly     ( readonly )             #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+>

+<!-- end of textarea.attlist -->]]>

+

+<!-- fieldset: Form Control Group ...................... -->

+

+<!-- #PCDATA is to solve the mixed content problem,

+     per specification only whitespace is allowed

+-->

+

+<!ENTITY % fieldset.element  "INCLUDE" >

+<![%fieldset.element;[

+<!ENTITY % fieldset.content

+     "( #PCDATA | %legend.qname; | %Flow.mix; )*"

+>

+<!ELEMENT %fieldset.qname;  %fieldset.content; >

+<!-- end of fieldset.element -->]]>

+

+<!ENTITY % fieldset.attlist  "INCLUDE" >

+<![%fieldset.attlist;[

+<!ATTLIST %fieldset.qname;

+      %Common.attrib;

+>

+<!-- end of fieldset.attlist -->]]>

+

+<!-- legend: Fieldset Legend ........................... -->

+

+<!ENTITY % legend.element  "INCLUDE" >

+<![%legend.element;[

+<!ENTITY % legend.content

+     "( #PCDATA | %Inline.mix; )*"

+>

+<!ELEMENT %legend.qname;  %legend.content; >

+<!-- end of legend.element -->]]>

+

+<!ENTITY % legend.attlist  "INCLUDE" >

+<![%legend.attlist;[

+<!ATTLIST %legend.qname;

+      %Common.attrib;

+      accesskey    %Character.datatype;     #IMPLIED

+>

+<!-- end of legend.attlist -->]]>

+

+<!-- button: Push Button ............................... -->

+

+<!ENTITY % button.element  "INCLUDE" >

+<![%button.element;[

+<!ENTITY % button.content

+     "( #PCDATA

+      | %BlkNoForm.mix;

+      | %InlStruct.class;

+      %InlPhras.class;

+      %InlPres.class;

+      %I18n.class;

+      %InlSpecial.class;

+      %Inline.extra; )*"

+>

+<!ELEMENT %button.qname;  %button.content; >

+<!-- end of button.element -->]]>

+

+<!ENTITY % button.attlist  "INCLUDE" >

+<![%button.attlist;[

+<!ATTLIST %button.qname;

+      %Common.attrib;

+      name         CDATA                    #IMPLIED

+      value        CDATA                    #IMPLIED

+      type         ( button | submit | reset ) 'submit'

+      disabled     ( disabled )             #IMPLIED

+      tabindex     %Number.datatype;        #IMPLIED

+      accesskey    %Character.datatype;     #IMPLIED

+>

+<!-- end of button.attlist -->]]>

+

+<!-- end of xhtml-form-1.mod -->

+]]>

+

+<!-- Target Attribute Module  .................................... -->

+<!ENTITY % xhtml-target.module "INCLUDE" >

+<![%xhtml-target.module;[

+<!ENTITY % xhtml-target.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Target Module  ................................................. -->

+<!-- file: xhtml-target-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Target 

+

+        target

+

+     This module declares the 'target' attribute used for opening windows

+-->

+

+<!-- render in this frame --> 

+<!ENTITY % FrameTarget.datatype "CDATA" >

+

+<!-- add 'target' attribute to 'a' element -->

+<!ATTLIST %a.qname;

+      target       %FrameTarget.datatype;   #IMPLIED

+>

+

+<!-- add 'target' attribute to 'area' element -->

+<!ATTLIST %area.qname;

+      target       %FrameTarget.datatype;   #IMPLIED

+>

+

+<!-- add 'target' attribute to 'link' element -->

+<!ATTLIST %link.qname;

+      target       %FrameTarget.datatype;   #IMPLIED

+>

+

+<!-- add 'target' attribute to 'form' element -->

+<!ATTLIST %form.qname;

+      target       %FrameTarget.datatype;   #IMPLIED

+>

+

+<!-- add 'target' attribute to 'base' element -->

+<!ATTLIST %base.qname;

+      target       %FrameTarget.datatype;   #IMPLIED

+>

+

+<!-- end of xhtml-target-1.mod -->

+]]>

+

+<!-- Legacy Markup ............................................... -->

+<!ENTITY % xhtml-legacy.module "IGNORE" >

+<![%xhtml-legacy.module;[

+<!ENTITY % xhtml-legacy.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" >

+%xhtml-legacy.mod;]]>

+

+<!-- Document Structure Module (required)  ....................... -->

+<!ENTITY % xhtml-struct.module "INCLUDE" >

+<![%xhtml-struct.module;[

+<!ENTITY % xhtml-struct.mod

+     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"

+            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >

+<!-- ...................................................................... -->

+<!-- XHTML Structure Module  .............................................. -->

+<!-- file: xhtml-struct-1.mod

+

+     This is XHTML, a reformulation of HTML as a modular XML application.

+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.

+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI

+

+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

+

+       PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"

+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod"

+

+     Revisions:

+     (none)

+     ....................................................................... -->

+

+<!-- Document Structure

+

+        title, head, body, html

+

+     The Structure Module defines the major structural elements and

+     their attributes.

+

+     Note that the content model of the head element type is redeclared

+     when the Base Module is included in the DTD.

+

+     The parameter entity containing the XML namespace URI value used

+     for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module.

+-->

+

+<!-- title: Document Title ............................. -->

+

+<!-- The title element is not considered part of the flow of text.

+     It should be displayed, for example as the page header or

+     window title. Exactly one title is required per document.

+-->

+

+<!ENTITY % title.element  "INCLUDE" >

+<![%title.element;[

+<!ENTITY % title.content  "( #PCDATA )" >

+<!ENTITY % title.qname  "title" >

+<!ELEMENT %title.qname;  %title.content; >

+<!-- end of title.element -->]]>

+

+<!ENTITY % title.attlist  "INCLUDE" >

+<![%title.attlist;[

+<!ATTLIST %title.qname;

+      %XHTML.xmlns.attrib;

+      %I18n.attrib;

+>

+<!-- end of title.attlist -->]]>

+

+<!-- head: Document Head ............................... -->

+

+<!ENTITY % head.element  "INCLUDE" >

+<![%head.element;[

+<!ENTITY % head.content

+    "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"

+>

+<!ENTITY % head.qname  "head" >

+<!ELEMENT %head.qname;  %head.content; >

+<!-- end of head.element -->]]>

+

+<!ENTITY % head.attlist  "INCLUDE" >

+<![%head.attlist;[

+<!-- reserved for future use with document profiles

+-->

+<!ENTITY % profile.attrib

+     "profile      %URI.datatype;           '%XHTML.profile;'"

+>

+

+<!ATTLIST %head.qname;

+      %XHTML.xmlns.attrib;

+      %I18n.attrib;

+      %profile.attrib;

+>

+<!-- end of head.attlist -->]]>

+

+<!-- body: Document Body ............................... -->

+

+<!ENTITY % body.element  "INCLUDE" >

+<![%body.element;[

+<!ENTITY % body.content

+     "( %Block.mix; )*"

+>

+<!ENTITY % body.qname  "body" >

+<!ELEMENT %body.qname;  %body.content; >

+<!-- end of body.element -->]]>

+

+<!ENTITY % body.attlist  "INCLUDE" >

+<![%body.attlist;[

+<!ATTLIST %body.qname;

+      %Common.attrib;

+>

+<!-- end of body.attlist -->]]>

+

+<!-- html: XHTML Document Element ...................... -->

+

+<!ENTITY % html.element  "INCLUDE" >

+<![%html.element;[

+<!ENTITY % html.content  "( %head.qname;, %body.qname; )" >

+<!ENTITY % html.qname  "html" >

+<!ELEMENT %html.qname;  %html.content; >

+<!-- end of html.element -->]]>

+

+<![%XHTML.xsi.attrs;[

+<!-- define a parameter for the XSI schemaLocation attribute -->

+<!ENTITY % XSI.schemaLocation.attrib

+     "%XSI.pfx;schemaLocation  %URIs.datatype;    #IMPLIED"

+>

+]]>

+<!ENTITY % XSI.schemaLocation.attrib "">

+

+<!ENTITY % html.attlist  "INCLUDE" >

+<![%html.attlist;[

+<!-- version attribute value defined in driver

+-->

+<!ENTITY % XHTML.version.attrib

+     "version      %FPI.datatype;           #FIXED '%XHTML.version;'"

+>

+<!-- schemaLocation attribute from XML Schema

+-->

+<!ENTITY % XSI.schemaLocation.attrib

+     "schemaLocation   %URIs.datatype;      #IMPLIED"

+>

+

+<!-- see the Qualified Names module for information

+     on how to extend XHTML using XML namespaces

+-->

+<!ATTLIST %html.qname;

+      %XHTML.xmlns.attrib;

+      %XSI.schemaLocation.attrib;

+      %XHTML.version.attrib;

+      %I18n.attrib;

+>

+<!-- end of html.attlist -->]]>

+

+<!-- end of xhtml-struct-1.mod -->

+]]>

+

+<!-- end of XHTML 1.1 DTD  ................................................. -->

+<!-- ....................................................................... -->

+

diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/Layering.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/Layering.png
new file mode 100644
index 0000000..0f54738
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/Layering.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead1.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead1.png
new file mode 100644
index 0000000..d9ceb6f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead1.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead2.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead2.png
new file mode 100644
index 0000000..348de13
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHead2.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHeadBar.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHeadBar.png
new file mode 100644
index 0000000..d049ac9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/WebHeadBar.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-left-trans.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-left-trans.png
new file mode 100644
index 0000000..c782d3c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-left-trans.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right-trans.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right-trans.png
new file mode 100644
index 0000000..2c86f2b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right-trans.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right2-trans.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right2-trans.png
new file mode 100644
index 0000000..5c9d7cc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/arrow-right2-trans.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bend-trans.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bend-trans.png
new file mode 100644
index 0000000..923ef5b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bend-trans.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-left-small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-left-small.png
new file mode 100644
index 0000000..e9de86f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-left-small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-right-small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-right-small.png
new file mode 100644
index 0000000..e2d1325
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/bottom-right-small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/button.down.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/button.down.gif
new file mode 100644
index 0000000..3d7236d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/button.down.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/favicon.ico b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/favicon.ico
new file mode 100644
index 0000000..4520142
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/favicon.ico
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/feed.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/feed.png
new file mode 100644
index 0000000..7c3aceb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/feed.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/guards.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/guards.png
new file mode 100644
index 0000000..741696c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/guards.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left-small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left-small.png
new file mode 100644
index 0000000..c8db695
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left-small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left.png
new file mode 100644
index 0000000..df1f812
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-left.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right-small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right-small.png
new file mode 100644
index 0000000..99e1dc1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right-small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right.png
new file mode 100644
index 0000000..0734cd0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/heading-right.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby.png
new file mode 100644
index 0000000..b76a2cb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby_base.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby_base.png
new file mode 100644
index 0000000..b7c24e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/implicitly_overriding_playedby_base.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/jira.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/jira.png
new file mode 100644
index 0000000..5f56e32
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/jira.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/junit.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/junit.gif
new file mode 100644
index 0000000..229e93f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/junit.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/line.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/line.gif
new file mode 100644
index 0000000..212443d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/line.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/linkto_help.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/linkto_help.gif
new file mode 100644
index 0000000..86550fe
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/linkto_help.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/ot32.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/ot32.png
new file mode 100644
index 0000000..30e3872
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/ot32.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pass.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pass.gif
new file mode 100644
index 0000000..e21b9fc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pass.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pdficon_small.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pdficon_small.gif
new file mode 100644
index 0000000..bb5edca
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/pdficon_small.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/permalink.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/permalink.png
new file mode 100644
index 0000000..3a7bcc1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/permalink.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/smart_lifting_small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/smart_lifting_small.png
new file mode 100644
index 0000000..362ff65
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/smart_lifting_small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/team_nesting_hor.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/team_nesting_hor.png
new file mode 100644
index 0000000..aa24575
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/team_nesting_hor.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_16.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_16.png
new file mode 100644
index 0000000..9c2f0f1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_16.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_mini.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_mini.png
new file mode 100644
index 0000000..38c038d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/trac_logo_mini.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-css2-blue.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-css2-blue.png
new file mode 100644
index 0000000..6140a0f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-css2-blue.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-xhtml10-blue.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-xhtml10-blue.png
new file mode 100644
index 0000000..e971248
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/images/valid-xhtml10-blue.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_left.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_left.png
new file mode 100644
index 0000000..bc2bff7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_left.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_right.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_right.png
new file mode 100644
index 0000000..3c4af59
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/heading_right.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/line.gif b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/line.gif
new file mode 100644
index 0000000..212443d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/line.gif
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/otjld.css b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/otjld.css
new file mode 100644
index 0000000..c1c2c9c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/otjld.css
@@ -0,0 +1,401 @@
+body {
+	background-color: #ffffff;
+	font-family: helvetica,avalon,sans-serif;
+	margin: 4px;
+	padding: 4px;
+}
+
+/* Links: */
+a:visited { color: #5060f7; text-decoration: none; }
+a:link    { color: #3010ff; text-decoration: none; }
+a:hover  { color: black; background-color: #e8e8fc; }
+
+a.syntax {
+	border: 1px solid red;
+	margin: 2px;
+	padding: 2px;
+}
+
+a img {
+	border-style: none;
+}
+
+/* ToC page: */
+div.toc {
+	font-weight: bold;
+	padding-left: 20px;
+}
+
+div.toc.depth1 {
+	font-size: 1.2em;
+}
+
+div.toc.depth2 {
+	padding-left: 50px;
+}
+div.toc.depth2 a {
+	color: black;
+}
+
+div.toc.depth3 {
+	padding-left: 80px;
+}
+div.toc.depth3 a {
+	color: black;
+}
+
+/* Chapter headings (with icon): */
+div.chapter {
+	margin: 0px;
+	padding: 0px;
+}
+
+div.headl {
+	height: 40px;
+	width: 100%;
+	background: url(heading_left.png) no-repeat left;
+	margin-bottom: 10px;
+	margin-top: 0px;
+	padding: 0px;
+}
+
+div.headr {
+	height: 40px;
+	background: url(heading_right.png) no-repeat top right;
+	margin: 0px;
+	padding: 0px;
+}
+
+div.headr h1 {
+	height: 34px;
+	border-top: 2px solid #626280;
+	border-bottom: 2px solid #626280;
+	background-color: #9090B0;
+	color:#ffffe0;
+	font-size: 20pt;
+	margin-left: 50px;
+	margin-right: 22px;
+	padding-left: 10px;
+	padding-top: 2px;
+	margin-top: 0px;
+	margin-bottom: 0px;
+	padding-bottom: 0px;
+}
+
+/* Mini-ToC-Box: */
+div#toc-box, div.toc-box {
+	position: fixed;
+	top: 100px;
+	right: 5px;
+	width: 22pt;
+	z-index: 9;
+	background-color: #fff8e0;
+	border: 2px solid #e0e0f0;
+	border-right: none;
+	font-size: 10pt;
+	white-space: nowrap;
+	opacity: 0.5;
+	-moz-opacity: 0.5;
+	filter: alpha(opacity=50);
+}
+
+div#toc-box:hover, div.toc-box:hover {
+	right: 5px;
+	width: auto;
+	border: 2px solid #e0e0f0;
+	opacity: 0.9;
+	-moz-opacity: 0.9;
+	filter: alpha(opacity=90);
+}
+
+ul.toc-box {
+	list-style-type: none;
+	margin: 5px;
+	padding: 0px;
+}
+
+/* Intro: */
+div.intro {
+	width: 90%;
+	max-width: 820px;
+	margin: 10px;
+	margin-left: 40px;
+	margin-right: auto;
+}
+
+div.line {
+	clear: both;
+	height: 5px;
+	background: url(line.gif) no-repeat left;
+}
+
+div.term {
+	float: left;
+	width: 25%;
+	min-width: 130px;
+	max-width: 190px;
+	padding: 2px;
+	color: #000060;
+}
+
+div.termdesc {
+	float: left;
+	width: 70%;
+	min-width: 300px;
+	max-width: 600px;
+	padding: 2px;
+}
+
+/* (Sub)sections: */
+div.sect, div.aux {
+	padding-left: 5px;
+	margin-right: 25pt;
+}
+
+h2.sect {
+	position: relative;
+	background-color: #e0e0f0;
+	padding: 2px;
+	padding-left: 10px;
+}
+
+h3.sect, h4.aux {
+	position: relative;
+	background-color: #e0e0f0;
+	padding: 2px;
+	padding-left: 5px;
+}
+
+div.subsect {
+	width: 90%;
+	margin-left: 20px;
+	margin-right: 20px;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+
+h4.subsect {
+	font-weight: normal;
+	margin-left: -20px;
+	margin-bottom: 4px;
+}
+h4.subsect + p {
+	margin-top: 2px;
+}
+
+h4.subsect .title {
+	text-decoration: underline;
+}
+
+span.toplink {
+	position: absolute; right: 10px;
+	font-size: 10pt;
+	font-weight: normal;
+}
+
+/* Listings: */
+div.listing {
+	float: none;
+	width: 90%;
+	overflow: auto;
+	font-family: Courier;
+	font-size: 10pt;
+	padding: 0;
+	margin: 2px;
+}
+
+div.listing.frame {
+	border: 4px solid #9090B0;	
+}
+
+table.listing {
+	width: 100%;
+	border: none;
+	border-spacing: 0;
+	border-collapse: collapse;
+}
+
+tr.line.odd {
+	background-color: #fff0c8;
+}
+
+tr.line.even {
+	background-color: #fff8e0;
+}
+
+div.listing pre {
+	margin: 0px;
+	padding: 2px;
+}
+
+td.ln {
+	color: #5060f7;
+	width: 20px;
+	text-align: right;
+	vertical-align: middle;
+	font-size: 12pt;
+	padding-left: 5px;
+	padding-right: 10px;
+}
+
+pre em {
+	font-style: normal;
+	color: blue;
+}
+pre .comment {
+	color: green;
+}
+
+h5.listing {
+	margin-bottom: 0px;
+}
+
+/* other OTJLD elements: */
+div.note {
+	font-style: italic;
+	margin-left: 10px;
+}
+
+div.codecomment {
+	width: 90%;
+	background-color: #fff8e0;
+	font-size: 0.8em;
+	margin-top: 5px;
+	padding: 2px;
+}
+div.codecomment>h5, div.note>h5 {
+	margin: 2px;
+}
+div.codecomment>h5+p, div.note>h5+p {
+	margin-top: 2px;
+}
+
+table.syntaxrule {
+	width: 80%;
+	border: 2px solid #e0e0f0;
+	border-spacing: 0px;
+	border-collapse: collapse;
+	margin: 4px;
+	padding: 0;
+}
+table.syntaxrule td.sect {
+	width: 80px;
+	border: 2px solid #e0e0f0;
+	padding: 5px;
+	vertical-align: top;
+	font-weight: bold;
+}
+table.syntaxrule td.rule {
+	padding-left: 20px;
+	background-color: #fff8e0;
+}
+table.syntaxrule .title {
+	margin-left: -10px;
+	font-weight: bold;
+	font-style: italic;
+	color: blue;
+}
+
+ol.constraints {
+	list-style-type: lower-alpha;
+}
+ol.constraints .title {
+	text-decoration: underline;
+}
+h5.constraints {
+	margin-bottom: 2px;
+}
+
+/* page navigation: */
+table.nav {
+	border: 2px solid #e0e0f0;
+	border-collapse: collapse;
+	width: 95%;
+	white-space: nowrap;
+	margin-left: auto;
+	margin-right: auto;
+	margin-top: 5px;
+	margin-bottom: 5px;
+	background-color: #fff8e0;
+	font-size: 10pt;
+}
+
+td.back {
+	width: 35%;
+	padding-left: 4px;
+	text-align: left;
+	white-space: nowrap;
+}
+td.top {
+	border: 2px solid #e0e0f0;
+	text-align: center;
+	white-space: nowrap;
+}
+td.next {
+	width: 35%;
+	padding-right: 4px;
+	text-align: right;
+	white-space: nowrap;
+}
+
+div.nav {
+	width: 95%;
+	margin-left: auto;
+	margin-right: auto;
+	white-space: nowrap;
+}
+
+a.nav {
+	font-size: 10pt;
+}
+
+/* page footer: */
+div.footer {
+	margin-top: 10px;
+	font-size: 10pt;
+	color: gray;
+}
+
+#w3c {
+	float: right;
+}
+
+/* to clear floats: */
+div.clearer {
+	clear: both;
+	line-height: 0pt;
+	font-size: 1px;
+}
+
+/* tables: */
+table {
+	border-style: solid;
+	border-color: #e0e0f0;
+	border-spacing: 0px;
+	border-collapse: collapse;
+}
+
+/* special highlighting: */
+.error {
+	color: red;
+}
+
+.blue {
+	color: blue;
+}
+.green {
+	color: green;
+}
+
+.underline {
+	text-decoration: underline;
+}
+
+/* zebra stripes ;-) */
+.z1 { background-color:#fff0c8; }
+
+.z2 { background-color:#fff8e0; }
+
+span.indent5 {
+    padding-left: 5mm;
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/valid-xhtml11-blue.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/valid-xhtml11-blue.png
new file mode 100644
index 0000000..88fefcbf
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/css/valid-xhtml11-blue.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/Layering.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/Layering.png
new file mode 100644
index 0000000..0f54738
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/Layering.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/foo.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/foo.png
new file mode 100644
index 0000000..aefdfd6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/foo.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/guards.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/guards.png
new file mode 100644
index 0000000..741696c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/guards.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby.png
new file mode 100644
index 0000000..b76a2cb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby_base.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby_base.png
new file mode 100644
index 0000000..b7c24e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/implicitly_overriding_playedby_base.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/smart_lifting_small.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/smart_lifting_small.png
new file mode 100644
index 0000000..362ff65
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/smart_lifting_small.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/team_nesting_hor.png b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/team_nesting_hor.png
new file mode 100644
index 0000000..aa24575
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/images/team_nesting_hor.png
Binary files differ
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/index.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/index.html
new file mode 100644
index 0000000..3130288
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/index.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <div class="headl">
+            <div class="headr">
+               <h1>Table of Contents</h1>
+            </div>
+         </div>
+         <div class="toc depth1"><a href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="toc depth2"><a href="s0.1.html" rel="section">&sect;0.1&nbsp;Purpose(s) of this document</a></div>
+         <div class="toc depth2"><a href="s0.2.html" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+         <div class="toc depth2"><a href="s0.3.html" rel="section">&sect;0.3&nbsp;Compiler messages</a></div>
+         <div class="toc depth2"><a href="s0.4.html" rel="section">&sect;0.4&nbsp;Versions</a></div>
+         <div class="toc depth2"><a href="s0.5.html" rel="section">&sect;0.5&nbsp;Publishing</a></div>
+         <div class="toc depth1"><a href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="toc depth2"><a href="s1.1.html" rel="section">&sect;1.1&nbsp;Team classes</a></div>
+         <div class="toc depth2"><a href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="toc depth3"><a href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="toc depth3"><a href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="toc depth3"><a href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="toc depth3"><a href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+         <div class="toc depth3"><a href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="toc depth2"><a href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="toc depth3"><a href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="toc depth3"><a href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="toc depth2"><a href="s1.4.html" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+         <div class="toc depth2"><a href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="toc depth1"><a href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="toc depth2"><a href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="toc depth3"><a href="s2.1.1.html" rel="section">&sect;2.1.1&nbsp;Binding interfaces</a></div>
+         <div class="toc depth3"><a href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="toc depth2"><a href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="toc depth2"><a href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="toc depth3"><a href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+         <div class="toc depth3"><a href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="toc depth3"><a href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="toc depth3"><a href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="toc depth2"><a href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+         <div class="toc depth3"><a href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+         <div class="toc depth3"><a href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+         <div class="toc depth3"><a href="s2.4.3.html" rel="section">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting</a></div>
+         <div class="toc depth2"><a href="s2.5.html" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+         <div class="toc depth2"><a href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="toc depth2"><a href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="toc depth1"><a href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="toc depth2"><a href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="toc depth2"><a href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="toc depth2"><a href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="toc depth2"><a href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="toc depth2"><a href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="toc depth1"><a href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="toc depth2"><a href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="toc depth2"><a href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="toc depth2"><a href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="toc depth2"><a href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="toc depth2"><a href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="toc depth2"><a href="s4.6.html" rel="section">&sect;4.6&nbsp;Overriding access restrictions</a></div>
+         <div class="toc depth2"><a href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="toc depth2"><a href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="toc depth2"><a href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+         <div class="toc depth3"><a href="s4.9.1.html" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+         <div class="toc depth3"><a href="s4.9.2.html" rel="section">&sect;4.9.2&nbsp;Role side inheritance</a></div>
+         <div class="toc depth3"><a href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+         <div class="toc depth2"><a href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="toc depth1"><a href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="toc depth2"><a href="s5.1.html" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+         <div class="toc depth3"><a href="s5.1.1.html" rel="section">&sect;5.1.1&nbsp;Global vs. thread local team activation</a></div>
+         <div class="toc depth3"><a href="s5.1.2.html" rel="section">&sect;5.1.2&nbsp;Effect on garbage collection</a></div>
+         <div class="toc depth2"><a href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+         <div class="toc depth2"><a href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="toc depth2"><a href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="toc depth3"><a href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="toc depth3"><a href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="toc depth3"><a href="s5.4.3.html" rel="section">&sect;5.4.3&nbsp;Multiple guards</a></div>
+         <div class="toc depth2"><a href="s5.5.html" rel="section">&sect;5.5&nbsp;Unanticipated team activation</a></div>
+         <div class="toc depth1"><a href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+         <div class="toc depth2"><a href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+         <div class="toc depth2"><a href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="toc depth1"><a href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+         <div class="toc depth2"><a href="s7.1.html" rel="section">&sect;7.1&nbsp;Opaque roles</a></div>
+         <div class="toc depth2"><a href="s7.2.html" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+         <div class="toc depth1"><a href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+         <div class="toc depth2"><a href="s8.1.html" rel="section">&sect;8.1&nbsp;Join point queries</a></div>
+         <div class="toc depth2"><a href="s8.2.html" rel="section">&sect;8.2&nbsp;Query expressions</a></div>
+         <div class="toc depth2"><a href="s8.3.html" rel="section">&sect;8.3&nbsp;OT/J meta model</a></div>
+         <div class="toc depth1"><a href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+         <div class="toc depth2"><a href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+         <div class="toc depth2"><a href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+         <div class="toc depth3"><a href="s9.2.1.html" rel="section">&sect;9.2.1&nbsp;Parameter substitution</a></div>
+         <div class="toc depth3"><a href="s9.2.2.html" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+         <div class="toc depth2"><a href="s9.3.html" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+         <div class="toc depth1"><a href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="toc depth2"><a href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+         <div class="toc depth3"><a href="sA.0.1.html" rel="section">&sect;A.0.1&nbsp;Scoped keywords</a></div>
+         <div class="toc depth3"><a href="sA.0.2.html" rel="section">&sect;A.0.2&nbsp;Inheriting scoped keywords</a></div>
+         <div class="toc depth3"><a href="sA.0.3.html" rel="section">&sect;A.0.3&nbsp;Internal names</a></div>
+         <div class="toc depth2"><a href="sA.1.html" rel="section">&sect;A.1&nbsp;Class definitions</a></div>
+         <div class="toc depth2"><a href="sA.2.html" rel="section">&sect;A.2&nbsp;Modifiers</a></div>
+         <div class="toc depth2"><a href="sA.3.html" rel="section">&sect;A.3&nbsp;Method bindings</a></div>
+         <div class="toc depth2"><a href="sA.4.html" rel="section">&sect;A.4&nbsp;Parameter mappings</a></div>
+         <div class="toc depth2"><a href="sA.5.html" rel="section">&sect;A.5&nbsp;Statements</a></div>
+         <div class="toc depth2"><a href="sA.6.html" rel="section">&sect;A.6&nbsp;Types</a></div>
+         <div class="toc depth2"><a href="sA.7.html" rel="section">&sect;A.7&nbsp;Guard predicates</a></div>
+         <div class="toc depth2"><a href="sA.8.html" rel="section">&sect;A.8&nbsp;Precedence declaration</a></div>
+         <div class="toc depth2"><a href="sA.9.html" rel="section">&sect;A.9&nbsp;Value dependent types</a></div>
+         <div class="toc depth2"><a href="sA.10.html" rel="section">&sect;A.10&nbsp;Packages and imports</a></div>
+         <div class="toc depth1"><a href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+         <div class="toc depth2"><a href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+         <div class="toc depth2"><a href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.1.html
new file mode 100644
index 0000000..6fa8ec4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.1.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.2.html" rel="next">&sect;0.2&nbsp;Text structure&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="sect depth2" id="s0.1">
+            <h2 class="sect">&sect;0.1&nbsp;Purpose(s) of this document</h2>
+            <p>This document defines the OT/J programming language.
+               The main goals were to create a precise and complete reference for this language.
+               Didactical considerations had lower priorities, which means that this document is not designed
+               as an introductory tutorial.
+               Still, we advise programmers learning the OT/J language, to consult this document whenever
+               a compiler error message is not perfectly clear to them (see <a href="s0.3.html" title="&sect;0.3&nbsp;Compiler messages" class="sect">&sect;0.3</a>).
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.2.html" rel="next">&sect;0.2&nbsp;Text structure&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.a.html
new file mode 100644
index 0000000..2c83f9b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.a.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.2.b.html" rel="next">&sect;0.2.(b)&nbsp;Syntax Links&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a>&nbsp;&gt;&nbsp;<a class="nav" href="s0.2.html" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+         <div class="subsect depth3" id="s0.2.a">
+            <h4 class="subsect">&sect;0.2.(a)&nbsp;<span class="title">Paragraphs</span></h4>
+            <p>The actual definition is structured into small paragraphs for easy referral.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.2.b.html" rel="next">&sect;0.2.(b)&nbsp;Syntax Links&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a>&nbsp;&gt;&nbsp;<a class="nav" href="s0.2.html" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.b.html
new file mode 100644
index 0000000..6c46d14
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.b.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;0.2.(a)&nbsp;Paragraphs</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a>&nbsp;&gt;&nbsp;<a class="nav" href="s0.2.html" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+         <div class="subsect depth3" id="s0.2.b">
+            <h4 class="subsect">&sect;0.2.(b)&nbsp;<span class="title">Syntax Links</span></h4>
+            <p>Links to the syntax precede definitions whenever new syntax is introduced.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;0.2.(a)&nbsp;Paragraphs</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a>&nbsp;&gt;&nbsp;<a class="nav" href="s0.2.html" rel="section">&sect;0.2&nbsp;Text structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.html
new file mode 100644
index 0000000..539b908
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.2.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.1.html" rel="prev">&lt;&lt;&nbsp;&sect;0.1&nbsp;Purpose(s) of this document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.3.html" rel="next">&sect;0.3&nbsp;Compiler messages&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="sect depth2" id="s0.2">
+            <h2 class="sect">&sect;0.2&nbsp;Text structure</h2>
+            <p>Each chapter of this document starts with a short synopsis of
+               	concepts covered by the chapter (see above).
+               		
+            </p>
+            <div class="syntaxlink"><a href="sA.html" title="&sect;A&nbsp;OT/J Syntax" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A</a></div>
+            <div class="subsect depth3" id="s0.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Paragraphs</span></h4>
+               <p>The actual definition is structured into small paragraphs for easy referral.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s0.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Syntax Links</span></h4>
+               <p>Links to the syntax precede definitions whenever new syntax is introduced.
+                  			
+               </p>
+            </div>
+            <p>Interspersed you will find some example program listings.
+               	Examples are typeset in a box:
+               		
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  ...</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>Explanations for examples look like the following:
+               		
+            </p>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>Lines 1-3 show a minimal OT/J program, which should not cause any headache.</li>
+               </ul>
+            </div>
+            <p>Examples are given for illustration only.
+               		
+            </p>
+            <p>Additional paragraphs like "Language implementation", or
+               	"open issues" provide some background information which is
+               	not necessary for understanding the definition, which might
+               	however, help to understand why things are the way they are
+               	and what other things might be added to the language in the future.
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.1.html" rel="prev">&lt;&lt;&nbsp;&sect;0.1&nbsp;Purpose(s) of this document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.3.html" rel="next">&sect;0.3&nbsp;Compiler messages&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.3.html
new file mode 100644
index 0000000..c4d25d8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.3.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.2.html" rel="prev">&lt;&lt;&nbsp;&sect;0.2&nbsp;Text structure</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.4.html" rel="next">&sect;0.4&nbsp;Versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="sect depth2" id="s0.3">
+            <h2 class="sect">&sect;0.3&nbsp;Compiler messages</h2>
+            <p>Error messages given by the Object Teams compiler refer to this
+               	definition whenever appropriate. This way it should be easy to find
+               	out, why the compiler rejected your program. Please make sure
+               	you are using a language definition whose version matches the
+               	version of your compiler.
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.2.html" rel="prev">&lt;&lt;&nbsp;&sect;0.2&nbsp;Text structure</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.4.html" rel="next">&sect;0.4&nbsp;Versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.4.html
new file mode 100644
index 0000000..beef42b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.4.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.3.html" rel="prev">&lt;&lt;&nbsp;&sect;0.3&nbsp;Compiler messages</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.5.html" rel="next">&sect;0.5&nbsp;Publishing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="sect depth2" id="s0.4">
+            <h2 class="sect">&sect;0.4&nbsp;Versions</h2>
+            <p>The structure of this document has changed between versions
+               0.6.1 and 0.7 of this document. This change reflects the
+               	transition from our first compiler for OT/J (called <code>otc</code>)
+               	and the <code>OTDT</code> (Object Teams Development Tooling)
+               	plugin for Eclipse.
+               		
+            </p>
+            <p>Starting with the OTDT v0.7.x, the major and minor number of the tool
+               correspond to the major and minor version number of the OTJLD (this document),
+               ie., the OTDT v1.0.x implements the language as defined in the OTJLD v1.0.
+               		
+            </p>
+            <p><strong>Changes</strong> between the current and previous versions are listed in appendix <a href="sB.html" title="&sect;B&nbsp;Changes between versions" class="sect">&sect;B</a>.
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.3.html" rel="prev">&lt;&lt;&nbsp;&sect;0.3&nbsp;Compiler messages</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s0.5.html" rel="next">&sect;0.5&nbsp;Publishing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.5.html
new file mode 100644
index 0000000..1fbce11
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.5.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.4.html" rel="prev">&lt;&lt;&nbsp;&sect;0.4&nbsp;Versions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+         <div class="sect depth2" id="s0.5">
+            <h2 class="sect">&sect;0.5&nbsp;Publishing</h2>
+            <p>The sources of this language definition are maintained in a target-independent XML format. Three different versions are generated
+               from these sources, using XSLT:
+            </p>
+            <ul>
+               <li><a href="http://www.objectteams.org/def/" class="ext">Online version</a> (XHTML)
+               </li>
+               <li>Tooling version (XHTML &ndash; directly accessible from inside the OTDT)</li>
+               <li>Print version (LaTeX/PDF)</li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.4.html" rel="prev">&lt;&lt;&nbsp;&sect;0.4&nbsp;Versions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s0.html" rel="section">&sect;0&nbsp;About this Document</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.html
new file mode 100644
index 0000000..c84afc5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s0.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.html" rel="next">&sect;1&nbsp;Teams and Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s0">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;0&nbsp;About this Document</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s0.html">&sect;0&nbsp;About this Document</a></li>
+                  <li><a href="#s0.1">&sect;0.1&nbsp;Purpose(s) of this document</a></li>
+                  <li><a href="#s0.2">&sect;0.2&nbsp;Text structure</a></li>
+                  <li><a href="#s0.3">&sect;0.3&nbsp;Compiler messages</a></li>
+                  <li><a href="#s0.4">&sect;0.4&nbsp;Versions</a></li>
+                  <li><a href="#s0.5">&sect;0.5&nbsp;Publishing</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Levels of this document</h3>
+               <div class="line"></div>
+               <div class="term">Terms, concepts</div>
+               <div class="termdesc">Each chapter of this document starts with a short synopsis of
+                  				concepts covered by the chapter (like this).
+               </div>
+               <div class="line"></div>
+               <div class="term">Definition</div>
+               <div class="termdesc">The actual definition is given in small numbered paragraphs.</div>
+               <div class="line"></div>
+               <div class="term">Examples</div>
+               <div class="termdesc">Examples and accompanying explanations will be interspersed
+                  				into the definition.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s0.1">
+               <h2 class="sect">&sect;0.1&nbsp;Purpose(s) of this document<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>This document defines the OT/J programming language.
+                  The main goals were to create a precise and complete reference for this language.
+                  Didactical considerations had lower priorities, which means that this document is not designed
+                  as an introductory tutorial.
+                  Still, we advise programmers learning the OT/J language, to consult this document whenever
+                  a compiler error message is not perfectly clear to them (see <a href="#s0.3" title="&sect;0.3&nbsp;Compiler messages" class="sect">&sect;0.3</a>).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.2">
+               <h2 class="sect">&sect;0.2&nbsp;Text structure<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>Each chapter of this document starts with a short synopsis of
+                  	concepts covered by the chapter (see above).
+                  		
+               </p>
+               <div class="syntaxlink"><a href="sA.html" title="&sect;A&nbsp;OT/J Syntax" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A</a></div>
+               <div class="subsect depth3" id="s0.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Paragraphs</span></h4>
+                  <p>The actual definition is structured into small paragraphs for easy referral.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s0.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Syntax Links</span></h4>
+                  <p>Links to the syntax precede definitions whenever new syntax is introduced.
+                     			
+                  </p>
+               </div>
+               <p>Interspersed you will find some example program listings.
+                  	Examples are typeset in a box:
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Explanations for examples look like the following:
+                  		
+               </p>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Lines 1-3 show a minimal OT/J program, which should not cause any headache.</li>
+                  </ul>
+               </div>
+               <p>Examples are given for illustration only.
+                  		
+               </p>
+               <p>Additional paragraphs like "Language implementation", or
+                  	"open issues" provide some background information which is
+                  	not necessary for understanding the definition, which might
+                  	however, help to understand why things are the way they are
+                  	and what other things might be added to the language in the future.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.3">
+               <h2 class="sect">&sect;0.3&nbsp;Compiler messages<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>Error messages given by the Object Teams compiler refer to this
+                  	definition whenever appropriate. This way it should be easy to find
+                  	out, why the compiler rejected your program. Please make sure
+                  	you are using a language definition whose version matches the
+                  	version of your compiler.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.4">
+               <h2 class="sect">&sect;0.4&nbsp;Versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>The structure of this document has changed between versions
+                  0.6.1 and 0.7 of this document. This change reflects the
+                  	transition from our first compiler for OT/J (called <code>otc</code>)
+                  	and the <code>OTDT</code> (Object Teams Development Tooling)
+                  	plugin for Eclipse.
+                  		
+               </p>
+               <p>Starting with the OTDT v0.7.x, the major and minor number of the tool
+                  correspond to the major and minor version number of the OTJLD (this document),
+                  ie., the OTDT v1.0.x implements the language as defined in the OTJLD v1.0.
+                  		
+               </p>
+               <p><strong>Changes</strong> between the current and previous versions are listed in appendix <a href="sB.html" title="&sect;B&nbsp;Changes between versions" class="sect">&sect;B</a>.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s0.5">
+               <h2 class="sect">&sect;0.5&nbsp;Publishing<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;0</a></span></h2>
+               <p>The sources of this language definition are maintained in a target-independent XML format. Three different versions are generated
+                  from these sources, using XSLT:
+               </p>
+               <ul>
+                  <li><a href="http://www.objectteams.org/def/" class="ext">Online version</a> (XHTML)
+                  </li>
+                  <li>Tooling version (XHTML &ndash; directly accessible from inside the OTDT)</li>
+                  <li>Print version (LaTeX/PDF)</li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.html" rel="next">&sect;1&nbsp;Teams and Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.1.html
new file mode 100644
index 0000000..442f634
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.1.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.html" rel="next">&sect;1.2&nbsp;Role classes and objects&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="sect depth2" id="s1.1">
+            <h2 class="sect">&sect;1.1&nbsp;Team classes</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+            <p>A class declared with the modifier <code>team</code> is a <em>team class</em> (or team for short).
+               		
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <em><b>team</b> <b>class</b> MyTeamA</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  ...</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>Teams are meant as containers for <em>roles</em>, which are defined in the following
+               	paragraphs.
+               		
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <em><b>class</b> MyRole</em></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    ...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>Teams introduce a new variant of inheritance for contained role classes
+               	(see <a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a> below).
+               	Other properties of teams, which are defined in later sections, are:
+               		
+            </p>
+            <ul>
+               <li>Team activation (<a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>)
+               </li>
+               <li>Abstractness and instantiation (<a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>)
+               </li>
+               <li>Declared lifting in team methods (<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)
+               </li>
+               <li>Reflective functions defined in <code>org.objectteams.ITeam</code> (<a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a>)
+               </li>
+            </ul>
+            <p>Apart from these differences, team classes are regular Java classes with
+               	methods and fields, whose instances are regular Java objects.
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.html" rel="next">&sect;1.2&nbsp;Role classes and objects&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.a.html
new file mode 100644
index 0000000..ce0eb73
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.a.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.b.html" rel="next">&sect;1.2.1.(b)&nbsp;protected role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.a">
+            <h4 class="subsect">&sect;1.2.1.(a)&nbsp;<span class="title">Role class protection</span></h4>
+            <p>A role class must have exactly one of the access modifiers <code>public</code>
+               			or <code>protected</code>.<br />
+               This rule does not affect the class modifiers <code>abstract</code>, <code>final</code> and <code>strictfp</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.b.html" rel="next">&sect;1.2.1.(b)&nbsp;protected role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.b.html
new file mode 100644
index 0000000..ae2227a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.b.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(a)&nbsp;Role class protection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.c.html" rel="next">&sect;1.2.1.(c)&nbsp;public role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.b">
+            <h4 class="subsect">&sect;1.2.1.(b)&nbsp;<span class="title">protected role classes</span></h4>
+            <p>A <code>protected</code> role can only be accessed from within the enclosing
+               			team or any of its sub-teams. The actual border of encapsulation is the
+               			enclosing team <em>instance</em>. The rules for protected roles are given
+               			in <a href="s1.2.3.html" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> below.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(a)&nbsp;Role class protection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.c.html" rel="next">&sect;1.2.1.(c)&nbsp;public role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.c.html
new file mode 100644
index 0000000..d415080
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.c.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(b)&nbsp;protected role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.d.html" rel="next">&sect;1.2.1.(d)&nbsp;abstract role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.c">
+            <h4 class="subsect">&sect;1.2.1.(c)&nbsp;<span class="title">public role classes</span></h4>
+            <p>Only <code>public</code> roles can ever be accessed outside their enclosing	team.
+               			Accessing a role outside the enclosing team instance is governed by the rules
+               			of <strong>externalized roles</strong>, to be defined next (<a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(b)&nbsp;protected role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.d.html" rel="next">&sect;1.2.1.(d)&nbsp;abstract role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.d.html
new file mode 100644
index 0000000..2fc06f9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.d.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(c)&nbsp;public role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.e.html" rel="next">&sect;1.2.1.(e)&nbsp;Role features&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.d">
+            <h4 class="subsect">&sect;1.2.1.(d)&nbsp;<span class="title">abstract role classes</span></h4>
+            <p>A role class has to be marked <strong>abstract</strong> if any of its methods
+               			is not effective.<br />
+               			The <em>methods of a role class</em> comprise direct methods and
+               			methods acquired by inheritance.
+               			In addition to regular inheritance a role class may acquire	methods
+               			also via implicit inheritance (<a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a>).<br />
+               			A method may become <em>effective</em> by either:
+               				
+            </p>
+            <ul>
+               <li>implementation (i.e., a regular method body), or</li>
+               <li>a callout binding (see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+               </li>
+            </ul>
+            <p><a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a> discusses under which 
+               			circumstances abstract roles force the enclosing team to be abstract, too.
+               
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(c)&nbsp;public role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.e.html" rel="next">&sect;1.2.1.(e)&nbsp;Role features&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.e.html
new file mode 100644
index 0000000..3091c48
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.e.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(d)&nbsp;abstract role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.f.html" rel="next">&sect;1.2.1.(f)&nbsp;Static role methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.e">
+            <h4 class="subsect">&sect;1.2.1.(e)&nbsp;<span class="title">Role features</span></h4>
+            <p>Access modifiers for members of roles have some special interpretation:
+               				
+            </p>
+            <ol>
+               <li>A private member is also visible in any implicit sub role
+                  		    (see implicit inheritance <a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>).<br />
+                  		    In contrast to inner classes in Java, private members of a role are not
+                  		    visible to the enclosing team.
+               </li>
+               <li>The default visibility of role members restricts access to the
+                  			  current class and its sub-classes (explicit and implicit).
+               </li>
+               <li><code>protected</code> role members can only be accessed from the enclosing
+                  			  team or via  <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>.
+               </li>
+               <li><code>public</code> role members grant unrestricted access.
+               </li>
+            </ol>
+            <p>Additionally, a role always has access to all the features that its enclosing team has access to.</p>
+            <p>Only <code>public</code> members can ever be accessed via an <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">externalized role (&sect;1.2.2)</a>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(d)&nbsp;abstract role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.f.html" rel="next">&sect;1.2.1.(f)&nbsp;Static role methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.f.html
new file mode 100644
index 0000000..f5a07ec
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.f.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(e)&nbsp;Role features</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.g.html" rel="next">&sect;1.2.1.(g)&nbsp;No static initializers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.f">
+            <h4 class="subsect">&sect;1.2.1.(f)&nbsp;<span class="title">Static role methods</span></h4>
+            <p>In contrast to inner classes in pure Java, a role class may indeed define static methods. A static role method requires no
+               role 
+               				instance <em>but</em> it still requires a team instance in scope. Static role methods can be called:
+               				
+            </p>
+            <ul>
+               <li>from the enclosing team,</li>
+               <li>via callin (see <a href="s4.7.html" title="&sect;4.7&nbsp;Callin binding with static methods"
+                     class="sect">&sect;4.7</a>).
+               </li>
+            </ul>
+            <p>Within a static role method the syntax <code>MyTeam.this</code> is available for accessing the enclosing team instance.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(e)&nbsp;Role features</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.1.g.html" rel="next">&sect;1.2.1.(g)&nbsp;No static initializers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.g.html
new file mode 100644
index 0000000..cfa50e2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.g.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(f)&nbsp;Static role methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+         <div class="subsect depth4" id="s1.2.1.g">
+            <h4 class="subsect">&sect;1.2.1.(g)&nbsp;<span class="title">No static initializers</span></h4>
+            <p>A static field of a role class must not have a non-constant initialization expression.
+               					   Static initialization blocks are already prohibited for inner classes by Java (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#262890"
+                  class="ext">JLS &sect;8.1.2</a>).
+               				
+            </p>
+            <div class="note">
+               <h5>Note:</h5>   
+               					Static initialization generally provides a means for performing initialization code prior to instantiation, i.e., at
+               class-loading time.
+               					Before any role can be created already two levels of initialization are performed: (1) The (outer most) enclosing team
+               class performs static initializations when it is loaded. (2) Any enclosing team executes 
+               					its constructor when it is instantiated. It should be possible to allocate any early initialization to either of these
+               two phases instead of using static role initializers.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1.(f)&nbsp;Static role methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.1.html" rel="section">&sect;1.2.1&nbsp;Modifiers for roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.html
new file mode 100644
index 0000000..6f9372b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.1.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.html" rel="next">&sect;1.2.2&nbsp;Externalized roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="sect depth3" id="s1.2.1">
+            <h3 class="sect">&sect;1.2.1&nbsp;Modifiers for roles</h3>
+            <p>Member classes of a team cannot be <code>static</code>.
+               Also the use of access modifiers for roles is restricted and modifiers have different (stronger) semantics than for 
+               regular classes (see below). With respect to accessibility a team acts mainly like a package regarding its roles.
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Role class protection</span></h4>
+               <p>A role class must have exactly one of the access modifiers <code>public</code>
+                  			or <code>protected</code>.<br />
+                  This rule does not affect the class modifiers <code>abstract</code>, <code>final</code> and <code>strictfp</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">protected role classes</span></h4>
+               <p>A <code>protected</code> role can only be accessed from within the enclosing
+                  			team or any of its sub-teams. The actual border of encapsulation is the
+                  			enclosing team <em>instance</em>. The rules for protected roles are given
+                  			in <a href="s1.2.3.html" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> below.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">public role classes</span></h4>
+               <p>Only <code>public</code> roles can ever be accessed outside their enclosing	team.
+                  			Accessing a role outside the enclosing team instance is governed by the rules
+                  			of <strong>externalized roles</strong>, to be defined next (<a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">abstract role classes</span></h4>
+               <p>A role class has to be marked <strong>abstract</strong> if any of its methods
+                  			is not effective.<br />
+                  			The <em>methods of a role class</em> comprise direct methods and
+                  			methods acquired by inheritance.
+                  			In addition to regular inheritance a role class may acquire	methods
+                  			also via implicit inheritance (<a href="s1.3.1.html"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>).<br />
+                  			A method may become <em>effective</em> by either:
+                  				
+               </p>
+               <ul>
+                  <li>implementation (i.e., a regular method body), or</li>
+                  <li>a callout binding (see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                  </li>
+               </ul>
+               <p><a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a> discusses under which 
+                  			circumstances abstract roles force the enclosing team to be abstract, too.
+                  
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Role features</span></h4>
+               <p>Access modifiers for members of roles have some special interpretation:
+                  				
+               </p>
+               <ol>
+                  <li>A private member is also visible in any implicit sub role
+                     		    (see implicit inheritance <a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>).<br />
+                     		    In contrast to inner classes in Java, private members of a role are not
+                     		    visible to the enclosing team.
+                  </li>
+                  <li>The default visibility of role members restricts access to the
+                     			  current class and its sub-classes (explicit and implicit).
+                  </li>
+                  <li><code>protected</code> role members can only be accessed from the enclosing
+                     			  team or via  <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>.
+                  </li>
+                  <li><code>public</code> role members grant unrestricted access.
+                  </li>
+               </ol>
+               <p>Additionally, a role always has access to all the features that its enclosing team has access to.</p>
+               <p>Only <code>public</code> members can ever be accessed via an <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">externalized role (&sect;1.2.2)</a>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Static role methods</span></h4>
+               <p>In contrast to inner classes in pure Java, a role class may indeed define static methods. A static role method requires no
+                  role 
+                  				instance <em>but</em> it still requires a team instance in scope. Static role methods can be called:
+                  				
+               </p>
+               <ul>
+                  <li>from the enclosing team,</li>
+                  <li>via callin (see <a href="s4.7.html" title="&sect;4.7&nbsp;Callin binding with static methods"
+                        class="sect">&sect;4.7</a>).
+                  </li>
+               </ul>
+               <p>Within a static role method the syntax <code>MyTeam.this</code> is available for accessing the enclosing team instance.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.1.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">No static initializers</span></h4>
+               <p>A static field of a role class must not have a non-constant initialization expression.
+                  					   Static initialization blocks are already prohibited for inner classes by Java (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#262890"
+                     class="ext">JLS &sect;8.1.2</a>).
+                  				
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>   
+                  					Static initialization generally provides a means for performing initialization code prior to instantiation, i.e., at
+                  class-loading time.
+                  					Before any role can be created already two levels of initialization are performed: (1) The (outer most) enclosing team
+                  class performs static initializations when it is loaded. (2) Any enclosing team executes 
+                  					its constructor when it is instantiated. It should be possible to allocate any early initialization to either of these
+                  two phases instead of using static role initializers.
+                  				
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.html" rel="next">&sect;1.2.2&nbsp;Externalized roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.a.html
new file mode 100644
index 0000000..834476e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.a.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.b.html" rel="next">&sect;1.2.2.(b)&nbsp;Declaration with anchored type&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.a">
+            <h4 class="subsect">&sect;1.2.2.(a)&nbsp;<span class="title">Visibility</span></h4>
+            <p>Only instances of a <code>public</code> role class can ever be externalized.
+               			  	
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.b.html" rel="next">&sect;1.2.2.(b)&nbsp;Declaration with anchored type&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.b.html
new file mode 100644
index 0000000..abdcd81
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.b.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(a)&nbsp;Visibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.c.html" rel="next">&sect;1.2.2.(c)&nbsp;Immutable anchor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.b">
+            <h4 class="subsect">&sect;1.2.2.(b)&nbsp;<span class="title">Declaration with anchored type</span></h4>
+            <p>Outside a team role types are legal only if denoted relative
+               				to an existing team instance (further on called "anchored types").
+               				The syntax is:
+            </p>
+            <div class="listing plain"><pre><em>final</em> MyTeam myTeam = <i>expression</i>;
+<em>RoleClass&lt;@myTeam&gt;</em> role = <i>expression</i>;</pre></div>
+            <p>The syntax <code>Type&lt;@anchor&gt;</code> is a special case of a parameterized type, more specifically a <a href="s9.html" title="&sect;9&nbsp;Value Dependent Classes" class="sect">value dependent type (&sect;9)</a>.
+               				The type argument (i.e., the expression after the at-sign) can be a simple name or a path. It must refer to an instance
+               of a team class.
+               				The role type is said to be <em>anchored</em> to this team instance.<br />
+               				The type-part of this syntax (in front of the angle brackets) must be the simple name of a role type directly contained
+               in the given team (including roles that are acquired by implicit inheritance).<br /></p>
+            <div class="note">
+               <h5>Note:</h5>
+               	Previous versions of the OTJLD used a different syntax for anchored types, where the role type was prefixed with the anchor
+               expression, separated by a dot (<code>anchor.Type</code>, 
+               see <a href="sA.html#sA.6.3" title="&sect;A.6.3&nbsp;AnchoredType" class="sect">&sect;A.6.3</a>). A compiler may still support that path syntax but it should be flagged as being deprecated.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(a)&nbsp;Visibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.c.html" rel="next">&sect;1.2.2.(c)&nbsp;Immutable anchor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.c.html
new file mode 100644
index 0000000..6ac2247
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.c.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(b)&nbsp;Declaration with anchored type</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.d.html" rel="next">&sect;1.2.2.(d)&nbsp;Implicit type anchors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.c">
+            <h4 class="subsect">&sect;1.2.2.(c)&nbsp;<span class="title">Immutable anchor</span></h4>
+            <p>Anchoring the type of an externalized role to a team instance
+               				requires the team to be referenced by a variable which
+               				is marked <code>final</code> (i.e., immutable).
+               				The type anchor can be a path <code>v.f1.f2...</code> where
+               				<code>v</code> is any final variable and <code>f1</code> ...
+               				are final fields.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(b)&nbsp;Declaration with anchored type</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.d.html" rel="next">&sect;1.2.2.(d)&nbsp;Implicit type anchors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.d.html
new file mode 100644
index 0000000..fc2e96e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.d.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(c)&nbsp;Immutable anchor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.e.html" rel="next">&sect;1.2.2.(e)&nbsp;Conformance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.d">
+            <h4 class="subsect">&sect;1.2.2.(d)&nbsp;<span class="title">Implicit type anchors</span></h4>
+            <p>The current team instance can be used as a default anchor
+               				for role types:
+               				
+            </p>
+            <ol>
+               <li>In non-static team level methods role types are by default interpreted as anchored to <code>this</code> (referring to the team instance). I.e., the following two declarations express the same:
+                  
+                  <div class="listing plain"><pre><b>public</b> RoleX getRoleX (RoleY r) { <i> stmts </i> }
+<b>public</b> RoleX&lt;@<em>this</em>&gt; getRoleX (RoleY&lt;@<em>this</em>&gt; r) { <i> stmts </i> }</pre></div>
+               </li>
+               <li>
+                  				In analogy, <em>role methods</em> use the enclosing team instance as the
+                  				default anchor for any role types.
+               </li>
+            </ol>
+            <p>Note, that <code>this</code> and <code><em>Outer</em>.this</code> are always
+               			  <code>final</code>.<br />
+               			  The compiler uses the pseudo identifier <strong><code>tthis</code></strong> to denote
+               			  such implicit type anchors in error messages.
+               			  	
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(c)&nbsp;Immutable anchor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.e.html" rel="next">&sect;1.2.2.(e)&nbsp;Conformance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.e.html
new file mode 100644
index 0000000..a959f05
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.e.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(d)&nbsp;Implicit type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.f.html" rel="next">&sect;1.2.2.(f)&nbsp;Substitutions for type anchors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.e">
+            <h4 class="subsect">&sect;1.2.2.(e)&nbsp;<span class="title">Conformance</span></h4>
+            <p>Conformance between
+               				two types <code>RoleX&lt;@teamA&gt;</code> and <code>RoleY&lt;@teamB&gt;</code>
+               				not only requires the role types to be compatible, but also
+               				the team instances to be provably <em>the same object</em>.
+               				The compiler must be able to statically analyze anchor identity.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(d)&nbsp;Implicit type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.f.html" rel="next">&sect;1.2.2.(f)&nbsp;Substitutions for type anchors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.f.html
new file mode 100644
index 0000000..13719b5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.f.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(e)&nbsp;Conformance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.g.html" rel="next">&sect;1.2.2.(g)&nbsp;Legal contexts&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.f">
+            <h4 class="subsect">&sect;1.2.2.(f)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+            <p>Only two substitutions are considered for determining
+               				team identity:
+               				
+            </p>
+            <ol>
+               <li>
+                  				  For type checking the application of team methods,
+                  				  <code>this</code> is <strong>substituted</strong> by the actual call target.
+                  				  For role methods a reference of the form <code><em>Outer</em>.this</code>
+                  				  is substituted by the enclosing instance of the call target.
+                  					
+               </li>
+               <li>Assignments from a <code>final</code> identifier
+                  				  to another <code>final</code> identifier are transitively
+                  				  followed, i.e., if <code>t1, t2</code> are final,
+                  				  after an assignment <code>t1=t2</code>
+                  				  the types <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code> are considered
+                  				  identical. Otherwise <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code>
+                  				  are incommensurable.<br />
+                  				  Attaching an actual parameter to a formal parameter in a
+                  				  method call is also considered as an assignment with respect to
+                  				  this rule.
+                  					
+               </li>
+            </ol>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(e)&nbsp;Conformance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.g.html" rel="next">&sect;1.2.2.(g)&nbsp;Legal contexts&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.g.html
new file mode 100644
index 0000000..7de320f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.g.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(f)&nbsp;Substitutions for type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.h.html" rel="next">&sect;1.2.2.(h)&nbsp;Externalized creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.g">
+            <h4 class="subsect">&sect;1.2.2.(g)&nbsp;<span class="title">Legal contexts</span></h4>
+            <p>Anchored types for externalized roles may be used in the
+               			following contexts:
+               				
+            </p>
+            <ol>
+               <li>Declaration of an attribute</li>
+               <li>Declaration of a local variable</li>
+               <li>Declaration of a parameter or result type
+                  						 of a method or constructor
+               </li>
+               <li>In the <code>playedBy</code> clause of a role class
+                  					(see <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>).
+               </li>
+            </ol>
+            <p>It is not legal to inherit from an anchored type, since
+               				this would require membership of the referenced team instance,
+               				which can only be achieved by class nesting.
+               				
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+					Item 4.
+					&mdash; within the given restriction &mdash; admits the case where
+					the same class is a role of one team and the base class for
+					the role of another team. Another form of nesting is
+					defined in <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(f)&nbsp;Substitutions for type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.h.html" rel="next">&sect;1.2.2.(h)&nbsp;Externalized creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.h.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.h.html
new file mode 100644
index 0000000..d09e892
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.h.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.g.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(g)&nbsp;Legal contexts</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.i.html" rel="next">&sect;1.2.2.(i)&nbsp;No import&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.h">
+            <h4 class="subsect">&sect;1.2.2.(h)&nbsp;<span class="title">Externalized creation</span></h4>
+            <p>A role can be created as externalized using either of these equivalent forms:</p>
+            <div class="listing plain"><pre>outer.<b>new</b> Role()
+<b>new</b> Role&lt;@outer&gt;()</pre></div>
+            <p>This requires the enclosing instance <code>outer</code> to be
+               			declared <code>final</code>. The expression has the
+               			type <code>Role&lt;@outer&gt;</code> following the rules of
+               			externalized roles.<br />
+               			The type <code>Role</code> in this expression must be a simple
+               			(unqualified) name.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.g.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(g)&nbsp;Legal contexts</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.2.i.html" rel="next">&sect;1.2.2.(i)&nbsp;No import&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.html
new file mode 100644
index 0000000..109669b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.html
@@ -0,0 +1,367 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1&nbsp;Modifiers for roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.html" rel="next">&sect;1.2.3&nbsp;Protected roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="sect depth3" id="s1.2.2">
+            <h3 class="sect">&sect;1.2.2&nbsp;Externalized roles</h3>
+            <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+            <p>Normally, a team encapsulates its role against unwanted access from the outside.
+               	  If roles are visible outside their enclosing team instance we speak of
+               	  <strong>externalized roles</strong>.
+               			
+            </p>
+            <p>Externalized roles are subject to specific typing rules in order to ensure,
+               	  that role instances from different team instances cannot be mixed in
+               	  inconsistent ways. In the presence of implicit inheritance
+               	  (<a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a>) inconsistencies could otherwise occur, which lead
+               	  to typing errors that could only be detected at run-time.
+               	  Externalized roles use the theory of 
+               "virtual classes" <a href="s1.html#fn1-virtual-classes" class="int">[1]</a>,
+               or more specifically 
+               "family polymorphism" <a href="s1.html#fn2-family-polymorphism" class="int">[2]</a>,
+               in order to achieve the desired type safety.
+               	  These theories use special forms of <em>dependent types</em>.
+               	  Externalized roles have <em>types that depend on a team instance</em>.
+               			
+            </p>
+            <p><a href="s1.2.3.html" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> deduces even stronger forms of encapsulation
+               	  from the rules about externalized roles.
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Visibility</span></h4>
+               <p>Only instances of a <code>public</code> role class can ever be externalized.
+                  			  	
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Declaration with anchored type</span></h4>
+               <p>Outside a team role types are legal only if denoted relative
+                  				to an existing team instance (further on called "anchored types").
+                  				The syntax is:
+               </p>
+               <div class="listing plain"><pre><em>final</em> MyTeam myTeam = <i>expression</i>;
+<em>RoleClass&lt;@myTeam&gt;</em> role = <i>expression</i>;</pre></div>
+               <p>The syntax <code>Type&lt;@anchor&gt;</code> is a special case of a parameterized type, more specifically a <a href="s9.html" title="&sect;9&nbsp;Value Dependent Classes" class="sect">value dependent type (&sect;9)</a>.
+                  				The type argument (i.e., the expression after the at-sign) can be a simple name or a path. It must refer to an instance
+                  of a team class.
+                  				The role type is said to be <em>anchored</em> to this team instance.<br />
+                  				The type-part of this syntax (in front of the angle brackets) must be the simple name of a role type directly contained
+                  in the given team (including roles that are acquired by implicit inheritance).<br /></p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  	Previous versions of the OTJLD used a different syntax for anchored types, where the role type was prefixed with the anchor
+                  expression, separated by a dot (<code>anchor.Type</code>, 
+                  see <a href="sA.html#sA.6.3" title="&sect;A.6.3&nbsp;AnchoredType" class="sect">&sect;A.6.3</a>). A compiler may still support that path syntax but it should be flagged as being deprecated.
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Immutable anchor</span></h4>
+               <p>Anchoring the type of an externalized role to a team instance
+                  				requires the team to be referenced by a variable which
+                  				is marked <code>final</code> (i.e., immutable).
+                  				The type anchor can be a path <code>v.f1.f2...</code> where
+                  				<code>v</code> is any final variable and <code>f1</code> ...
+                  				are final fields.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Implicit type anchors</span></h4>
+               <p>The current team instance can be used as a default anchor
+                  				for role types:
+                  				
+               </p>
+               <ol>
+                  <li>In non-static team level methods role types are by default interpreted as anchored to <code>this</code> (referring to the team instance). I.e., the following two declarations express the same:
+                     
+                     <div class="listing plain"><pre><b>public</b> RoleX getRoleX (RoleY r) { <i> stmts </i> }
+<b>public</b> RoleX&lt;@<em>this</em>&gt; getRoleX (RoleY&lt;@<em>this</em>&gt; r) { <i> stmts </i> }</pre></div>
+                  </li>
+                  <li>
+                     				In analogy, <em>role methods</em> use the enclosing team instance as the
+                     				default anchor for any role types.
+                  </li>
+               </ol>
+               <p>Note, that <code>this</code> and <code><em>Outer</em>.this</code> are always
+                  			  <code>final</code>.<br />
+                  			  The compiler uses the pseudo identifier <strong><code>tthis</code></strong> to denote
+                  			  such implicit type anchors in error messages.
+                  			  	
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Conformance</span></h4>
+               <p>Conformance between
+                  				two types <code>RoleX&lt;@teamA&gt;</code> and <code>RoleY&lt;@teamB&gt;</code>
+                  				not only requires the role types to be compatible, but also
+                  				the team instances to be provably <em>the same object</em>.
+                  				The compiler must be able to statically analyze anchor identity.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+               <p>Only two substitutions are considered for determining
+                  				team identity:
+                  				
+               </p>
+               <ol>
+                  <li>
+                     				  For type checking the application of team methods,
+                     				  <code>this</code> is <strong>substituted</strong> by the actual call target.
+                     				  For role methods a reference of the form <code><em>Outer</em>.this</code>
+                     				  is substituted by the enclosing instance of the call target.
+                     					
+                  </li>
+                  <li>Assignments from a <code>final</code> identifier
+                     				  to another <code>final</code> identifier are transitively
+                     				  followed, i.e., if <code>t1, t2</code> are final,
+                     				  after an assignment <code>t1=t2</code>
+                     				  the types <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code> are considered
+                     				  identical. Otherwise <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code>
+                     				  are incommensurable.<br />
+                     				  Attaching an actual parameter to a formal parameter in a
+                     				  method call is also considered as an assignment with respect to
+                     				  this rule.
+                     					
+                  </li>
+               </ol>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Legal contexts</span></h4>
+               <p>Anchored types for externalized roles may be used in the
+                  			following contexts:
+                  				
+               </p>
+               <ol>
+                  <li>Declaration of an attribute</li>
+                  <li>Declaration of a local variable</li>
+                  <li>Declaration of a parameter or result type
+                     						 of a method or constructor
+                  </li>
+                  <li>In the <code>playedBy</code> clause of a role class
+                     					(see <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>).
+                  </li>
+               </ol>
+               <p>It is not legal to inherit from an anchored type, since
+                  				this would require membership of the referenced team instance,
+                  				which can only be achieved by class nesting.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+					Item 4.
+					&mdash; within the given restriction &mdash; admits the case where
+					the same class is a role of one team and the base class for
+					the role of another team. Another form of nesting is
+					defined in <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>.
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.h">
+               <h4 class="subsect">(h)&nbsp;<span class="title">Externalized creation</span></h4>
+               <p>A role can be created as externalized using either of these equivalent forms:</p>
+               <div class="listing plain"><pre>outer.<b>new</b> Role()
+<b>new</b> Role&lt;@outer&gt;()</pre></div>
+               <p>This requires the enclosing instance <code>outer</code> to be
+                  			declared <code>final</code>. The expression has the
+                  			type <code>Role&lt;@outer&gt;</code> following the rules of
+                  			externalized roles.<br />
+                  			The type <code>Role</code> in this expression must be a simple
+                  			(unqualified) name.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.2.i">
+               <h4 class="subsect">(i)&nbsp;<span class="title">No import</span></h4>
+               <p>It is neither useful nor legal to import a role type.<br /></p>
+               <div class="note">
+                  <h5>Rationale:</h5>
+                  					Importing a type allows to use the unqualified name in situations that would otherwise require to use the fully qualified
+                  name, 
+                  					i.e., the type prefixed with its containing package and enclosing class. Roles, however are contained in a team <i>instance</i>.
+                  					Outside their team, role types can only be accessed using an anchored type which uses a team instance to qualify the
+                  role type.
+                  					Relative to this team anchor, roles are <i>always</i> denoted using their simple name, which makes importing roles useless.
+                  				
+               </div>
+               <p>A static import for a constant declared in a role is, however, legal.
+                  				
+               </p>
+            </div>
+            <h5 class="listing">Example code (Externalized Roles):</h5>
+            <div class="listing example frame" id="l1.2.2-1">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> FlightBonus <b>extends</b> Bonus {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> Subscriber {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>void</b> clearCredits() { ... }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  <b>void</b> unsubscribe(Subscriber subscr) { ... }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing example frame" id="l1.2.2-2">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre><b>class</b> ClearAction <b>extends</b> Action {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  <em>final</em> FlightBonus context;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>  <em>Subscriber&lt;@context&gt;</em> subscriber;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>  ClearAction (<em>final</em> FlightBonus bonus, <em>Subscriber&lt;@bonus&gt;</em> subscr) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>    context = bonus; <span class="comment">// unique assignment to 'context'</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>    subscriber = subscr;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>  <b>void</b> actionPerformed () {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>    subscriber.clearCredits();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>  <b>protected</b> <b>void</b> finalize () {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>    context.unsubscribe(subscriber);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>Lines 1-6 show a terse extract of a published example
+                     	 				<a href="http://www.objectteams.org/publications/index.html#NODe02" class="ext">[NODe02]</a>. Here passengers can be subscribers in a flight bonus program.
+                  </li>
+                  <li>Lines 7-20 show a sub-class of <code>Action</code> which is
+                     					used to associate the action of resetting a subscriber's credits
+                     					to a button or similar element in an application's GUI.
+                  </li>
+                  <li>Attribute <code>context</code> (line 8) and parameter
+                     					<code>bonus</code> (line 10) serve as anchor for the type of
+                     					externalized roles.
+                  </li>
+                  <li>Attribute <code>subscriber</code> (line 9) and parameter
+                     					<code>subscr</code> (line 10) store a Subscriber role outside the
+                     					FlightBonus team.
+                  </li>
+                  <li>In order to type-check the assignment in line 12, the compiler
+                     					has to ensure that the types of LHS and RHS are anchored to
+                     					the same team instance. This can be verified by checking that
+                     					both anchors are indeed <code>final</code> and prior to the
+                     					role assignment a team assignment has taken place (line 11).<br /><span class="underline">Note,</span> that the Java rules for <strong>definite assignments</strong> to
+                     final variables ensure that exactly one assignment to a variable occurs
+                     		            prior to its use as type anchor. No further checks are needed.
+                     	                
+                  </li>
+                  <li>It is now legal to store this role reference and use it at
+                     					some later point in time, e.g., for invoking method
+                     					<code>clearCredits</code> (line 15).
+                     					This method call is also an example for implicit team activation
+                     					(<a href="s5.3.b.html" title="&sect;5.3.(b)&nbsp;Methods of externalized roles"
+                        class="sect">&sect;5.3.(b)</a>).
+                     					
+                  </li>
+                  <li>Line 18 demonstrates how an externalized role can be
+                     					passed to a team level method. The signature of <code>unsubscribe</code>
+                     					is for this call expanded to 
+                     <div class="indent">
+                        						void unsubscribe(Subscriber&lt;@context&gt; subscr)
+                        					
+                     </div>
+                     					(by substituting the call target <code>context</code> for
+                     					<code>this</code>). This proves identical types for actual and
+                     					formal parameters.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.1&nbsp;Modifiers for roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.html" rel="next">&sect;1.2.3&nbsp;Protected roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.i.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.i.html
new file mode 100644
index 0000000..801887a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.2.i.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.h.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(h)&nbsp;Externalized creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+         <div class="subsect depth4" id="s1.2.2.i">
+            <h4 class="subsect">&sect;1.2.2.(i)&nbsp;<span class="title">No import</span></h4>
+            <p>It is neither useful nor legal to import a role type.<br /></p>
+            <div class="note">
+               <h5>Rationale:</h5>
+               					Importing a type allows to use the unqualified name in situations that would otherwise require to use the fully qualified
+               name, 
+               					i.e., the type prefixed with its containing package and enclosing class. Roles, however are contained in a team <i>instance</i>.
+               					Outside their team, role types can only be accessed using an anchored type which uses a team instance to qualify the
+               role type.
+               					Relative to this team anchor, roles are <i>always</i> denoted using their simple name, which makes importing roles useless.
+               				
+            </div>
+            <p>A static import for a constant declared in a role is, however, legal.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.h.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2.(h)&nbsp;Externalized creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.2.html" rel="section">&sect;1.2.2&nbsp;Externalized roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.a.html
new file mode 100644
index 0000000..574756d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.a.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.b.html" rel="next">&sect;1.2.3.(b)&nbsp;Qualified role types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="subsect depth4" id="s1.2.3.a">
+            <h4 class="subsect">&sect;1.2.3.(a)&nbsp;<span class="title">Importing role classes</span></h4>
+            <p><i>This rule is superseded by <a href="s1.2.2.i.html" title="&sect;1.2.2.(i)&nbsp;No import" class="sect">&sect;1.2.2.(i)</a></i></p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.b.html" rel="next">&sect;1.2.3.(b)&nbsp;Qualified role types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.b.html
new file mode 100644
index 0000000..6a041ef
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.b.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(a)&nbsp;Importing role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.c.html" rel="next">&sect;1.2.3.(c)&nbsp;Mixing qualified and unqualified types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="subsect depth4" id="s1.2.3.b">
+            <h4 class="subsect">&sect;1.2.3.(b)&nbsp;<span class="title">Qualified role types</span></h4>
+            <p>The name of a <code>protected</code> role class may never be used qualified, neither
+               			prefixed by its <em>enclosing type</em> nor parameterized by a <em>variable as type anchor</em> (cf. <a href="s1.2.2.a.html" title="&sect;1.2.2.(a)&nbsp;Visibility" class="sect">&sect;1.2.2.(a)</a>).
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(a)&nbsp;Importing role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.c.html" rel="next">&sect;1.2.3.(c)&nbsp;Mixing qualified and unqualified types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.c.html
new file mode 100644
index 0000000..f568380
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.c.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(b)&nbsp;Qualified role types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.d.html" rel="next">&sect;1.2.3.(d)&nbsp;Levels of encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="subsect depth4" id="s1.2.3.c">
+            <h4 class="subsect">&sect;1.2.3.(c)&nbsp;<span class="title">Mixing qualified and unqualified types</span></h4>
+            <p>An externalized role type is never compatible to an unqualified role type,
+               			except for the substitutions in <a href="s1.2.2.f.html"
+                  title="&sect;1.2.2.(f)&nbsp;Substitutions for type anchors"
+                  class="sect">&sect;1.2.2.(f)</a>, where
+               			an explicit anchor can be matched with the implicit anchor <code>this</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(b)&nbsp;Qualified role types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.3.d.html" rel="next">&sect;1.2.3.(d)&nbsp;Levels of encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.d.html
new file mode 100644
index 0000000..bceb135
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.d.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(c)&nbsp;Mixing qualified and unqualified types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+         <div class="subsect depth4" id="s1.2.3.d">
+            <h4 class="subsect">&sect;1.2.3.(d)&nbsp;<span class="title">Levels of encapsulation</span></h4>
+            <p>Since protected role types can not be used for externalization, instances of these types are already quite effectively encapsulated
+               by their enclosing team.
+               			Based on this concept, encapsulation for protected roles can be made even stricter by the rules of <em>role confinement</em>.
+               			On the contrary, even protected roles can be externalized as <em>opaque roles</em> which still expose (almost) no information.
+               			Confinement and opaque roles are subject of <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3.(c)&nbsp;Mixing qualified and unqualified types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.3.html" rel="section">&sect;1.2.3&nbsp;Protected roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.html
new file mode 100644
index 0000000..13f94a0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.3.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2&nbsp;Externalized roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.html" rel="next">&sect;1.2.4&nbsp;Type tests and casts&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="sect depth3" id="s1.2.3">
+            <h3 class="sect">&sect;1.2.3&nbsp;Protected roles</h3>
+            <p>Roles can only be <code>public</code> or <code>protected</code>.
+               	A <code>protected</code> role is encapsulated
+               	by its enclosing team instance. This is enforced by these rules:
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Importing role classes</span></h4>
+               <p><i>This rule is superseded by <a href="s1.2.2.i.html" title="&sect;1.2.2.(i)&nbsp;No import" class="sect">&sect;1.2.2.(i)</a></i></p>
+            </div>
+            <div class="subsect depth4" id="s1.2.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Qualified role types</span></h4>
+               <p>The name of a <code>protected</code> role class may never be used qualified, neither
+                  			prefixed by its <em>enclosing type</em> nor parameterized by a <em>variable as type anchor</em> (cf. <a href="s1.2.2.a.html" title="&sect;1.2.2.(a)&nbsp;Visibility" class="sect">&sect;1.2.2.(a)</a>).
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Mixing qualified and unqualified types</span></h4>
+               <p>An externalized role type is never compatible to an unqualified role type,
+                  			except for the substitutions in <a href="s1.2.2.f.html"
+                     title="&sect;1.2.2.(f)&nbsp;Substitutions for type anchors"
+                     class="sect">&sect;1.2.2.(f)</a>, where
+                  			an explicit anchor can be matched with the implicit anchor <code>this</code>.
+                  				
+               </p>
+            </div>
+            <p>Rules (a) and (b) ensure that the name of a protected role class cannot be used
+               			outside the lexical scope of its enclosing team. Rule (c) ensures that team methods
+               			containing unqualified role types in their signature cannot be invoked on a team other
+               			than the current team. Accordingly, for role methods the team context must be the
+               			enclosing team instance.
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Levels of encapsulation</span></h4>
+               <p>Since protected role types can not be used for externalization, instances of these types are already quite effectively encapsulated
+                  by their enclosing team.
+                  			Based on this concept, encapsulation for protected roles can be made even stricter by the rules of <em>role confinement</em>.
+                  			On the contrary, even protected roles can be externalized as <em>opaque roles</em> which still expose (almost) no information.
+                  			Confinement and opaque roles are subject of <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.2&nbsp;Externalized roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.html" rel="next">&sect;1.2.4&nbsp;Type tests and casts&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.a.html
new file mode 100644
index 0000000..0704001
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.a.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.b.html" rel="next">&sect;1.2.4.(b)&nbsp;Casting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+         <div class="subsect depth4" id="s1.2.4.a">
+            <h4 class="subsect">&sect;1.2.4.(a)&nbsp;<span class="title">instanceof</span></h4>
+            <p>For role types the <code>instanceof</code> operator yields true only if
+               			both components of the type match: the dynamic role type must be compatible
+               			to the given static type, and also type anchors must be the same instance.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.b.html" rel="next">&sect;1.2.4.(b)&nbsp;Casting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.b.html
new file mode 100644
index 0000000..a0c0539
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4.(a)&nbsp;instanceof</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.c.html" rel="next">&sect;1.2.4.(c)&nbsp;Class literal&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+         <div class="subsect depth4" id="s1.2.4.b">
+            <h4 class="subsect">&sect;1.2.4.(b)&nbsp;<span class="title">Casting</span></h4>
+            <p>Casts may also fail if the casted expression is anchored to a different
+               			team instance than the cast type. Such failure is signaled by a
+               			<code>org.objectteams.RoleCastException</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4.(a)&nbsp;instanceof</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.4.c.html" rel="next">&sect;1.2.4.(c)&nbsp;Class literal&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.c.html
new file mode 100644
index 0000000..b4f051f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4.(b)&nbsp;Casting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+         <div class="subsect depth4" id="s1.2.4.c">
+            <h4 class="subsect">&sect;1.2.4.(c)&nbsp;<span class="title">Class literal</span></h4>
+            <p>A class literal of form <code>R.class</code> is dynamically bound to the class <code>R</code>
+               					visible in the current instance context. Using a class literal for a role outside its
+               					enclosing team instance (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) requires the following syntax:
+               				
+            </p>
+            <div class="listing plain"><pre>RoleClass<em>&lt;@teamAnchor&gt;</em><strong>.class</strong></pre></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4.(b)&nbsp;Casting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.4.html" rel="section">&sect;1.2.4&nbsp;Type tests and casts</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.html
new file mode 100644
index 0000000..da80141
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.4.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.3.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3&nbsp;Protected roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.html" rel="next">&sect;1.2.5&nbsp;File structure&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="sect depth3" id="s1.2.4">
+            <h3 class="sect">&sect;1.2.4&nbsp;Type tests and casts</h3>
+            <p>In accordance with <a href="s1.2.2.e.html" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>, in OT/J
+               	the <code>instanceof</code> operator and type casts have extended semantics for roles.
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">instanceof</span></h4>
+               <p>For role types the <code>instanceof</code> operator yields true only if
+                  			both components of the type match: the dynamic role type must be compatible
+                  			to the given static type, and also type anchors must be the same instance.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Casting</span></h4>
+               <p>Casts may also fail if the casted expression is anchored to a different
+                  			team instance than the cast type. Such failure is signaled by a
+                  			<code>org.objectteams.RoleCastException</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.4.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Class literal</span></h4>
+               <p>A class literal of form <code>R.class</code> is dynamically bound to the class <code>R</code>
+                  					visible in the current instance context. Using a class literal for a role outside its
+                  					enclosing team instance (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) requires the following syntax:
+                  				
+               </p>
+               <div class="listing plain"><pre>RoleClass<em>&lt;@teamAnchor&gt;</em><strong>.class</strong></pre></div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.3.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.3&nbsp;Protected roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.html" rel="next">&sect;1.2.5&nbsp;File structure&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.a.html
new file mode 100644
index 0000000..c6d2bc3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.b.html" rel="next">&sect;1.2.5.(b)&nbsp;Role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.a">
+            <h4 class="subsect">&sect;1.2.5.(a)&nbsp;<span class="title">Role directory</span></h4>
+            <p>In the directory of the team class a new directory is created
+               			which has the same name as the team without the <tt>.java</tt> suffix.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.b.html" rel="next">&sect;1.2.5.(b)&nbsp;Role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.b.html
new file mode 100644
index 0000000..ba7f40d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(a)&nbsp;Role directory</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.c.html" rel="next">&sect;1.2.5.(c)&nbsp;package statement&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.b">
+            <h4 class="subsect">&sect;1.2.5.(b)&nbsp;<span class="title">Role files</span></h4>
+            <p>Role classes are stored in this directory (a). The file names are
+               			derived from the role class name extended by <tt>.java</tt>.<br />
+               			A role file must contain exactly one top-level type.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(a)&nbsp;Role directory</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.c.html" rel="next">&sect;1.2.5.(c)&nbsp;package statement&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.c.html
new file mode 100644
index 0000000..730f261
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.c.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(b)&nbsp;Role files</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.d.html" rel="next">&sect;1.2.5.(d)&nbsp;Reference to role file&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.c">
+            <h4 class="subsect">&sect;1.2.5.(c)&nbsp;<span class="title">package statement</span></h4>
+            <p>A role class in a role file declares as its package the fully qualified
+               			name of the enclosing team class. The package statement of a role file
+               			must use the <code>team</code> modifier as its first token.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(b)&nbsp;Role files</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.d.html" rel="next">&sect;1.2.5.(d)&nbsp;Reference to role file&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.d.html
new file mode 100644
index 0000000..9ac78ed
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.d.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(c)&nbsp;package statement</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.e.html" rel="next">&sect;1.2.5.(e)&nbsp;Legal types in role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.d">
+            <h4 class="subsect">&sect;1.2.5.(d)&nbsp;<span class="title">Reference to role file</span></h4>
+            <p>A team should mention in its javadoc comment each role class which
+               			is stored externally using a <tt>@role</tt> tag.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(c)&nbsp;package statement</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.e.html" rel="next">&sect;1.2.5.(e)&nbsp;Legal types in role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.e.html
new file mode 100644
index 0000000..fa83840
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.e.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(d)&nbsp;Reference to role file</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.f.html" rel="next">&sect;1.2.5.(f)&nbsp;Imports in role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.e">
+            <h4 class="subsect">&sect;1.2.5.(e)&nbsp;<span class="title">Legal types in role files</span></h4>
+            <p>The type in a role file must not be an <code>enum</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(d)&nbsp;Reference to role file</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.2.5.f.html" rel="next">&sect;1.2.5.(f)&nbsp;Imports in role files&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.f.html
new file mode 100644
index 0000000..47fb16a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.f.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(e)&nbsp;Legal types in role files</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+         <div class="subsect depth4" id="s1.2.5.f">
+            <h4 class="subsect">&sect;1.2.5.(f)&nbsp;<span class="title">Imports in role files</span></h4>
+            <p>A role file may have imports of its own. 
+               				Within the role definition these imports are visible <em>in addition</em> to all imports of the enclosing team. 
+               				Only <code>base</code> imports (see <a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>)
+               				<em>must</em> be defined in the team.
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.5.(e)&nbsp;Legal types in role files</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.5.html" rel="section">&sect;1.2.5&nbsp;File structure</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.html
new file mode 100644
index 0000000..a41f163
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.5.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.4.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4&nbsp;Type tests and casts</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+         <div class="sect depth3" id="s1.2.5">
+            <h3 class="sect">&sect;1.2.5&nbsp;File structure</h3>
+            <p>Just like regular inner classes, role classes may be inlined in the
+               	source code of the enclosing team. As an alternative style it is possible
+               	to store role classes in separate <strong>role files</strong> according to the following rules:
+               			
+            </p>
+            <div class="subsect depth4" id="s1.2.5.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Role directory</span></h4>
+               <p>In the directory of the team class a new directory is created
+                  			which has the same name as the team without the <tt>.java</tt> suffix.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.5.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Role files</span></h4>
+               <p>Role classes are stored in this directory (a). The file names are
+                  			derived from the role class name extended by <tt>.java</tt>.<br />
+                  			A role file must contain exactly one top-level type.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.5.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">package statement</span></h4>
+               <p>A role class in a role file declares as its package the fully qualified
+                  			name of the enclosing team class. The package statement of a role file
+                  			must use the <code>team</code> modifier as its first token.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.5.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Reference to role file</span></h4>
+               <p>A team should mention in its javadoc comment each role class which
+                  			is stored externally using a <tt>@role</tt> tag.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.5.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Legal types in role files</span></h4>
+               <p>The type in a role file must not be an <code>enum</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.2.5.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Imports in role files</span></h4>
+               <p>A role file may have imports of its own. 
+                  				Within the role definition these imports are visible <em>in addition</em> to all imports of the enclosing team. 
+                  				Only <code>base</code> imports (see <a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>)
+                  				<em>must</em> be defined in the team.
+               </p>
+            </div>
+            <p>Semantically, there is no difference between inlined role classes and those
+               	stored in separate role files.
+               			
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               	Current Java compilers disallow a type to have the same fully qualified
+               	name as a package. However, the JLS does not seem to make a statement in this respect.
+               	In OT/J, a package and a type are interpreted as being the same team, if both have the
+               	same fully qualified name and both have the <code>team</code> modifier.
+               			
+            </div>
+            <h5 class="listing">Role file example:</h5>
+            <div class="listing example frame" id="l1.2.5-1">
+               <table class="listing">
+                  <tr class="lhead">
+                     <td colspan="2">in file <code>org/objectteams/examples/MyTeamA.java</code> :
+                     </td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>package</b> org.objectteams.examples;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre><span class="comment">/**</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre> <span class="comment">* @author Stephan Herrmann</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre> <span class="comment">* @date 20.02.2007</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre> <span class="comment">* @file MyTeamA.java</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre> <span class="comment">* <em>@role MyRole</em></span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre> <span class="comment">*/</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>  ...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing example frame" id="l1.2.5-2">
+               <table class="listing">
+                  <tr class="lhead">
+                     <td colspan="2">in file <code>org/objectteams/examples<strong class="blue">/MyTeamA/MyRole.java</strong></code>:
+                     </td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><em><b>team</b> <b>package</b> org.objectteams.examples.MyTeamA;</em></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre><b>public</b> <b>class</b> MyRole {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  ...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.4.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2.4&nbsp;Type tests and casts</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.2.html" rel="section">&sect;1.2&nbsp;Role classes and objects</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.html
new file mode 100644
index 0000000..08b9dcb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.2.html
@@ -0,0 +1,742 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.1&nbsp;Team classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.html" rel="next">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="sect depth2" id="s1.2">
+            <h2 class="sect">&sect;1.2&nbsp;Role classes and objects</h2>
+            <p>Each direct inner class of a team is a role class.
+               Just like inner classes, each instance of a role class has an implicit reference
+               to its enclosing team instance. This reference is immutable.
+               Within the implementation of a role it can be accessed by qualifying the identifier
+               <code>this</code> with the name of the team class, as in:
+               		
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <em><b>class</b> MyRole</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("Team: "+ <em>MyTeamA.this</em>); }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>Creation of role instances is further restricted as defined in
+               <a href="s2.4.html" title="&sect;2.4&nbsp;Explicit role creation" class="sect">&sect;2.4</a>.
+               	Teams can also define role interfaces just like role classes.
+               	With respect to role specific properties a role interface is treated like a fully
+               	abstract class.
+               		
+            </p>
+            <div class="sect depth3" id="s1.2.1">
+               <h3 class="sect">&sect;1.2.1&nbsp;Modifiers for roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.2</a></span></h3>
+               <p>Member classes of a team cannot be <code>static</code>.
+                  Also the use of access modifiers for roles is restricted and modifiers have different (stronger) semantics than for 
+                  regular classes (see below). With respect to accessibility a team acts mainly like a package regarding its roles.
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Role class protection</span></h4>
+                  <p>A role class must have exactly one of the access modifiers <code>public</code>
+                     			or <code>protected</code>.<br />
+                     This rule does not affect the class modifiers <code>abstract</code>, <code>final</code> and <code>strictfp</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">protected role classes</span></h4>
+                  <p>A <code>protected</code> role can only be accessed from within the enclosing
+                     			team or any of its sub-teams. The actual border of encapsulation is the
+                     			enclosing team <em>instance</em>. The rules for protected roles are given
+                     			in <a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> below.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">public role classes</span></h4>
+                  <p>Only <code>public</code> roles can ever be accessed outside their enclosing	team.
+                     			Accessing a role outside the enclosing team instance is governed by the rules
+                     			of <strong>externalized roles</strong>, to be defined next (<a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">abstract role classes</span></h4>
+                  <p>A role class has to be marked <strong>abstract</strong> if any of its methods
+                     			is not effective.<br />
+                     			The <em>methods of a role class</em> comprise direct methods and
+                     			methods acquired by inheritance.
+                     			In addition to regular inheritance a role class may acquire	methods
+                     			also via implicit inheritance (<a href="s1.3.1.html"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>).<br />
+                     			A method may become <em>effective</em> by either:
+                     				
+                  </p>
+                  <ul>
+                     <li>implementation (i.e., a regular method body), or</li>
+                     <li>a callout binding (see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                     </li>
+                  </ul>
+                  <p><a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a> discusses under which 
+                     			circumstances abstract roles force the enclosing team to be abstract, too.
+                     
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role features</span></h4>
+                  <p>Access modifiers for members of roles have some special interpretation:
+                     				
+                  </p>
+                  <ol>
+                     <li>A private member is also visible in any implicit sub role
+                        		    (see implicit inheritance <a href="s1.3.1.c.html"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">&sect;1.3.1.(c)</a>).<br />
+                        		    In contrast to inner classes in Java, private members of a role are not
+                        		    visible to the enclosing team.
+                     </li>
+                     <li>The default visibility of role members restricts access to the
+                        			  current class and its sub-classes (explicit and implicit).
+                     </li>
+                     <li><code>protected</code> role members can only be accessed from the enclosing
+                        			  team or via  <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>.
+                     </li>
+                     <li><code>public</code> role members grant unrestricted access.
+                     </li>
+                  </ol>
+                  <p>Additionally, a role always has access to all the features that its enclosing team has access to.</p>
+                  <p>Only <code>public</code> members can ever be accessed via an <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">externalized role (&sect;1.2.2)</a>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Static role methods</span></h4>
+                  <p>In contrast to inner classes in pure Java, a role class may indeed define static methods. A static role method requires no
+                     role 
+                     				instance <em>but</em> it still requires a team instance in scope. Static role methods can be called:
+                     				
+                  </p>
+                  <ul>
+                     <li>from the enclosing team,</li>
+                     <li>via callin (see <a href="s4.7.html" title="&sect;4.7&nbsp;Callin binding with static methods"
+                           class="sect">&sect;4.7</a>).
+                     </li>
+                  </ul>
+                  <p>Within a static role method the syntax <code>MyTeam.this</code> is available for accessing the enclosing team instance.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">No static initializers</span></h4>
+                  <p>A static field of a role class must not have a non-constant initialization expression.
+                     					   Static initialization blocks are already prohibited for inner classes by Java (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#262890"
+                        class="ext">JLS &sect;8.1.2</a>).
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>   
+                     					Static initialization generally provides a means for performing initialization code prior to instantiation, i.e., at
+                     class-loading time.
+                     					Before any role can be created already two levels of initialization are performed: (1) The (outer most) enclosing team
+                     class performs static initializations when it is loaded. (2) Any enclosing team executes 
+                     					its constructor when it is instantiated. It should be possible to allocate any early initialization to either of these
+                     two phases instead of using static role initializers.
+                     				
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth3" id="s1.2.2">
+               <h3 class="sect">&sect;1.2.2&nbsp;Externalized roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.2</a></span></h3>
+               <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+               <p>Normally, a team encapsulates its role against unwanted access from the outside.
+                  	  If roles are visible outside their enclosing team instance we speak of
+                  	  <strong>externalized roles</strong>.
+                  			
+               </p>
+               <p>Externalized roles are subject to specific typing rules in order to ensure,
+                  	  that role instances from different team instances cannot be mixed in
+                  	  inconsistent ways. In the presence of implicit inheritance
+                  	  (<a href="s1.3.1.html"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>) inconsistencies could otherwise occur, which lead
+                  	  to typing errors that could only be detected at run-time.
+                  	  Externalized roles use the theory of 
+                  "virtual classes" <a href="s1.html#fn1-virtual-classes" class="int">[1]</a>,
+                  or more specifically 
+                  "family polymorphism" <a href="s1.html#fn2-family-polymorphism" class="int">[2]</a>,
+                  in order to achieve the desired type safety.
+                  	  These theories use special forms of <em>dependent types</em>.
+                  	  Externalized roles have <em>types that depend on a team instance</em>.
+                  			
+               </p>
+               <p><a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> deduces even stronger forms of encapsulation
+                  	  from the rules about externalized roles.
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Visibility</span></h4>
+                  <p>Only instances of a <code>public</code> role class can ever be externalized.
+                     			  	
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Declaration with anchored type</span></h4>
+                  <p>Outside a team role types are legal only if denoted relative
+                     				to an existing team instance (further on called "anchored types").
+                     				The syntax is:
+                  </p>
+                  <div class="listing plain"><pre><em>final</em> MyTeam myTeam = <i>expression</i>;
+<em>RoleClass&lt;@myTeam&gt;</em> role = <i>expression</i>;</pre></div>
+                  <p>The syntax <code>Type&lt;@anchor&gt;</code> is a special case of a parameterized type, more specifically a <a href="s9.html" title="&sect;9&nbsp;Value Dependent Classes" class="sect">value dependent type (&sect;9)</a>.
+                     				The type argument (i.e., the expression after the at-sign) can be a simple name or a path. It must refer to an instance
+                     of a team class.
+                     				The role type is said to be <em>anchored</em> to this team instance.<br />
+                     				The type-part of this syntax (in front of the angle brackets) must be the simple name of a role type directly contained
+                     in the given team (including roles that are acquired by implicit inheritance).<br /></p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     	Previous versions of the OTJLD used a different syntax for anchored types, where the role type was prefixed with the anchor
+                     expression, separated by a dot (<code>anchor.Type</code>, 
+                     see <a href="sA.html#sA.6.3" title="&sect;A.6.3&nbsp;AnchoredType" class="sect">&sect;A.6.3</a>). A compiler may still support that path syntax but it should be flagged as being deprecated.
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Immutable anchor</span></h4>
+                  <p>Anchoring the type of an externalized role to a team instance
+                     				requires the team to be referenced by a variable which
+                     				is marked <code>final</code> (i.e., immutable).
+                     				The type anchor can be a path <code>v.f1.f2...</code> where
+                     				<code>v</code> is any final variable and <code>f1</code> ...
+                     				are final fields.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Implicit type anchors</span></h4>
+                  <p>The current team instance can be used as a default anchor
+                     				for role types:
+                     				
+                  </p>
+                  <ol>
+                     <li>In non-static team level methods role types are by default interpreted as anchored to <code>this</code> (referring to the team instance). I.e., the following two declarations express the same:
+                        
+                        <div class="listing plain"><pre><b>public</b> RoleX getRoleX (RoleY r) { <i> stmts </i> }
+<b>public</b> RoleX&lt;@<em>this</em>&gt; getRoleX (RoleY&lt;@<em>this</em>&gt; r) { <i> stmts </i> }</pre></div>
+                     </li>
+                     <li>
+                        				In analogy, <em>role methods</em> use the enclosing team instance as the
+                        				default anchor for any role types.
+                     </li>
+                  </ol>
+                  <p>Note, that <code>this</code> and <code><em>Outer</em>.this</code> are always
+                     			  <code>final</code>.<br />
+                     			  The compiler uses the pseudo identifier <strong><code>tthis</code></strong> to denote
+                     			  such implicit type anchors in error messages.
+                     			  	
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Conformance</span></h4>
+                  <p>Conformance between
+                     				two types <code>RoleX&lt;@teamA&gt;</code> and <code>RoleY&lt;@teamB&gt;</code>
+                     				not only requires the role types to be compatible, but also
+                     				the team instances to be provably <em>the same object</em>.
+                     				The compiler must be able to statically analyze anchor identity.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                  <p>Only two substitutions are considered for determining
+                     				team identity:
+                     				
+                  </p>
+                  <ol>
+                     <li>
+                        				  For type checking the application of team methods,
+                        				  <code>this</code> is <strong>substituted</strong> by the actual call target.
+                        				  For role methods a reference of the form <code><em>Outer</em>.this</code>
+                        				  is substituted by the enclosing instance of the call target.
+                        					
+                     </li>
+                     <li>Assignments from a <code>final</code> identifier
+                        				  to another <code>final</code> identifier are transitively
+                        				  followed, i.e., if <code>t1, t2</code> are final,
+                        				  after an assignment <code>t1=t2</code>
+                        				  the types <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code> are considered
+                        				  identical. Otherwise <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code>
+                        				  are incommensurable.<br />
+                        				  Attaching an actual parameter to a formal parameter in a
+                        				  method call is also considered as an assignment with respect to
+                        				  this rule.
+                        					
+                     </li>
+                  </ol>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Legal contexts</span></h4>
+                  <p>Anchored types for externalized roles may be used in the
+                     			following contexts:
+                     				
+                  </p>
+                  <ol>
+                     <li>Declaration of an attribute</li>
+                     <li>Declaration of a local variable</li>
+                     <li>Declaration of a parameter or result type
+                        						 of a method or constructor
+                     </li>
+                     <li>In the <code>playedBy</code> clause of a role class
+                        					(see <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>).
+                     </li>
+                  </ol>
+                  <p>It is not legal to inherit from an anchored type, since
+                     				this would require membership of the referenced team instance,
+                     				which can only be achieved by class nesting.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+					Item 4.
+					&mdash; within the given restriction &mdash; admits the case where
+					the same class is a role of one team and the base class for
+					the role of another team. Another form of nesting is
+					defined in <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>.
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Externalized creation</span></h4>
+                  <p>A role can be created as externalized using either of these equivalent forms:</p>
+                  <div class="listing plain"><pre>outer.<b>new</b> Role()
+<b>new</b> Role&lt;@outer&gt;()</pre></div>
+                  <p>This requires the enclosing instance <code>outer</code> to be
+                     			declared <code>final</code>. The expression has the
+                     			type <code>Role&lt;@outer&gt;</code> following the rules of
+                     			externalized roles.<br />
+                     			The type <code>Role</code> in this expression must be a simple
+                     			(unqualified) name.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.2.i">
+                  <h4 class="subsect">(i)&nbsp;<span class="title">No import</span></h4>
+                  <p>It is neither useful nor legal to import a role type.<br /></p>
+                  <div class="note">
+                     <h5>Rationale:</h5>
+                     					Importing a type allows to use the unqualified name in situations that would otherwise require to use the fully qualified
+                     name, 
+                     					i.e., the type prefixed with its containing package and enclosing class. Roles, however are contained in a team <i>instance</i>.
+                     					Outside their team, role types can only be accessed using an anchored type which uses a team instance to qualify the
+                     role type.
+                     					Relative to this team anchor, roles are <i>always</i> denoted using their simple name, which makes importing roles useless.
+                     				
+                  </div>
+                  <p>A static import for a constant declared in a role is, however, legal.
+                     				
+                  </p>
+               </div>
+               <h5 class="listing">Example code (Externalized Roles):</h5>
+               <div class="listing example frame" id="l1.2.2-1">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> FlightBonus <b>extends</b> Bonus {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> Subscriber {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>void</b> clearCredits() { ... }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  <b>void</b> unsubscribe(Subscriber subscr) { ... }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame" id="l1.2.2-2">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre><b>class</b> ClearAction <b>extends</b> Action {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  <em>final</em> FlightBonus context;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>  <em>Subscriber&lt;@context&gt;</em> subscriber;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>  ClearAction (<em>final</em> FlightBonus bonus, <em>Subscriber&lt;@bonus&gt;</em> subscr) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>    context = bonus; <span class="comment">// unique assignment to 'context'</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>    subscriber = subscr;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>  <b>void</b> actionPerformed () {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>    subscriber.clearCredits();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>  <b>protected</b> <b>void</b> finalize () {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>    context.unsubscribe(subscriber);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Lines 1-6 show a terse extract of a published example
+                        	 				<a href="http://www.objectteams.org/publications/index.html#NODe02" class="ext">[NODe02]</a>. Here passengers can be subscribers in a flight bonus program.
+                     </li>
+                     <li>Lines 7-20 show a sub-class of <code>Action</code> which is
+                        					used to associate the action of resetting a subscriber's credits
+                        					to a button or similar element in an application's GUI.
+                     </li>
+                     <li>Attribute <code>context</code> (line 8) and parameter
+                        					<code>bonus</code> (line 10) serve as anchor for the type of
+                        					externalized roles.
+                     </li>
+                     <li>Attribute <code>subscriber</code> (line 9) and parameter
+                        					<code>subscr</code> (line 10) store a Subscriber role outside the
+                        					FlightBonus team.
+                     </li>
+                     <li>In order to type-check the assignment in line 12, the compiler
+                        					has to ensure that the types of LHS and RHS are anchored to
+                        					the same team instance. This can be verified by checking that
+                        					both anchors are indeed <code>final</code> and prior to the
+                        					role assignment a team assignment has taken place (line 11).<br /><span class="underline">Note,</span> that the Java rules for <strong>definite assignments</strong> to
+                        final variables ensure that exactly one assignment to a variable occurs
+                        		            prior to its use as type anchor. No further checks are needed.
+                        	                
+                     </li>
+                     <li>It is now legal to store this role reference and use it at
+                        					some later point in time, e.g., for invoking method
+                        					<code>clearCredits</code> (line 15).
+                        					This method call is also an example for implicit team activation
+                        					(<a href="s5.3.b.html" title="&sect;5.3.(b)&nbsp;Methods of externalized roles"
+                           class="sect">&sect;5.3.(b)</a>).
+                        					
+                     </li>
+                     <li>Line 18 demonstrates how an externalized role can be
+                        					passed to a team level method. The signature of <code>unsubscribe</code>
+                        					is for this call expanded to 
+                        <div class="indent">
+                           						void unsubscribe(Subscriber&lt;@context&gt; subscr)
+                           					
+                        </div>
+                        					(by substituting the call target <code>context</code> for
+                        					<code>this</code>). This proves identical types for actual and
+                        					formal parameters.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth3" id="s1.2.3">
+               <h3 class="sect">&sect;1.2.3&nbsp;Protected roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.2</a></span></h3>
+               <p>Roles can only be <code>public</code> or <code>protected</code>.
+                  	A <code>protected</code> role is encapsulated
+                  	by its enclosing team instance. This is enforced by these rules:
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Importing role classes</span></h4>
+                  <p><i>This rule is superseded by <a href="#s1.2.2.i" title="&sect;1.2.2.(i)&nbsp;No import" class="sect">&sect;1.2.2.(i)</a></i></p>
+               </div>
+               <div class="subsect depth4" id="s1.2.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Qualified role types</span></h4>
+                  <p>The name of a <code>protected</code> role class may never be used qualified, neither
+                     			prefixed by its <em>enclosing type</em> nor parameterized by a <em>variable as type anchor</em> (cf. <a href="#s1.2.2.a" title="&sect;1.2.2.(a)&nbsp;Visibility" class="sect">&sect;1.2.2.(a)</a>).
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Mixing qualified and unqualified types</span></h4>
+                  <p>An externalized role type is never compatible to an unqualified role type,
+                     			except for the substitutions in <a href="#s1.2.2.f"
+                        title="&sect;1.2.2.(f)&nbsp;Substitutions for type anchors"
+                        class="sect">&sect;1.2.2.(f)</a>, where
+                     			an explicit anchor can be matched with the implicit anchor <code>this</code>.
+                     				
+                  </p>
+               </div>
+               <p>Rules (a) and (b) ensure that the name of a protected role class cannot be used
+                  			outside the lexical scope of its enclosing team. Rule (c) ensures that team methods
+                  			containing unqualified role types in their signature cannot be invoked on a team other
+                  			than the current team. Accordingly, for role methods the team context must be the
+                  			enclosing team instance.
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Levels of encapsulation</span></h4>
+                  <p>Since protected role types can not be used for externalization, instances of these types are already quite effectively encapsulated
+                     by their enclosing team.
+                     			Based on this concept, encapsulation for protected roles can be made even stricter by the rules of <em>role confinement</em>.
+                     			On the contrary, even protected roles can be externalized as <em>opaque roles</em> which still expose (almost) no information.
+                     			Confinement and opaque roles are subject of <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                     				
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth3" id="s1.2.4">
+               <h3 class="sect">&sect;1.2.4&nbsp;Type tests and casts<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.2</a></span></h3>
+               <p>In accordance with <a href="#s1.2.2.e" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>, in OT/J
+                  	the <code>instanceof</code> operator and type casts have extended semantics for roles.
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">instanceof</span></h4>
+                  <p>For role types the <code>instanceof</code> operator yields true only if
+                     			both components of the type match: the dynamic role type must be compatible
+                     			to the given static type, and also type anchors must be the same instance.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Casting</span></h4>
+                  <p>Casts may also fail if the casted expression is anchored to a different
+                     			team instance than the cast type. Such failure is signaled by a
+                     			<code>org.objectteams.RoleCastException</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Class literal</span></h4>
+                  <p>A class literal of form <code>R.class</code> is dynamically bound to the class <code>R</code>
+                     					visible in the current instance context. Using a class literal for a role outside its
+                     					enclosing team instance (see <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) requires the following syntax:
+                     				
+                  </p>
+                  <div class="listing plain"><pre>RoleClass<em>&lt;@teamAnchor&gt;</em><strong>.class</strong></pre></div>
+               </div>
+            </div>
+            <div class="sect depth3" id="s1.2.5">
+               <h3 class="sect">&sect;1.2.5&nbsp;File structure<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.2</a></span></h3>
+               <p>Just like regular inner classes, role classes may be inlined in the
+                  	source code of the enclosing team. As an alternative style it is possible
+                  	to store role classes in separate <strong>role files</strong> according to the following rules:
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.2.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Role directory</span></h4>
+                  <p>In the directory of the team class a new directory is created
+                     			which has the same name as the team without the <tt>.java</tt> suffix.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Role files</span></h4>
+                  <p>Role classes are stored in this directory (a). The file names are
+                     			derived from the role class name extended by <tt>.java</tt>.<br />
+                     			A role file must contain exactly one top-level type.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">package statement</span></h4>
+                  <p>A role class in a role file declares as its package the fully qualified
+                     			name of the enclosing team class. The package statement of a role file
+                     			must use the <code>team</code> modifier as its first token.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Reference to role file</span></h4>
+                  <p>A team should mention in its javadoc comment each role class which
+                     			is stored externally using a <tt>@role</tt> tag.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Legal types in role files</span></h4>
+                  <p>The type in a role file must not be an <code>enum</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.2.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Imports in role files</span></h4>
+                  <p>A role file may have imports of its own. 
+                     				Within the role definition these imports are visible <em>in addition</em> to all imports of the enclosing team. 
+                     				Only <code>base</code> imports (see <a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>)
+                     				<em>must</em> be defined in the team.
+                  </p>
+               </div>
+               <p>Semantically, there is no difference between inlined role classes and those
+                  	stored in separate role files.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  	Current Java compilers disallow a type to have the same fully qualified
+                  	name as a package. However, the JLS does not seem to make a statement in this respect.
+                  	In OT/J, a package and a type are interpreted as being the same team, if both have the
+                  	same fully qualified name and both have the <code>team</code> modifier.
+                  			
+               </div>
+               <h5 class="listing">Role file example:</h5>
+               <div class="listing example frame" id="l1.2.5-1">
+                  <table class="listing">
+                     <tr class="lhead">
+                        <td colspan="2">in file <code>org/objectteams/examples/MyTeamA.java</code> :
+                        </td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>package</b> org.objectteams.examples;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre><span class="comment">/**</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre> <span class="comment">* @author Stephan Herrmann</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre> <span class="comment">* @date 20.02.2007</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre> <span class="comment">* @file MyTeamA.java</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre> <span class="comment">* <em>@role MyRole</em></span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre> <span class="comment">*/</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame" id="l1.2.5-2">
+                  <table class="listing">
+                     <tr class="lhead">
+                        <td colspan="2">in file <code>org/objectteams/examples<strong class="blue">/MyTeamA/MyRole.java</strong></code>:
+                        </td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><em><b>team</b> <b>package</b> org.objectteams.examples.MyTeamA;</em></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre><b>public</b> <b>class</b> MyRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.1&nbsp;Team classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.html" rel="next">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.a.html
new file mode 100644
index 0000000..c6919e6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.a.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.b.html" rel="next">&sect;1.3.1.(b)&nbsp;Direct role acquisition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.a">
+            <h4 class="subsect">&sect;1.3.1.(a)&nbsp;<span class="title">Role class acquisition</span></h4>
+            <p>A team <code>T</code> which extends a super-team <code>S</code>
+               	    has one role class <code>T.R</code> corresponding to each role <code>S.R</code>
+               	    of the super-team.
+               	    The new type <code>T.R</code>&nbsp;<strong>overrides</strong>&nbsp;<code>R</code> for the
+               	    context of <code>T</code> and its roles.
+               	    Acquisition of role classes can either be direct (see (b) below), or
+               	    it may involve overriding and implicit inheritance ((c) below). 
+               				
+            </p>
+            <div class="codecomment">In the above example (<a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a>) the team <code>S</code> operates 
+               					on types <code>S.R0</code>, <code>S.R1</code> and <code>S.R2</code>, 
+               					while <code>T</code> operates on types <code>T.R0</code>, <code>T.R1</code> 
+               					and <code>T.R2</code>.<br /><em>(Type references like "<code>S.R0</code>" are actually illegal in source code 
+                  					(<a href="s1.2.3.b.html" title="&sect;1.2.3.(b)&nbsp;Qualified role types"
+                     class="sect">&sect;1.2.3.(b)</a>). Here they are used for explanatory purposes only)</em></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.b.html" rel="next">&sect;1.3.1.(b)&nbsp;Direct role acquisition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.b.html
new file mode 100644
index 0000000..d32222a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.b.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(a)&nbsp;Role class acquisition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.c.html" rel="next">&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.b">
+            <h4 class="subsect">&sect;1.3.1.(b)&nbsp;<span class="title">Direct role acquisition</span></h4>
+            <p>Within a sub-team <code>T</code> each role <code>S.R</code> of its
+               	    super-team <code>S</code> is available by the simple name <code>R</code>
+               	    without further declaration.
+               				
+            </p>
+            <div class="codecomment">The role <code>R2</code> in <a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a> can be used in the sub-team 
+               					<code>T</code> (line 12), because this role type is defined in the super class of the enclosing team.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(a)&nbsp;Role class acquisition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.c.html" rel="next">&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.c.html
new file mode 100644
index 0000000..ad05fe8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.c.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(b)&nbsp;Direct role acquisition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.d.html" rel="next">&sect;1.3.1.(d)&nbsp;Lack of subtyping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.c">
+            <h4 class="subsect">&sect;1.3.1.(c)&nbsp;<span class="title">Overriding and implicit inheritance</span></h4>
+            <p>If a team contains a role class definition by the same name as
+               	    a role defined in its super-team,
+               	    the new role class overrides the corresponding role from the super-team
+               	    and <strong>implicitly inherits</strong> all of its features.
+               	    Such relation is established only by name correspondence.
+               				
+            </p>
+            <p>A role that overrides an inherited role should be marked with an <code>@Override</code> annotation.
+               		A compiler should optionally flag a missing <code>@Override</code> annotation with a warning.  
+               		Conversely, it is an error if a role is marked with an <code>@Override</code> annotation but does not actually
+               		override an inherited role.
+               				
+            </p>
+            <p>It is an error to override a role class with an interface or vice versa. A final role cannot be overridden.<br />
+               	    Unlike regular inheritance, <strong>constructors</strong> are also inherited
+               	    along implicit inheritance, and can be overridden just like normal methods.
+               				
+            </p>
+            <div class="codecomment">
+               					In <a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a><code> R1</code> in <code>T</code> implicitly inherits all features of
+               					  <code>R1</code> in <code>S</code>. This is, because its enclosing team
+               					  <code>T</code> extends the team <code>S</code> (line 10) and the role
+               					  definition uses the same name <code>R1</code> (line 11).
+               					  Hence the attribute <code><strong>ok</strong></code> is available in the method
+               					  <code>m()</code> in <code>T.R1</code> (line 13). <code>T.R1</code> also overrides <code>S.R1</code>
+               					  which is marked by the <code>@Override</code> annotation in line 11. 
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(b)&nbsp;Direct role acquisition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.d.html" rel="next">&sect;1.3.1.(d)&nbsp;Lack of subtyping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.d.html
new file mode 100644
index 0000000..8c8d056
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.d.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.e.html" rel="next">&sect;1.3.1.(e)&nbsp;Dynamic binding of types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.d">
+            <h4 class="subsect">&sect;1.3.1.(d)&nbsp;<span class="title">Lack of subtyping</span></h4>
+            <p>Direct acquisition of roles from a super-team and implicit inheritance
+               	    do not establish a <strong>subtype</strong> relation.
+               	    A role of a given team is never conform (i.e., substitutable)
+               	    to any role of any <em>other</em> team.
+               	    <code>S.R</code> and <code>T.R</code> are always incommensurable.<br /><span class="underline">Note,</span> that this rule is a direct consequence of <a href="s1.2.2.e.html" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.e.html" rel="next">&sect;1.3.1.(e)&nbsp;Dynamic binding of types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.e.html
new file mode 100644
index 0000000..92aa354
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.e.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(d)&nbsp;Lack of subtyping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.f.html" rel="next">&sect;1.3.1.(f)&nbsp;tsuper&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.e">
+            <h4 class="subsect">&sect;1.3.1.(e)&nbsp;<span class="title">Dynamic binding of types</span></h4>
+            <p>Overriding an acquired role by a new role class has the following
+               	    implication: If an expression or declaration, which is evaluated on behalf of
+               	    an instance of team <code>T</code> or one of its contained roles,
+               	    refers to a role <code>R</code>, <code>R</code> will always
+               	    resolve to <code>T.R</code> even if <code>R</code> was introduced in
+               	    a super-team of <code>T</code> and even if the specific line of code
+               	    was inherited from a super-team or one of its roles.
+               	    Only the dynamic type of the enclosing team-instance is used to determine
+               	    the correct role class (see below for an example).
+               				
+            </p>
+            <p>A special case of dynamically binding role types relates to so-called class literals 
+               		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                  class="ext">JLS &sect;15.8.2</a>). 
+               		Role class literals are covered in <a href="s6.1.c.html" title="&sect;6.1.(c)&nbsp;Class literals for roles"
+                  class="sect">&sect;6.1.(c)</a>.
+               				
+            </p>
+            <p>The above is strictly needed only for cases involving implicit inheritance.
+               	    It may, however, help intuition, to also consider the directly acquired
+               	    role <code>T.R</code> in (b) to override the given role <code>S.R</code>.
+               				
+            </p>
+            <div class="codecomment">
+               					In line 17 of <a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the implicitly inherited method <code>n</code> is called
+               				  with the result of an invocation of <code>m</code>. Although
+               				  <code>n</code> was defined in <code>S</code> (thus with argument type
+               				  <code>S.R2, see line 6</code>) in the context of <code>T</code> it
+               				  expects an argument of <code>T.R2</code>. This is correctly provided by
+               				  the invocation of <code>m</code> in the context of <code>T</code>.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(d)&nbsp;Lack of subtyping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.f.html" rel="next">&sect;1.3.1.(f)&nbsp;tsuper&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.f.html
new file mode 100644
index 0000000..9faf55f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.f.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(e)&nbsp;Dynamic binding of types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.g.html" rel="next">&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.f">
+            <h4 class="subsect">&sect;1.3.1.(f)&nbsp;<span class="title">tsuper</span></h4>
+            <div class="syntaxlink"><a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.4</a></div>
+            <p>Super calls along implicit inheritance use the new keyword
+               	    <strong>tsuper</strong>. While <code>super</code> is still available
+               	    along regular inheritance, a call <code>tsuper.m()</code>
+               	    selects the version of <code>m</code> of the corresponding role
+               	    acquired from the super-team.
+               				
+            </p>
+            <p>See <a href="s2.4.2.html"
+                  title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                  class="sect">&sect;2.4.2</a> for <code>tsuper</code>
+               	    in the context of role constructors.
+               				
+            </p>
+            <p><code>tsuper</code> can only be used to invoke a corresponding
+               	    version of the enclosing method or constructor, i.e., an expression
+               		<code>tsuper.m()</code> may only occur within the method <code>m</code>
+               		with both methods having the same signature
+               	    (see <a href="s2.3.2.b.html"
+                  title="&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting"
+                  class="sect">&sect;2.3.2.(b)</a> for an exception, where both methods have slightly different signatures).
+               				
+            </p>
+            <div class="codecomment">
+               					In <a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in team <code>T</code> 
+               					overrides the implicitly inherited method <code>m()</code> from <code>S</code>. <code><strong>tsuper</strong>.m()</code> calls the overridden method <code>m()</code>
+               					  from <code>S.R1</code> (line 13).
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(e)&nbsp;Dynamic binding of types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.g.html" rel="next">&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.g.html
new file mode 100644
index 0000000..47efcf1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.g.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(f)&nbsp;tsuper</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.h.html" rel="next">&sect;1.3.1.(h)&nbsp;Preserving visibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.g">
+            <h4 class="subsect">&sect;1.3.1.(g)&nbsp;<span class="title">Implicitly inheriting super-types</span></h4>
+            <p>If a role class has an explicit super class (using <code>extends</code>)
+               		this relation is inherited along implicit inheritance.
+               				
+            </p>
+            <div class="codecomment">
+               					In <a href="s1.html#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in <code>T</code> has <code>T.R0</code> 
+               					as its implicitly inherited super class, because the corresponding role in the super-team 
+               					<code><strong>extends R0</strong></code> (line 3).
+               				
+            </div>
+            <p>Overriding an implicitly inherited super class is governed by
+               		<a href="s1.3.2.b.html"
+                  title="&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause"
+                  class="sect">&sect;1.3.2.(b)</a>, below.<br />
+               	    The list of implemented interfaces is merged along implicit
+               		inheritance.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(f)&nbsp;tsuper</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.h.html" rel="next">&sect;1.3.1.(h)&nbsp;Preserving visibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.h.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.h.html
new file mode 100644
index 0000000..509526b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.h.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.i.html" rel="next">&sect;1.3.1.(i)&nbsp;Dynamic binding of constructors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.h">
+            <h4 class="subsect">&sect;1.3.1.(h)&nbsp;<span class="title">Preserving visibility</span></h4>
+            <p>A role class must provide at least as much access as the implicit super role,
+               		or a compile-time error occurs (this is in analogy to <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227965"
+                  class="ext">JLS &sect;8.4.6.3</a>).
+               		Access rights of methods overridden by implicit inheritance follow
+               		the same rules as for normal overriding.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.i.html" rel="next">&sect;1.3.1.(i)&nbsp;Dynamic binding of constructors&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.html
new file mode 100644
index 0000000..7b1a1f7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.html
@@ -0,0 +1,512 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.html" rel="next">&sect;1.3.2&nbsp;Regular role inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="sect depth3" id="s1.3.1">
+            <h3 class="sect">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</h3>
+            <p>A team acquires all roles from its super-team. This relation is
+               similar to inheritance of inner classes, but with a few decisive
+               differences as defined next. Two implementation options are mentioned <a href="s1.html#aux1.1" class="int">below</a>,
+               which can be used to realize the special semantics of role
+               acquisition (virtual classes and copy inheritance).
+               			
+            </p>
+            <h5 class="listing">Implicit role inheritance</h5>
+            <div class="listing example frame" id="l1.3.1-1">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> S {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>    <b>protected</b> <b>class</b> R0 {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>protected</b> <b>class</b> R1 <em><b>extends</b> R0</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>        <b>boolean</b> ok;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>        R2 m() {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>        <b>void</b> n(<em>R2</em> r) {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    <b>protected</b> <b>class</b> R2 {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing example frame" id="l1.3.1-2">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">10</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> T <em><b>extends</b> S</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">11</td>
+                     <td><pre>    @Override <b>protected</b> <em><b>class</b> R1</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">12</td>
+                     <td><pre>        <strong>R2</strong> m() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">13</td>
+                     <td><pre>            if(<em>ok</em>) { <b>return</b> <em>tsuper</em>.m(); }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">14</td>
+                     <td><pre>            <b>else</b> { <b>return</b> null; }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">15</td>
+                     <td><pre>        }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">16</td>
+                     <td><pre>        <b>void</b> doIt() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">17</td>
+                     <td><pre>            n(m());</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">18</td>
+                     <td><pre>        }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">19</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">20</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Role class acquisition</span></h4>
+               <p>A team <code>T</code> which extends a super-team <code>S</code>
+                  	    has one role class <code>T.R</code> corresponding to each role <code>S.R</code>
+                  	    of the super-team.
+                  	    The new type <code>T.R</code>&nbsp;<strong>overrides</strong>&nbsp;<code>R</code> for the
+                  	    context of <code>T</code> and its roles.
+                  	    Acquisition of role classes can either be direct (see (b) below), or
+                  	    it may involve overriding and implicit inheritance ((c) below). 
+                  				
+               </p>
+               <div class="codecomment">In the above example (<a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a>) the team <code>S</code> operates 
+                  					on types <code>S.R0</code>, <code>S.R1</code> and <code>S.R2</code>, 
+                  					while <code>T</code> operates on types <code>T.R0</code>, <code>T.R1</code> 
+                  					and <code>T.R2</code>.<br /><em>(Type references like "<code>S.R0</code>" are actually illegal in source code 
+                     					(<a href="s1.2.3.b.html" title="&sect;1.2.3.(b)&nbsp;Qualified role types"
+                        class="sect">&sect;1.2.3.(b)</a>). Here they are used for explanatory purposes only)</em></div>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Direct role acquisition</span></h4>
+               <p>Within a sub-team <code>T</code> each role <code>S.R</code> of its
+                  	    super-team <code>S</code> is available by the simple name <code>R</code>
+                  	    without further declaration.
+                  				
+               </p>
+               <div class="codecomment">The role <code>R2</code> in <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> can be used in the sub-team 
+                  					<code>T</code> (line 12), because this role type is defined in the super class of the enclosing team.
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Overriding and implicit inheritance</span></h4>
+               <p>If a team contains a role class definition by the same name as
+                  	    a role defined in its super-team,
+                  	    the new role class overrides the corresponding role from the super-team
+                  	    and <strong>implicitly inherits</strong> all of its features.
+                  	    Such relation is established only by name correspondence.
+                  				
+               </p>
+               <p>A role that overrides an inherited role should be marked with an <code>@Override</code> annotation.
+                  		A compiler should optionally flag a missing <code>@Override</code> annotation with a warning.  
+                  		Conversely, it is an error if a role is marked with an <code>@Override</code> annotation but does not actually
+                  		override an inherited role.
+                  				
+               </p>
+               <p>It is an error to override a role class with an interface or vice versa. A final role cannot be overridden.<br />
+                  	    Unlike regular inheritance, <strong>constructors</strong> are also inherited
+                  	    along implicit inheritance, and can be overridden just like normal methods.
+                  				
+               </p>
+               <div class="codecomment">
+                  					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a><code> R1</code> in <code>T</code> implicitly inherits all features of
+                  					  <code>R1</code> in <code>S</code>. This is, because its enclosing team
+                  					  <code>T</code> extends the team <code>S</code> (line 10) and the role
+                  					  definition uses the same name <code>R1</code> (line 11).
+                  					  Hence the attribute <code><strong>ok</strong></code> is available in the method
+                  					  <code>m()</code> in <code>T.R1</code> (line 13). <code>T.R1</code> also overrides <code>S.R1</code>
+                  					  which is marked by the <code>@Override</code> annotation in line 11. 
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Lack of subtyping</span></h4>
+               <p>Direct acquisition of roles from a super-team and implicit inheritance
+                  	    do not establish a <strong>subtype</strong> relation.
+                  	    A role of a given team is never conform (i.e., substitutable)
+                  	    to any role of any <em>other</em> team.
+                  	    <code>S.R</code> and <code>T.R</code> are always incommensurable.<br /><span class="underline">Note,</span> that this rule is a direct consequence of <a href="s1.2.2.e.html" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Dynamic binding of types</span></h4>
+               <p>Overriding an acquired role by a new role class has the following
+                  	    implication: If an expression or declaration, which is evaluated on behalf of
+                  	    an instance of team <code>T</code> or one of its contained roles,
+                  	    refers to a role <code>R</code>, <code>R</code> will always
+                  	    resolve to <code>T.R</code> even if <code>R</code> was introduced in
+                  	    a super-team of <code>T</code> and even if the specific line of code
+                  	    was inherited from a super-team or one of its roles.
+                  	    Only the dynamic type of the enclosing team-instance is used to determine
+                  	    the correct role class (see below for an example).
+                  				
+               </p>
+               <p>A special case of dynamically binding role types relates to so-called class literals 
+                  		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                     class="ext">JLS &sect;15.8.2</a>). 
+                  		Role class literals are covered in <a href="s6.1.c.html" title="&sect;6.1.(c)&nbsp;Class literals for roles"
+                     class="sect">&sect;6.1.(c)</a>.
+                  				
+               </p>
+               <p>The above is strictly needed only for cases involving implicit inheritance.
+                  	    It may, however, help intuition, to also consider the directly acquired
+                  	    role <code>T.R</code> in (b) to override the given role <code>S.R</code>.
+                  				
+               </p>
+               <div class="codecomment">
+                  					In line 17 of <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the implicitly inherited method <code>n</code> is called
+                  				  with the result of an invocation of <code>m</code>. Although
+                  				  <code>n</code> was defined in <code>S</code> (thus with argument type
+                  				  <code>S.R2, see line 6</code>) in the context of <code>T</code> it
+                  				  expects an argument of <code>T.R2</code>. This is correctly provided by
+                  				  the invocation of <code>m</code> in the context of <code>T</code>.
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">tsuper</span></h4>
+               <div class="syntaxlink"><a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.4</a></div>
+               <p>Super calls along implicit inheritance use the new keyword
+                  	    <strong>tsuper</strong>. While <code>super</code> is still available
+                  	    along regular inheritance, a call <code>tsuper.m()</code>
+                  	    selects the version of <code>m</code> of the corresponding role
+                  	    acquired from the super-team.
+                  				
+               </p>
+               <p>See <a href="s2.4.2.html"
+                     title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                     class="sect">&sect;2.4.2</a> for <code>tsuper</code>
+                  	    in the context of role constructors.
+                  				
+               </p>
+               <p><code>tsuper</code> can only be used to invoke a corresponding
+                  	    version of the enclosing method or constructor, i.e., an expression
+                  		<code>tsuper.m()</code> may only occur within the method <code>m</code>
+                  		with both methods having the same signature
+                  	    (see <a href="s2.3.2.b.html"
+                     title="&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting"
+                     class="sect">&sect;2.3.2.(b)</a> for an exception, where both methods have slightly different signatures).
+                  				
+               </p>
+               <div class="codecomment">
+                  					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in team <code>T</code> 
+                  					overrides the implicitly inherited method <code>m()</code> from <code>S</code>. <code><strong>tsuper</strong>.m()</code> calls the overridden method <code>m()</code>
+                  					  from <code>S.R1</code> (line 13).
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Implicitly inheriting super-types</span></h4>
+               <p>If a role class has an explicit super class (using <code>extends</code>)
+                  		this relation is inherited along implicit inheritance.
+                  				
+               </p>
+               <div class="codecomment">
+                  					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in <code>T</code> has <code>T.R0</code> 
+                  					as its implicitly inherited super class, because the corresponding role in the super-team 
+                  					<code><strong>extends R0</strong></code> (line 3).
+                  				
+               </div>
+               <p>Overriding an implicitly inherited super class is governed by
+                  		<a href="s1.3.2.b.html"
+                     title="&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause"
+                     class="sect">&sect;1.3.2.(b)</a>, below.<br />
+                  	    The list of implemented interfaces is merged along implicit
+                  		inheritance.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.h">
+               <h4 class="subsect">(h)&nbsp;<span class="title">Preserving visibility</span></h4>
+               <p>A role class must provide at least as much access as the implicit super role,
+                  		or a compile-time error occurs (this is in analogy to <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227965"
+                     class="ext">JLS &sect;8.4.6.3</a>).
+                  		Access rights of methods overridden by implicit inheritance follow
+                  		the same rules as for normal overriding.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.i">
+               <h4 class="subsect">(i)&nbsp;<span class="title">Dynamic binding of constructors</span></h4>
+               <p>When creating a role instance using <code>new</code> not only the
+                  			type to instantiate is bound dynamically (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                     class="sect">&sect;1.3.1.(e)</a>), but also the constructor to
+                  			invoke is dynamically bound in accordance to the concrete
+                  			type.<br />
+                  			Within role constructors all <code>this(..)</code> and
+                  			<code>super(..)</code> calls are bound statically with respect to explicit inheritance
+                  			and dynamically with respect to implicit inheritance. This means the target role name is 
+                  			determined statically, but using that name the suitable role type is determined
+                  			using dynamic binding.
+                  			<br />
+                  			See also <a href="s2.5.a.html"
+                     title="&sect;2.5.(a)&nbsp;Using abstract classes for creation"
+                     class="sect">&sect;2.5.(a)</a> on using constructors of abstract role classes.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.j">
+               <h4 class="subsect">(j)&nbsp;<span class="title">Overriding and compatibility</span></h4>
+               <p>The rules of <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#228745"
+                     class="ext">JLS &sect;8.4.6</a> 
+                  			also apply to methods <em>and constructors</em> inherited via implicit inheritance.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.1.k">
+               <h4 class="subsect">(k)&nbsp;<span class="title">Covariant return types</span></h4>
+               <p>Given a team <code>T1</code> with two roles <code>R1</code> and <code>R2</code> where <code>R2</code> explicitly inherits from <code>R1</code>, both roles defining
+                  					a method <code>m</code> returning some type <code>A</code>.
+                  				   Given also a sub-team of <code>T1</code>, <code>T2</code>, where <code>T2.R1</code> overrides <code>m</code> with a covariant return type <code>B</code>
+                  				   	(sub-type of <code>A</code>):
+                  				
+               </p>
+               <div class="listing plain"><pre>    <b>public</b> <b>team</b> <b>class</b> T1 {
+       <b>protected</b> <b>abstract</b> <b>class</b> R1 {
+          <b>abstract</b> A m();
+       }
+       <b>protected</b> <b>class</b> R2 <b>extends</b> R1 {
+          A m() { <b>return</b> <b>new</b> A(); }
+       }
+    }
+    <b>public</b> <b>team</b> <b>class</b> T2 <b>extends</b> T1 {
+       <b>protected</b> <b>class</b> R1 {
+          @Override B m() { <b>return</b> <b>new</b> B(); } <span class="error">// this declaration renders <b>class</b> T2.R2 illegal</span>
+       }
+    }</pre></div>
+               <p>
+                  				   In this situation role <code>T2.R2</code> will be illegal unless also overriding <code>m</code> with a return type that is at least <code>B</code>.
+                  				   Note, that the actual error occurs at the implicitly inherited method <code>T2.R2.m</code> which is not visible in the source code,
+                  				   even <code>T2.R2</code> need not be mentioned explicitly in the source code.
+                  				   A compiler should flag this as an imcompatibility at the team level, because a team must specialize inherited roles
+                  in a consistent way.
+                  				
+               </p>
+            </div>
+            <h5 class="listing">Example code (Teams and Roles):</h5>
+            <div class="listing example frame" id="l1.3.1-3">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    String name;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <b>public</b> MyRole (String n) { name = n; }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("id="+name); }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  <b>protected</b> MyRole getRole() { <b>return</b> <b>new</b> MyRole("Joe"); }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing example frame" id="l1.3.1-4">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">10</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">11</td>
+                     <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">12</td>
+                     <td><pre>    <b>int</b> age;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">13</td>
+                     <td><pre>    <b>public</b> <b>void</b> setAge(<b>int</b> a) { age = a; }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">14</td>
+                     <td><pre>    <b>public</b> <b>void</b> print() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">15</td>
+                     <td><pre>      tsuper.print();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">16</td>
+                     <td><pre>      System.out.println("age="+age);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">17</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">18</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">19</td>
+                     <td><pre>  <b>public</b> <b>void</b> doit() {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">20</td>
+                     <td><pre>    MyRole r = getRole();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">21</td>
+                     <td><pre>    r.setAge(27);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">22</td>
+                     <td><pre>    r.print();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">23</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">24</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">25</td>
+                     <td><pre>...</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">26</td>
+                     <td><pre>MySubTeam myTeam = <b>new</b> MySubTeam();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">27</td>
+                     <td><pre>myTeam.doit();</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <h5 class="listing">Program output</h5>
+            <div class="listing example frame"><pre>id=Joe
+age=27</pre></div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>According to <a href="s1.3.html"
+                        title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3</a>, <code>MyTeamA</code> implements
+                     	<code>ITeam</code> (line 1).
+                  </li>
+                  <li>An implicit role inheritance is created for
+                     	<code>MySubTeam.MyRole</code> (<a href="#s1.3.1.c"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>; line&nbsp;11).<br />
+                     	If we visualize this special inheritance using a fictitious keyword
+                     	<code>overrides</code> the compiler would see a declaration:
+                     	
+                     <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <em>overrides MyTeamA.MyRole</em> { ... }</pre></div>
+                  </li>
+                  <li>Invoking <code>getRole()</code> on <code>myTeam</code> (line&nbsp;27, 20)
+	creates an instance of <code>MySubTeam.MyRole</code> because the
+                     	acquired role <code>MyTeamA.MyRole</code> is overridden by
+                     	<code>MySubTeam.MyRole</code>
+                     	following the rules of implicit inheritance (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                        class="sect">&sect;1.3.1.(e)</a>).
+                     					 
+                  </li>
+                  <li>Overriding of role methods and access to inherited features works as usual.
+                     					
+                  </li>
+                  <li>As an example for <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> see the call <code>tsuper.print()</code>
+	(line&nbsp;15), which selects the implementation of <code>MyTeamA.MyRole.print</code>.
+                     						
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.html" rel="next">&sect;1.3.2&nbsp;Regular role inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.i.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.i.html
new file mode 100644
index 0000000..589d05d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.i.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.h.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(h)&nbsp;Preserving visibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.j.html" rel="next">&sect;1.3.1.(j)&nbsp;Overriding and compatibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.i">
+            <h4 class="subsect">&sect;1.3.1.(i)&nbsp;<span class="title">Dynamic binding of constructors</span></h4>
+            <p>When creating a role instance using <code>new</code> not only the
+               			type to instantiate is bound dynamically (cf. <a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                  class="sect">&sect;1.3.1.(e)</a>), but also the constructor to
+               			invoke is dynamically bound in accordance to the concrete
+               			type.<br />
+               			Within role constructors all <code>this(..)</code> and
+               			<code>super(..)</code> calls are bound statically with respect to explicit inheritance
+               			and dynamically with respect to implicit inheritance. This means the target role name is 
+               			determined statically, but using that name the suitable role type is determined
+               			using dynamic binding.
+               			<br />
+               			See also <a href="s2.5.a.html"
+                  title="&sect;2.5.(a)&nbsp;Using abstract classes for creation"
+                  class="sect">&sect;2.5.(a)</a> on using constructors of abstract role classes.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.h.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(h)&nbsp;Preserving visibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.j.html" rel="next">&sect;1.3.1.(j)&nbsp;Overriding and compatibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.j.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.j.html
new file mode 100644
index 0000000..7368d0c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.j.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.i.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(i)&nbsp;Dynamic binding of constructors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.k.html" rel="next">&sect;1.3.1.(k)&nbsp;Covariant return types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.j">
+            <h4 class="subsect">&sect;1.3.1.(j)&nbsp;<span class="title">Overriding and compatibility</span></h4>
+            <p>The rules of <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#228745"
+                  class="ext">JLS &sect;8.4.6</a> 
+               			also apply to methods <em>and constructors</em> inherited via implicit inheritance.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.i.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(i)&nbsp;Dynamic binding of constructors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.1.k.html" rel="next">&sect;1.3.1.(k)&nbsp;Covariant return types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.k.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.k.html
new file mode 100644
index 0000000..0aad400
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.1.k.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.j.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(j)&nbsp;Overriding and compatibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="subsect depth4" id="s1.3.1.k">
+            <h4 class="subsect">&sect;1.3.1.(k)&nbsp;<span class="title">Covariant return types</span></h4>
+            <p>Given a team <code>T1</code> with two roles <code>R1</code> and <code>R2</code> where <code>R2</code> explicitly inherits from <code>R1</code>, both roles defining
+               					a method <code>m</code> returning some type <code>A</code>.
+               				   Given also a sub-team of <code>T1</code>, <code>T2</code>, where <code>T2.R1</code> overrides <code>m</code> with a covariant return type <code>B</code>
+               				   	(sub-type of <code>A</code>):
+               				
+            </p>
+            <div class="listing plain"><pre>    <b>public</b> <b>team</b> <b>class</b> T1 {
+       <b>protected</b> <b>abstract</b> <b>class</b> R1 {
+          <b>abstract</b> A m();
+       }
+       <b>protected</b> <b>class</b> R2 <b>extends</b> R1 {
+          A m() { <b>return</b> <b>new</b> A(); }
+       }
+    }
+    <b>public</b> <b>team</b> <b>class</b> T2 <b>extends</b> T1 {
+       <b>protected</b> <b>class</b> R1 {
+          @Override B m() { <b>return</b> <b>new</b> B(); } <span class="error">// this declaration renders <b>class</b> T2.R2 illegal</span>
+       }
+    }</pre></div>
+            <p>
+               				   In this situation role <code>T2.R2</code> will be illegal unless also overriding <code>m</code> with a return type that is at least <code>B</code>.
+               				   Note, that the actual error occurs at the implicitly inherited method <code>T2.R2.m</code> which is not visible in the source code,
+               				   even <code>T2.R2</code> need not be mentioned explicitly in the source code.
+               				   A compiler should flag this as an imcompatibility at the team level, because a team must specialize inherited roles
+               in a consistent way.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.j.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1.(j)&nbsp;Overriding and compatibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.1.html" rel="section">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.a.html
new file mode 100644
index 0000000..c0f6a2e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.a.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.b.html" rel="next">&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="subsect depth4" id="s1.3.2.a">
+            <h4 class="subsect">&sect;1.3.2.(a)&nbsp;<span class="title">Super-class restrictions</span></h4>
+            <p>If the super-class of a role is again a role it must be a direct role of
+               			an enclosing team
+               			This rule is simply enforced by disallowing type anchors in the
+               			<code>extends</code> clause
+               			(see <a href="s1.2.2.g.html" title="&sect;1.2.2.(g)&nbsp;Legal contexts"
+                  class="sect">&sect;1.2.2.(g)</a>).
+               			As an effect, the super-class may never be more deeply nested than the sub-class.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.b.html" rel="next">&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.b.html
new file mode 100644
index 0000000..9b1e70f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.b.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(a)&nbsp;Super-class restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.c.html" rel="next">&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' &nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="subsect depth4" id="s1.3.2.b">
+            <h4 class="subsect">&sect;1.3.2.(b)&nbsp;<span class="title">Inheriting and overriding the extends clause</span></h4>
+            <p>If a role overrides another role by implicit inheritance, it may
+               			change the inherited <code>extends</code> clause
+               			(see <a href="s1.3.1.g.html"
+                  title="&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types"
+                  class="sect">&sect;1.3.1.(g)</a> above) only if the new super-class
+               			is a sub-class of the class in the overridden extends clause.
+               			I.e., an implicit sub-role may <em>specialize</em> the extends clause of its
+               			implicit super-role.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(a)&nbsp;Super-class restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.c.html" rel="next">&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' &nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.c.html
new file mode 100644
index 0000000..72ccab1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.c.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.d.html" rel="next">&sect;1.3.2.(d)&nbsp;Adding implemented interfaces&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="subsect depth4" id="s1.3.2.c">
+            <h4 class="subsect">&sect;1.3.2.(c)&nbsp;<span class="title">Constructors and overridden 'extends' </span></h4>
+            <p>Each constructor of a role class that overrides the extends clause of its
+               		  implicit super-role must invoke a constructor of this newly introduced
+               		  explicit super-class. Thus it may not use a <code>tsuper</code> constructor
+               		  (see <a href="s2.4.2.html"
+                  title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                  class="sect">&sect;2.4.2</a>).
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.d.html" rel="next">&sect;1.3.2.(d)&nbsp;Adding implemented interfaces&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.d.html
new file mode 100644
index 0000000..1cbd520
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.d.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' </a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.e.html" rel="next">&sect;1.3.2.(e)&nbsp;Visibility of inherited methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="subsect depth4" id="s1.3.2.d">
+            <h4 class="subsect">&sect;1.3.2.(d)&nbsp;<span class="title">Adding implemented interfaces</span></h4>
+            <p><code>implements</code> declarations are additive, i.e., an implicit
+               			sub-role may add more interfaces but has to implement all interfaces of
+               			its implicit super-role, too.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' </a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.3.2.e.html" rel="next">&sect;1.3.2.(e)&nbsp;Visibility of inherited methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.e.html
new file mode 100644
index 0000000..b734fe2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.e.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(d)&nbsp;Adding implemented interfaces</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+         <div class="subsect depth4" id="s1.3.2.e">
+            <h4 class="subsect">&sect;1.3.2.(e)&nbsp;<span class="title">Visibility of inherited methods</span></h4>
+            <p>
+               					When a role inherits non-public methods from a regular class (as its super class),
+               					these methods are considered as private for the role, i.e., they can only be
+               					accessed in an unqualified method call <code>m()</code> using the implicit receiver <code>this</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.2.(d)&nbsp;Adding implemented interfaces</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.2.html" rel="section">&sect;1.3.2&nbsp;Regular role inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.html
new file mode 100644
index 0000000..1a5b3ca
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.2.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+         <div class="sect depth3" id="s1.3.2">
+            <h3 class="sect">&sect;1.3.2&nbsp;Regular role inheritance</h3>
+            <p>In addition to implicit inheritance, roles may also inherit using
+               	the standard Java keyword <code>extends</code>. These restrictions apply:
+               			
+            </p>
+            <div class="subsect depth4" id="s1.3.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Super-class restrictions</span></h4>
+               <p>If the super-class of a role is again a role it must be a direct role of
+                  			an enclosing team
+                  			This rule is simply enforced by disallowing type anchors in the
+                  			<code>extends</code> clause
+                  			(see <a href="s1.2.2.g.html" title="&sect;1.2.2.(g)&nbsp;Legal contexts"
+                     class="sect">&sect;1.2.2.(g)</a>).
+                  			As an effect, the super-class may never be more deeply nested than the sub-class.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Inheriting and overriding the extends clause</span></h4>
+               <p>If a role overrides another role by implicit inheritance, it may
+                  			change the inherited <code>extends</code> clause
+                  			(see <a href="s1.3.1.g.html"
+                     title="&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types"
+                     class="sect">&sect;1.3.1.(g)</a> above) only if the new super-class
+                  			is a sub-class of the class in the overridden extends clause.
+                  			I.e., an implicit sub-role may <em>specialize</em> the extends clause of its
+                  			implicit super-role.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Constructors and overridden 'extends' </span></h4>
+               <p>Each constructor of a role class that overrides the extends clause of its
+                  		  implicit super-role must invoke a constructor of this newly introduced
+                  		  explicit super-class. Thus it may not use a <code>tsuper</code> constructor
+                  		  (see <a href="s2.4.2.html"
+                     title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                     class="sect">&sect;2.4.2</a>).
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Adding implemented interfaces</span></h4>
+               <p><code>implements</code> declarations are additive, i.e., an implicit
+                  			sub-role may add more interfaces but has to implement all interfaces of
+                  			its implicit super-role, too.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s1.3.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Visibility of inherited methods</span></h4>
+               <p>
+                  					When a role inherits non-public methods from a regular class (as its super class),
+                  					these methods are considered as private for the role, i.e., they can only be
+                  					accessed in an unqualified method call <code>m()</code> using the implicit receiver <code>this</code>.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.3.html" rel="section">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.html
new file mode 100644
index 0000000..da29b32b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.3.html
@@ -0,0 +1,587 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.2.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2&nbsp;Role classes and objects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.4.html" rel="next">&sect;1.4&nbsp;Name clashes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="sect depth2" id="s1.3">
+            <h2 class="sect">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</h2>
+            <p> Every team class implicitly implements the predefined interface <code>org.objectteams.ITeam</code>.
+               	If a team class has no explicit <code>extends</code> clause it implicitly extends <code>org.objectteams.Team</code>, 
+               	thus providing implementations for the methods in <code>org.objectteams.ITeam</code>.
+               	If a team class extends a non-team class, the compiler implicitly adds implementations for all methods declared 
+               	in <code>org.objectteams.ITeam</code> to the team class.
+               	Any subclass of a team (including <code>org.objectteams.Team</code>) must again be a team.
+               	Interface implementation is not affected by this rule.
+               		
+            </p>
+            <p>Infrastructure provided via interface <code>org.objectteams.ITeam</code> is presented in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a>.
+               		
+            </p>
+            <div class="sect depth3" id="s1.3.1">
+               <h3 class="sect">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.3</a></span></h3>
+               <p>A team acquires all roles from its super-team. This relation is
+                  similar to inheritance of inner classes, but with a few decisive
+                  differences as defined next. Two implementation options are mentioned <a href="s1.html#aux1.1" class="int">below</a>,
+                  which can be used to realize the special semantics of role
+                  acquisition (virtual classes and copy inheritance).
+                  			
+               </p>
+               <h5 class="listing">Implicit role inheritance</h5>
+               <div class="listing example frame" id="l1.3.1-1">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> S {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R0 {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R1 <em><b>extends</b> R0</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>        <b>boolean</b> ok;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>        R2 m() {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>        <b>void</b> n(<em>R2</em> r) {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R2 {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame" id="l1.3.1-2">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">10</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> T <em><b>extends</b> S</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">11</td>
+                        <td><pre>    @Override <b>protected</b> <em><b>class</b> R1</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">12</td>
+                        <td><pre>        <strong>R2</strong> m() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">13</td>
+                        <td><pre>            if(<em>ok</em>) { <b>return</b> <em>tsuper</em>.m(); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">14</td>
+                        <td><pre>            <b>else</b> { <b>return</b> null; }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">15</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">16</td>
+                        <td><pre>        <b>void</b> doIt() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">17</td>
+                        <td><pre>            n(m());</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">18</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">19</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">20</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Role class acquisition</span></h4>
+                  <p>A team <code>T</code> which extends a super-team <code>S</code>
+                     	    has one role class <code>T.R</code> corresponding to each role <code>S.R</code>
+                     	    of the super-team.
+                     	    The new type <code>T.R</code>&nbsp;<strong>overrides</strong>&nbsp;<code>R</code> for the
+                     	    context of <code>T</code> and its roles.
+                     	    Acquisition of role classes can either be direct (see (b) below), or
+                     	    it may involve overriding and implicit inheritance ((c) below). 
+                     				
+                  </p>
+                  <div class="codecomment">In the above example (<a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a>) the team <code>S</code> operates 
+                     					on types <code>S.R0</code>, <code>S.R1</code> and <code>S.R2</code>, 
+                     					while <code>T</code> operates on types <code>T.R0</code>, <code>T.R1</code> 
+                     					and <code>T.R2</code>.<br /><em>(Type references like "<code>S.R0</code>" are actually illegal in source code 
+                        					(<a href="s1.2.3.b.html" title="&sect;1.2.3.(b)&nbsp;Qualified role types"
+                           class="sect">&sect;1.2.3.(b)</a>). Here they are used for explanatory purposes only)</em></div>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Direct role acquisition</span></h4>
+                  <p>Within a sub-team <code>T</code> each role <code>S.R</code> of its
+                     	    super-team <code>S</code> is available by the simple name <code>R</code>
+                     	    without further declaration.
+                     				
+                  </p>
+                  <div class="codecomment">The role <code>R2</code> in <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> can be used in the sub-team 
+                     					<code>T</code> (line 12), because this role type is defined in the super class of the enclosing team.
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Overriding and implicit inheritance</span></h4>
+                  <p>If a team contains a role class definition by the same name as
+                     	    a role defined in its super-team,
+                     	    the new role class overrides the corresponding role from the super-team
+                     	    and <strong>implicitly inherits</strong> all of its features.
+                     	    Such relation is established only by name correspondence.
+                     				
+                  </p>
+                  <p>A role that overrides an inherited role should be marked with an <code>@Override</code> annotation.
+                     		A compiler should optionally flag a missing <code>@Override</code> annotation with a warning.  
+                     		Conversely, it is an error if a role is marked with an <code>@Override</code> annotation but does not actually
+                     		override an inherited role.
+                     				
+                  </p>
+                  <p>It is an error to override a role class with an interface or vice versa. A final role cannot be overridden.<br />
+                     	    Unlike regular inheritance, <strong>constructors</strong> are also inherited
+                     	    along implicit inheritance, and can be overridden just like normal methods.
+                     				
+                  </p>
+                  <div class="codecomment">
+                     					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a><code> R1</code> in <code>T</code> implicitly inherits all features of
+                     					  <code>R1</code> in <code>S</code>. This is, because its enclosing team
+                     					  <code>T</code> extends the team <code>S</code> (line 10) and the role
+                     					  definition uses the same name <code>R1</code> (line 11).
+                     					  Hence the attribute <code><strong>ok</strong></code> is available in the method
+                     					  <code>m()</code> in <code>T.R1</code> (line 13). <code>T.R1</code> also overrides <code>S.R1</code>
+                     					  which is marked by the <code>@Override</code> annotation in line 11. 
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Lack of subtyping</span></h4>
+                  <p>Direct acquisition of roles from a super-team and implicit inheritance
+                     	    do not establish a <strong>subtype</strong> relation.
+                     	    A role of a given team is never conform (i.e., substitutable)
+                     	    to any role of any <em>other</em> team.
+                     	    <code>S.R</code> and <code>T.R</code> are always incommensurable.<br /><span class="underline">Note,</span> that this rule is a direct consequence of <a href="s1.2.2.e.html" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Dynamic binding of types</span></h4>
+                  <p>Overriding an acquired role by a new role class has the following
+                     	    implication: If an expression or declaration, which is evaluated on behalf of
+                     	    an instance of team <code>T</code> or one of its contained roles,
+                     	    refers to a role <code>R</code>, <code>R</code> will always
+                     	    resolve to <code>T.R</code> even if <code>R</code> was introduced in
+                     	    a super-team of <code>T</code> and even if the specific line of code
+                     	    was inherited from a super-team or one of its roles.
+                     	    Only the dynamic type of the enclosing team-instance is used to determine
+                     	    the correct role class (see below for an example).
+                     				
+                  </p>
+                  <p>A special case of dynamically binding role types relates to so-called class literals 
+                     		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                        class="ext">JLS &sect;15.8.2</a>). 
+                     		Role class literals are covered in <a href="s6.1.c.html" title="&sect;6.1.(c)&nbsp;Class literals for roles"
+                        class="sect">&sect;6.1.(c)</a>.
+                     				
+                  </p>
+                  <p>The above is strictly needed only for cases involving implicit inheritance.
+                     	    It may, however, help intuition, to also consider the directly acquired
+                     	    role <code>T.R</code> in (b) to override the given role <code>S.R</code>.
+                     				
+                  </p>
+                  <div class="codecomment">
+                     					In line 17 of <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the implicitly inherited method <code>n</code> is called
+                     				  with the result of an invocation of <code>m</code>. Although
+                     				  <code>n</code> was defined in <code>S</code> (thus with argument type
+                     				  <code>S.R2, see line 6</code>) in the context of <code>T</code> it
+                     				  expects an argument of <code>T.R2</code>. This is correctly provided by
+                     				  the invocation of <code>m</code> in the context of <code>T</code>.
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">tsuper</span></h4>
+                  <div class="syntaxlink"><a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.4</a></div>
+                  <p>Super calls along implicit inheritance use the new keyword
+                     	    <strong>tsuper</strong>. While <code>super</code> is still available
+                     	    along regular inheritance, a call <code>tsuper.m()</code>
+                     	    selects the version of <code>m</code> of the corresponding role
+                     	    acquired from the super-team.
+                     				
+                  </p>
+                  <p>See <a href="s2.4.2.html"
+                        title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                        class="sect">&sect;2.4.2</a> for <code>tsuper</code>
+                     	    in the context of role constructors.
+                     				
+                  </p>
+                  <p><code>tsuper</code> can only be used to invoke a corresponding
+                     	    version of the enclosing method or constructor, i.e., an expression
+                     		<code>tsuper.m()</code> may only occur within the method <code>m</code>
+                     		with both methods having the same signature
+                     	    (see <a href="s2.3.2.b.html"
+                        title="&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting"
+                        class="sect">&sect;2.3.2.(b)</a> for an exception, where both methods have slightly different signatures).
+                     				
+                  </p>
+                  <div class="codecomment">
+                     					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in team <code>T</code> 
+                     					overrides the implicitly inherited method <code>m()</code> from <code>S</code>. <code><strong>tsuper</strong>.m()</code> calls the overridden method <code>m()</code>
+                     					  from <code>S.R1</code> (line 13).
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Implicitly inheriting super-types</span></h4>
+                  <p>If a role class has an explicit super class (using <code>extends</code>)
+                     		this relation is inherited along implicit inheritance.
+                     				
+                  </p>
+                  <div class="codecomment">
+                     					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in <code>T</code> has <code>T.R0</code> 
+                     					as its implicitly inherited super class, because the corresponding role in the super-team 
+                     					<code><strong>extends R0</strong></code> (line 3).
+                     				
+                  </div>
+                  <p>Overriding an implicitly inherited super class is governed by
+                     		<a href="#s1.3.2.b"
+                        title="&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause"
+                        class="sect">&sect;1.3.2.(b)</a>, below.<br />
+                     	    The list of implemented interfaces is merged along implicit
+                     		inheritance.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Preserving visibility</span></h4>
+                  <p>A role class must provide at least as much access as the implicit super role,
+                     		or a compile-time error occurs (this is in analogy to <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227965"
+                        class="ext">JLS &sect;8.4.6.3</a>).
+                     		Access rights of methods overridden by implicit inheritance follow
+                     		the same rules as for normal overriding.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.i">
+                  <h4 class="subsect">(i)&nbsp;<span class="title">Dynamic binding of constructors</span></h4>
+                  <p>When creating a role instance using <code>new</code> not only the
+                     			type to instantiate is bound dynamically (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                        class="sect">&sect;1.3.1.(e)</a>), but also the constructor to
+                     			invoke is dynamically bound in accordance to the concrete
+                     			type.<br />
+                     			Within role constructors all <code>this(..)</code> and
+                     			<code>super(..)</code> calls are bound statically with respect to explicit inheritance
+                     			and dynamically with respect to implicit inheritance. This means the target role name is 
+                     			determined statically, but using that name the suitable role type is determined
+                     			using dynamic binding.
+                     			<br />
+                     			See also <a href="s2.5.a.html"
+                        title="&sect;2.5.(a)&nbsp;Using abstract classes for creation"
+                        class="sect">&sect;2.5.(a)</a> on using constructors of abstract role classes.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.j">
+                  <h4 class="subsect">(j)&nbsp;<span class="title">Overriding and compatibility</span></h4>
+                  <p>The rules of <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#228745"
+                        class="ext">JLS &sect;8.4.6</a> 
+                     			also apply to methods <em>and constructors</em> inherited via implicit inheritance.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.1.k">
+                  <h4 class="subsect">(k)&nbsp;<span class="title">Covariant return types</span></h4>
+                  <p>Given a team <code>T1</code> with two roles <code>R1</code> and <code>R2</code> where <code>R2</code> explicitly inherits from <code>R1</code>, both roles defining
+                     					a method <code>m</code> returning some type <code>A</code>.
+                     				   Given also a sub-team of <code>T1</code>, <code>T2</code>, where <code>T2.R1</code> overrides <code>m</code> with a covariant return type <code>B</code>
+                     				   	(sub-type of <code>A</code>):
+                     				
+                  </p>
+                  <div class="listing plain"><pre>    <b>public</b> <b>team</b> <b>class</b> T1 {
+       <b>protected</b> <b>abstract</b> <b>class</b> R1 {
+          <b>abstract</b> A m();
+       }
+       <b>protected</b> <b>class</b> R2 <b>extends</b> R1 {
+          A m() { <b>return</b> <b>new</b> A(); }
+       }
+    }
+    <b>public</b> <b>team</b> <b>class</b> T2 <b>extends</b> T1 {
+       <b>protected</b> <b>class</b> R1 {
+          @Override B m() { <b>return</b> <b>new</b> B(); } <span class="error">// this declaration renders <b>class</b> T2.R2 illegal</span>
+       }
+    }</pre></div>
+                  <p>
+                     				   In this situation role <code>T2.R2</code> will be illegal unless also overriding <code>m</code> with a return type that is at least <code>B</code>.
+                     				   Note, that the actual error occurs at the implicitly inherited method <code>T2.R2.m</code> which is not visible in the source code,
+                     				   even <code>T2.R2</code> need not be mentioned explicitly in the source code.
+                     				   A compiler should flag this as an imcompatibility at the team level, because a team must specialize inherited roles
+                     in a consistent way.
+                     				
+                  </p>
+               </div>
+               <h5 class="listing">Example code (Teams and Roles):</h5>
+               <div class="listing example frame" id="l1.3.1-3">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    String name;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>public</b> MyRole (String n) { name = n; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("id="+name); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>protected</b> MyRole getRole() { <b>return</b> <b>new</b> MyRole("Joe"); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame" id="l1.3.1-4">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">10</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">11</td>
+                        <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">12</td>
+                        <td><pre>    <b>int</b> age;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">13</td>
+                        <td><pre>    <b>public</b> <b>void</b> setAge(<b>int</b> a) { age = a; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">14</td>
+                        <td><pre>    <b>public</b> <b>void</b> print() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">15</td>
+                        <td><pre>      tsuper.print();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">16</td>
+                        <td><pre>      System.out.println("age="+age);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">17</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">18</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">19</td>
+                        <td><pre>  <b>public</b> <b>void</b> doit() {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">20</td>
+                        <td><pre>    MyRole r = getRole();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">21</td>
+                        <td><pre>    r.setAge(27);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">22</td>
+                        <td><pre>    r.print();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">23</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">24</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">25</td>
+                        <td><pre>...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">26</td>
+                        <td><pre>MySubTeam myTeam = <b>new</b> MySubTeam();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">27</td>
+                        <td><pre>myTeam.doit();</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <h5 class="listing">Program output</h5>
+               <div class="listing example frame"><pre>id=Joe
+age=27</pre></div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>According to <a href="s1.3.html"
+                           title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                           class="sect">&sect;1.3</a>, <code>MyTeamA</code> implements
+                        	<code>ITeam</code> (line 1).
+                     </li>
+                     <li>An implicit role inheritance is created for
+                        	<code>MySubTeam.MyRole</code> (<a href="#s1.3.1.c"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">&sect;1.3.1.(c)</a>; line&nbsp;11).<br />
+                        	If we visualize this special inheritance using a fictitious keyword
+                        	<code>overrides</code> the compiler would see a declaration:
+                        	
+                        <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <em>overrides MyTeamA.MyRole</em> { ... }</pre></div>
+                     </li>
+                     <li>Invoking <code>getRole()</code> on <code>myTeam</code> (line&nbsp;27, 20)
+	creates an instance of <code>MySubTeam.MyRole</code> because the
+                        	acquired role <code>MyTeamA.MyRole</code> is overridden by
+                        	<code>MySubTeam.MyRole</code>
+                        	following the rules of implicit inheritance (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                           class="sect">&sect;1.3.1.(e)</a>).
+                        					 
+                     </li>
+                     <li>Overriding of role methods and access to inherited features works as usual.
+                        					
+                     </li>
+                     <li>As an example for <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> see the call <code>tsuper.print()</code>
+	(line&nbsp;15), which selects the implementation of <code>MyTeamA.MyRole.print</code>.
+                        						
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth3" id="s1.3.2">
+               <h3 class="sect">&sect;1.3.2&nbsp;Regular role inheritance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1.3</a></span></h3>
+               <p>In addition to implicit inheritance, roles may also inherit using
+                  	the standard Java keyword <code>extends</code>. These restrictions apply:
+                  			
+               </p>
+               <div class="subsect depth4" id="s1.3.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Super-class restrictions</span></h4>
+                  <p>If the super-class of a role is again a role it must be a direct role of
+                     			an enclosing team
+                     			This rule is simply enforced by disallowing type anchors in the
+                     			<code>extends</code> clause
+                     			(see <a href="s1.2.2.g.html" title="&sect;1.2.2.(g)&nbsp;Legal contexts"
+                        class="sect">&sect;1.2.2.(g)</a>).
+                     			As an effect, the super-class may never be more deeply nested than the sub-class.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Inheriting and overriding the extends clause</span></h4>
+                  <p>If a role overrides another role by implicit inheritance, it may
+                     			change the inherited <code>extends</code> clause
+                     			(see <a href="#s1.3.1.g"
+                        title="&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types"
+                        class="sect">&sect;1.3.1.(g)</a> above) only if the new super-class
+                     			is a sub-class of the class in the overridden extends clause.
+                     			I.e., an implicit sub-role may <em>specialize</em> the extends clause of its
+                     			implicit super-role.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Constructors and overridden 'extends' </span></h4>
+                  <p>Each constructor of a role class that overrides the extends clause of its
+                     		  implicit super-role must invoke a constructor of this newly introduced
+                     		  explicit super-class. Thus it may not use a <code>tsuper</code> constructor
+                     		  (see <a href="s2.4.2.html"
+                        title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                        class="sect">&sect;2.4.2</a>).
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Adding implemented interfaces</span></h4>
+                  <p><code>implements</code> declarations are additive, i.e., an implicit
+                     			sub-role may add more interfaces but has to implement all interfaces of
+                     			its implicit super-role, too.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s1.3.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Visibility of inherited methods</span></h4>
+                  <p>
+                     					When a role inherits non-public methods from a regular class (as its super class),
+                     					these methods are considered as private for the role, i.e., they can only be
+                     					accessed in an unqualified method call <code>m()</code> using the implicit receiver <code>this</code>.
+                     				
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.2.html" rel="prev">&lt;&lt;&nbsp;&sect;1.2&nbsp;Role classes and objects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.4.html" rel="next">&sect;1.4&nbsp;Name clashes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.a.html
new file mode 100644
index 0000000..b03cc15
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.4.b.html" rel="next">&sect;1.4.(b)&nbsp;Names of role methods and fields&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.4.html" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+         <div class="subsect depth3" id="s1.4.a">
+            <h4 class="subsect">&sect;1.4.(a)&nbsp;<span class="title">Names of role classes</span></h4>
+            <p>A role class may not have the same name as a method or field of
+               			its enclosing team. A role class may not shadow another class that is visible in the scope of the enclosing team.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.4.b.html" rel="next">&sect;1.4.(b)&nbsp;Names of role methods and fields&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.4.html" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.b.html
new file mode 100644
index 0000000..50e41f4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.b.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.4.(a)&nbsp;Names of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.4.html" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+         <div class="subsect depth3" id="s1.4.b">
+            <h4 class="subsect">&sect;1.4.(b)&nbsp;<span class="title">Names of role methods and fields</span></h4>
+            <p>Along implicit inheritance, the names of methods or fields may
+               				not hide, shadow or obscure any previously visible name.<br />
+               				(see JLS <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                  class="ext">&sect;8.3</a>,
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227928"
+                  class="ext">&sect;8.4.6.2</a>,
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                  class="ext">&sect;8.5</a>,
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#78642"
+                  class="ext">&sect;9.3</a>,
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#252566"
+                  class="ext">&sect;9.5</a> (hiding),
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#34133"
+                  class="ext">&sect;6.3.1</a> (shadowing),
+               				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104058"
+                  class="ext">&sect;6.3.2</a> (obscuring).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.4.(a)&nbsp;Names of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.4.html" rel="section">&sect;1.4&nbsp;Name clashes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.html
new file mode 100644
index 0000000..aa28800
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.4.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.3.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.html" rel="next">&sect;1.5&nbsp;Team and role nesting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="sect depth2" id="s1.4">
+            <h2 class="sect">&sect;1.4&nbsp;Name clashes</h2>
+            <p>OT/J restricts Java with respect to handling of conflicting names.
+               		
+            </p>
+            <div class="subsect depth3" id="s1.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Names of role classes</span></h4>
+               <p>A role class may not have the same name as a method or field of
+                  			its enclosing team. A role class may not shadow another class that is visible in the scope of the enclosing team.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s1.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Names of role methods and fields</span></h4>
+               <p>Along implicit inheritance, the names of methods or fields may
+                  				not hide, shadow or obscure any previously visible name.<br />
+                  				(see JLS <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                     class="ext">&sect;8.3</a>,
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227928"
+                     class="ext">&sect;8.4.6.2</a>,
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                     class="ext">&sect;8.5</a>,
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#78642"
+                     class="ext">&sect;9.3</a>,
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#252566"
+                     class="ext">&sect;9.5</a> (hiding),
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#34133"
+                     class="ext">&sect;6.3.1</a> (shadowing),
+                  				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104058"
+                     class="ext">&sect;6.3.2</a> (obscuring).
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.3.html" rel="prev">&lt;&lt;&nbsp;&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.html" rel="next">&sect;1.5&nbsp;Team and role nesting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.a.html
new file mode 100644
index 0000000..00b2bef
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.a.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.b.html" rel="next">&sect;1.5.(b)&nbsp;Nested classes of roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.a">
+            <h4 class="subsect">&sect;1.5.(a)&nbsp;<span class="title">Nested teams</span></h4>
+            <p>If a role class is also marked using the <code>team</code> modifier,
+               			it may contain roles at the next level of nesting.
+               			
+            </p>
+            <div class="codecomment">
+               <ul>
+                  <li>In the above example (<a href="s1.html#l1.5" class="listing">Listing 1.5</a>) class <code>RoleAndTeam</code> starting in line 14
+                     			is a role of <code>OuterTeam</code> and at the same time a
+                     			team containing a further role <code>InnerRole</code></li>
+               </ul>
+            </div>
+            <p>Such a hybrid role-and-team has all properties of both kinds of classes.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.b.html" rel="next">&sect;1.5.(b)&nbsp;Nested classes of roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.b.html
new file mode 100644
index 0000000..285c417
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.b.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(a)&nbsp;Nested teams</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.c.html" rel="next">&sect;1.5.(c)&nbsp;Prohibition of cycles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.b">
+            <h4 class="subsect">&sect;1.5.(b)&nbsp;<span class="title">Nested classes of roles</span></h4>
+            <p>A regular role class (ie., not marked as <code>team</code>, see above)
+               			may contain local types (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#247766"
+                  class="ext">JLS &sect;14.3</a>
+               			 - in the example: class <code>Local</code>), anonymous types
+               			(<a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#252986"
+                  class="ext">JLS &sect;15.9.5</a>
+               			 - in the example: class defined in lines 18-20)
+               			but no member types (<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                  class="ext">JLS &sect;8.5</a>
+               			 - in the example: illegal class
+               			<code>IllegalMember</code>).
+               			<br />
+               			The effect is, that nested types of a regular role cannot be
+               			used outside the scope of their enclosing role.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(a)&nbsp;Nested teams</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.c.html" rel="next">&sect;1.5.(c)&nbsp;Prohibition of cycles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.c.html
new file mode 100644
index 0000000..d7b9413
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.c.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(b)&nbsp;Nested classes of roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.d.html" rel="next">&sect;1.5.(d)&nbsp;Prohibition of name clashes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.c">
+            <h4 class="subsect">&sect;1.5.(c)&nbsp;<span class="title">Prohibition of cycles</span></h4>
+            <p>A nested team may not extend its own enclosing team.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(b)&nbsp;Nested classes of roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.d.html" rel="next">&sect;1.5.(d)&nbsp;Prohibition of name clashes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.d.html
new file mode 100644
index 0000000..0bdd2af
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.d.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(c)&nbsp;Prohibition of cycles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.e.html" rel="next">&sect;1.5.(e)&nbsp;Precedence among different supers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.d">
+            <h4 class="subsect">&sect;1.5.(d)&nbsp;<span class="title">Prohibition of name clashes</span></h4>
+            <p>A nested team may inherit roles from multiple sources: its explicit super team
+               and any of its implicit super classes (roles) from different levels of nesting.
+               If from different sources a team inherits two or more roles of the same name
+               that are not related by implicit inheritance, this is an illegal name clash.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(c)&nbsp;Prohibition of cycles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.e.html" rel="next">&sect;1.5.(e)&nbsp;Precedence among different supers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.e.html
new file mode 100644
index 0000000..92b4fbb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.e.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(d)&nbsp;Prohibition of name clashes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.f.html" rel="next">&sect;1.5.(f)&nbsp;Qualified tsuper&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.e">
+            <h4 class="subsect">&sect;1.5.(e)&nbsp;<span class="title">Precedence among different supers</span></h4>
+            <p>If a role inherits the same feature from several super roles (super and tsuper), 
+               			an implicitly inherited version always overrides any explicitly inherited feature. <br />
+               		    Also implicit inheritance alone may produce several candidate methods inherited by a role class. 
+               		    This is a result of team-nesting where each level of nesting may add one more tsuper role. 
+               		    In that case inner team inheritance has precedence over outer team inheritance.
+               			
+            </p>
+            <div class="codecomment">
+               <table>
+                  <colgroup span="1">
+                     <col align="left" span="1" />
+                     <col align="center" span="1" />
+                  </colgroup>
+                  <tr>
+                     <td valign="top" rowspan="1" colspan="1">
+                        <p>In the above example (<a href="s1.html#l1.5" class="listing">Listing 1.5</a>) role <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> has two direct tsuper roles: <code class="small">OuterTeam.RoleAndTeam.InnerRole</code>&nbsp;and <code class="small">SuperOuter.RoleAndTeamSub.InnerRole</code>. Without the method <code>foo</code> defined in lines 27-30, the enclosing class <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> would inherit the method <code>foo</code> defined in line 16, because the inner inheritance between <code>RoleAndTeamSub</code> and <code>RoleAndTeam</code> binds stronger than the outer inheritance between <code>OuterTeam</code> and <code>SuperOuter</code>.
+                        </p>
+                     </td>
+                     <td rowspan="1" colspan="1"><img src="../images/team_nesting_hor.png" alt="Example diagram team nesting" /></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(d)&nbsp;Prohibition of name clashes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s1.5.f.html" rel="next">&sect;1.5.(f)&nbsp;Qualified tsuper&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.f.html
new file mode 100644
index 0000000..c25f050
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.f.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(e)&nbsp;Precedence among different supers</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+         <div class="subsect depth3" id="s1.5.f">
+            <h4 class="subsect">&sect;1.5.(f)&nbsp;<span class="title">Qualified tsuper</span></h4>
+            <p>A role in a nested team may qualify the keyword <code>tsuper</code> (see <a href="s1.3.1.f.html" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> above) by a type name 
+               			in order to select among different method version inherited from different implicit super classes. A term <code>OuterTeam.tsuper</code> evaluates 
+               			to the super-class, say <code>SuperOuter</code>, of an enclosing team "<code>OuterTeam</code>". A method call <code>OuterTeam.tsuper.m()</code> 
+               			evaluates to the method version within <code>SuperOuter</code> that best corresponds to the current method containing the tsuper-call.
+               			
+            </p>
+            <div class="codecomment">
+               <ul>
+                  <li>In the above example (<a href="s1.html#l1.5" class="listing">Listing 1.5</a>) line 28 is identical to an unqualified tsuper-call
+                  </li>
+                  <li>Line 29 selects a corresponding method from the context of <code>SuperOuter</code> resolving to <code>SuperOuter.RoleAndTeamSub.InnerRole.foo()</code></li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;1.5.(e)&nbsp;Precedence among different supers</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a>&nbsp;&gt;&nbsp;<a class="nav" href="s1.5.html" rel="section">&sect;1.5&nbsp;Team and role nesting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.html
new file mode 100644
index 0000000..0981b3d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.5.html
@@ -0,0 +1,272 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.4.html" rel="prev">&lt;&lt;&nbsp;&sect;1.4&nbsp;Name clashes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+         <div class="sect depth2" id="s1.5">
+            <h2 class="sect">&sect;1.5&nbsp;Team and role nesting</h2>
+            <p>Multi-level nesting of classes is restricted only by the following rules.
+               		
+            </p>
+            <h5 class="listing">Example code (Nesting):</h5>
+            <div class="listing example frame" id="l1.5">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> SuperOuter {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>      Runnable foo() { <b>return</b> null; }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> <b>extends</b> <strong>RoleAndTeam</strong> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>      Runnable foo() { throw <b>new</b> RuntimeException(); }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> OuterTeam <b>extends</b> SuperOuter {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>      Runnable foo() {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>        <b>class</b> Local {};</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>        <b>return</b> <b>new</b> Runnable() { <span class="comment">// anonymous class definition</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre>          <b>public</b> <b>void</b> run() {}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>        };</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">21</td>
+                     <td><pre>      }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">22</td>
+                     <td><pre>      <span class="comment">// <span class="error">class IllegalMember {}</span></span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">23</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">24</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">25</td>
+                     <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">26</td>
+                     <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">27</td>
+                     <td><pre>      Runnable foo() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">28</td>
+                     <td><pre>        <em>RoleAndTeamSub.tsuper</em>.foo();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">29</td>
+                     <td><pre>        <b>return</b> <em>OuterTeam.tsuper</em>.foo();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">30</td>
+                     <td><pre>      };</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">31</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">32</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">33</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="subsect depth3" id="s1.5.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Nested teams</span></h4>
+               <p>If a role class is also marked using the <code>team</code> modifier,
+                  			it may contain roles at the next level of nesting.
+                  			
+               </p>
+               <div class="codecomment">
+                  <ul>
+                     <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) class <code>RoleAndTeam</code> starting in line 14
+                        			is a role of <code>OuterTeam</code> and at the same time a
+                        			team containing a further role <code>InnerRole</code></li>
+                  </ul>
+               </div>
+               <p>Such a hybrid role-and-team has all properties of both kinds of classes.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s1.5.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Nested classes of roles</span></h4>
+               <p>A regular role class (ie., not marked as <code>team</code>, see above)
+                  			may contain local types (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#247766"
+                     class="ext">JLS &sect;14.3</a>
+                  			 - in the example: class <code>Local</code>), anonymous types
+                  			(<a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#252986"
+                     class="ext">JLS &sect;15.9.5</a>
+                  			 - in the example: class defined in lines 18-20)
+                  			but no member types (<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                     class="ext">JLS &sect;8.5</a>
+                  			 - in the example: illegal class
+                  			<code>IllegalMember</code>).
+                  			<br />
+                  			The effect is, that nested types of a regular role cannot be
+                  			used outside the scope of their enclosing role.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s1.5.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Prohibition of cycles</span></h4>
+               <p>A nested team may not extend its own enclosing team.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s1.5.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Prohibition of name clashes</span></h4>
+               <p>A nested team may inherit roles from multiple sources: its explicit super team
+                  and any of its implicit super classes (roles) from different levels of nesting.
+                  If from different sources a team inherits two or more roles of the same name
+                  that are not related by implicit inheritance, this is an illegal name clash.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s1.5.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Precedence among different supers</span></h4>
+               <p>If a role inherits the same feature from several super roles (super and tsuper), 
+                  			an implicitly inherited version always overrides any explicitly inherited feature. <br />
+                  		    Also implicit inheritance alone may produce several candidate methods inherited by a role class. 
+                  		    This is a result of team-nesting where each level of nesting may add one more tsuper role. 
+                  		    In that case inner team inheritance has precedence over outer team inheritance.
+                  			
+               </p>
+               <div class="codecomment">
+                  <table>
+                     <colgroup span="1">
+                        <col align="left" span="1" />
+                        <col align="center" span="1" />
+                     </colgroup>
+                     <tr>
+                        <td valign="top" rowspan="1" colspan="1">
+                           <p>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) role <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> has two direct tsuper roles: <code class="small">OuterTeam.RoleAndTeam.InnerRole</code>&nbsp;and <code class="small">SuperOuter.RoleAndTeamSub.InnerRole</code>. Without the method <code>foo</code> defined in lines 27-30, the enclosing class <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> would inherit the method <code>foo</code> defined in line 16, because the inner inheritance between <code>RoleAndTeamSub</code> and <code>RoleAndTeam</code> binds stronger than the outer inheritance between <code>OuterTeam</code> and <code>SuperOuter</code>.
+                           </p>
+                        </td>
+                        <td rowspan="1" colspan="1"><img src="../images/team_nesting_hor.png" alt="Example diagram team nesting" /></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s1.5.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Qualified tsuper</span></h4>
+               <p>A role in a nested team may qualify the keyword <code>tsuper</code> (see <a href="s1.3.1.f.html" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> above) by a type name 
+                  			in order to select among different method version inherited from different implicit super classes. A term <code>OuterTeam.tsuper</code> evaluates 
+                  			to the super-class, say <code>SuperOuter</code>, of an enclosing team "<code>OuterTeam</code>". A method call <code>OuterTeam.tsuper.m()</code> 
+                  			evaluates to the method version within <code>SuperOuter</code> that best corresponds to the current method containing the tsuper-call.
+                  			
+               </p>
+               <div class="codecomment">
+                  <ul>
+                     <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) line 28 is identical to an unqualified tsuper-call
+                     </li>
+                     <li>Line 29 selects a corresponding method from the context of <code>SuperOuter</code> resolving to <code>SuperOuter.RoleAndTeamSub.InnerRole.foo()</code></li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.4.html" rel="prev">&lt;&lt;&nbsp;&sect;1.4&nbsp;Name clashes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s1.html" rel="section">&sect;1&nbsp;Teams and Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.html
new file mode 100644
index 0000000..1485e7b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s1.html
@@ -0,0 +1,1708 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s0.html" rel="prev">&lt;&lt;&nbsp;&sect;0&nbsp;About this Document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.html" rel="next">&sect;2&nbsp;Role Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s1">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;1&nbsp;Teams and Roles</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s1.html">&sect;1&nbsp;Teams and Roles</a></li>
+                  <li><a href="#s1.1">&sect;1.1&nbsp;Team classes</a></li>
+                  <li><a href="#s1.2">&sect;1.2&nbsp;Role classes and objects</a></li>
+                  <li><a href="#s1.3">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes</a></li>
+                  <li><a href="#s1.4">&sect;1.4&nbsp;Name clashes</a></li>
+                  <li><a href="#s1.5">&sect;1.5&nbsp;Team and role nesting</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Fundamental concepts of Teams</h3>
+               <div class="line"></div>
+               <div class="term">Teams and Roles</div>
+               <div class="termdesc">Classes that are defined with the modifier <code>team</code>
+                  	    are called team classes, or <strong>teams</strong> for short.<br />
+                  	    Direct inner classes of a team are called role classes, or <strong>roles</strong>
+                  	    for short.
+               </div>
+               <div class="line"></div>
+               <div class="term">Role inheritance</div>
+               <div class="termdesc">Inheritance between teams introduces a special inheritance relationship
+                  	    between their contained roles. The rules of this <strong>implicit inheritance</strong> are given below (<a href="#s1.3.1"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Externalized role</div>
+               <div class="termdesc">Roles are generally confined to the context of their
+                  		enclosing team instance. Subject to specific restrictions,
+                  		a role <em>may</em> be passed outside
+                  		its team using the concept of externalized roles (<a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s1.1">
+               <h2 class="sect">&sect;1.1&nbsp;Team classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+               <p>A class declared with the modifier <code>team</code> is a <em>team class</em> (or team for short).
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <em><b>team</b> <b>class</b> MyTeamA</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Teams are meant as containers for <em>roles</em>, which are defined in the following
+                  	paragraphs.
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>class</b> MyRole</em></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Teams introduce a new variant of inheritance for contained role classes
+                  	(see <a href="#s1.3.1"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a> below).
+                  	Other properties of teams, which are defined in later sections, are:
+                  		
+               </p>
+               <ul>
+                  <li>Team activation (<a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>)
+                  </li>
+                  <li>Abstractness and instantiation (<a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>)
+                  </li>
+                  <li>Declared lifting in team methods (<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)
+                  </li>
+                  <li>Reflective functions defined in <code>org.objectteams.ITeam</code> (<a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a>)
+                  </li>
+               </ul>
+               <p>Apart from these differences, team classes are regular Java classes with
+                  	methods and fields, whose instances are regular Java objects.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s1.2">
+               <h2 class="sect">&sect;1.2&nbsp;Role classes and objects<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>Each direct inner class of a team is a role class.
+                  Just like inner classes, each instance of a role class has an implicit reference
+                  to its enclosing team instance. This reference is immutable.
+                  Within the implementation of a role it can be accessed by qualifying the identifier
+                  <code>this</code> with the name of the team class, as in:
+                  		
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>class</b> MyRole</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("Team: "+ <em>MyTeamA.this</em>); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Creation of role instances is further restricted as defined in
+                  <a href="s2.4.html" title="&sect;2.4&nbsp;Explicit role creation" class="sect">&sect;2.4</a>.
+                  	Teams can also define role interfaces just like role classes.
+                  	With respect to role specific properties a role interface is treated like a fully
+                  	abstract class.
+                  		
+               </p>
+               <div class="sect depth3" id="s1.2.1">
+                  <h3 class="sect">&sect;1.2.1&nbsp;Modifiers for roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Member classes of a team cannot be <code>static</code>.
+                     Also the use of access modifiers for roles is restricted and modifiers have different (stronger) semantics than for 
+                     regular classes (see below). With respect to accessibility a team acts mainly like a package regarding its roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role class protection</span></h4>
+                     <p>A role class must have exactly one of the access modifiers <code>public</code>
+                        			or <code>protected</code>.<br />
+                        This rule does not affect the class modifiers <code>abstract</code>, <code>final</code> and <code>strictfp</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">protected role classes</span></h4>
+                     <p>A <code>protected</code> role can only be accessed from within the enclosing
+                        			team or any of its sub-teams. The actual border of encapsulation is the
+                        			enclosing team <em>instance</em>. The rules for protected roles are given
+                        			in <a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> below.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">public role classes</span></h4>
+                     <p>Only <code>public</code> roles can ever be accessed outside their enclosing	team.
+                        			Accessing a role outside the enclosing team instance is governed by the rules
+                        			of <strong>externalized roles</strong>, to be defined next (<a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">abstract role classes</span></h4>
+                     <p>A role class has to be marked <strong>abstract</strong> if any of its methods
+                        			is not effective.<br />
+                        			The <em>methods of a role class</em> comprise direct methods and
+                        			methods acquired by inheritance.
+                        			In addition to regular inheritance a role class may acquire	methods
+                        			also via implicit inheritance (<a href="#s1.3.1"
+                           title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                           class="sect">&sect;1.3.1</a>).<br />
+                        			A method may become <em>effective</em> by either:
+                        				
+                     </p>
+                     <ul>
+                        <li>implementation (i.e., a regular method body), or</li>
+                        <li>a callout binding (see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                        </li>
+                     </ul>
+                     <p><a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a> discusses under which 
+                        			circumstances abstract roles force the enclosing team to be abstract, too.
+                        
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Role features</span></h4>
+                     <p>Access modifiers for members of roles have some special interpretation:
+                        				
+                     </p>
+                     <ol>
+                        <li>A private member is also visible in any implicit sub role
+                           		    (see implicit inheritance <a href="#s1.3.1.c"
+                              title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                              class="sect">&sect;1.3.1.(c)</a>).<br />
+                           		    In contrast to inner classes in Java, private members of a role are not
+                           		    visible to the enclosing team.
+                        </li>
+                        <li>The default visibility of role members restricts access to the
+                           			  current class and its sub-classes (explicit and implicit).
+                        </li>
+                        <li><code>protected</code> role members can only be accessed from the enclosing
+                           			  team or via  <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>.
+                        </li>
+                        <li><code>public</code> role members grant unrestricted access.
+                        </li>
+                     </ol>
+                     <p>Additionally, a role always has access to all the features that its enclosing team has access to.</p>
+                     <p>Only <code>public</code> members can ever be accessed via an <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">externalized role (&sect;1.2.2)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Static role methods</span></h4>
+                     <p>In contrast to inner classes in pure Java, a role class may indeed define static methods. A static role method requires no
+                        role 
+                        				instance <em>but</em> it still requires a team instance in scope. Static role methods can be called:
+                        				
+                     </p>
+                     <ul>
+                        <li>from the enclosing team,</li>
+                        <li>via callin (see <a href="s4.7.html" title="&sect;4.7&nbsp;Callin binding with static methods"
+                              class="sect">&sect;4.7</a>).
+                        </li>
+                     </ul>
+                     <p>Within a static role method the syntax <code>MyTeam.this</code> is available for accessing the enclosing team instance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.1.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">No static initializers</span></h4>
+                     <p>A static field of a role class must not have a non-constant initialization expression.
+                        					   Static initialization blocks are already prohibited for inner classes by Java (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#262890"
+                           class="ext">JLS &sect;8.1.2</a>).
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>   
+                        					Static initialization generally provides a means for performing initialization code prior to instantiation, i.e., at
+                        class-loading time.
+                        					Before any role can be created already two levels of initialization are performed: (1) The (outer most) enclosing team
+                        class performs static initializations when it is loaded. (2) Any enclosing team executes 
+                        					its constructor when it is instantiated. It should be possible to allocate any early initialization to either of these
+                        two phases instead of using static role initializers.
+                        				
+                     </div>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.2">
+                  <h3 class="sect">&sect;1.2.2&nbsp;Externalized roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                        class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+                  <p>Normally, a team encapsulates its role against unwanted access from the outside.
+                     	  If roles are visible outside their enclosing team instance we speak of
+                     	  <strong>externalized roles</strong>.
+                     			
+                  </p>
+                  <p>Externalized roles are subject to specific typing rules in order to ensure,
+                     	  that role instances from different team instances cannot be mixed in
+                     	  inconsistent ways. In the presence of implicit inheritance
+                     	  (<a href="#s1.3.1"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>) inconsistencies could otherwise occur, which lead
+                     	  to typing errors that could only be detected at run-time.
+                     	  Externalized roles use the theory of 
+                     "virtual classes" <a href="#fn1-virtual-classes" class="int">[1]</a>,
+                     or more specifically 
+                     "family polymorphism" <a href="#fn2-family-polymorphism" class="int">[2]</a>,
+                     in order to achieve the desired type safety.
+                     	  These theories use special forms of <em>dependent types</em>.
+                     	  Externalized roles have <em>types that depend on a team instance</em>.
+                     			
+                  </p>
+                  <p><a href="#s1.2.3" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a> deduces even stronger forms of encapsulation
+                     	  from the rules about externalized roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Visibility</span></h4>
+                     <p>Only instances of a <code>public</code> role class can ever be externalized.
+                        			  	
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Declaration with anchored type</span></h4>
+                     <p>Outside a team role types are legal only if denoted relative
+                        				to an existing team instance (further on called "anchored types").
+                        				The syntax is:
+                     </p>
+                     <div class="listing plain"><pre><em>final</em> MyTeam myTeam = <i>expression</i>;
+<em>RoleClass&lt;@myTeam&gt;</em> role = <i>expression</i>;</pre></div>
+                     <p>The syntax <code>Type&lt;@anchor&gt;</code> is a special case of a parameterized type, more specifically a <a href="s9.html" title="&sect;9&nbsp;Value Dependent Classes" class="sect">value dependent type (&sect;9)</a>.
+                        				The type argument (i.e., the expression after the at-sign) can be a simple name or a path. It must refer to an instance
+                        of a team class.
+                        				The role type is said to be <em>anchored</em> to this team instance.<br />
+                        				The type-part of this syntax (in front of the angle brackets) must be the simple name of a role type directly contained
+                        in the given team (including roles that are acquired by implicit inheritance).<br /></p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        	Previous versions of the OTJLD used a different syntax for anchored types, where the role type was prefixed with the anchor
+                        expression, separated by a dot (<code>anchor.Type</code>, 
+                        see <a href="sA.html#sA.6.3" title="&sect;A.6.3&nbsp;AnchoredType" class="sect">&sect;A.6.3</a>). A compiler may still support that path syntax but it should be flagged as being deprecated.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Immutable anchor</span></h4>
+                     <p>Anchoring the type of an externalized role to a team instance
+                        				requires the team to be referenced by a variable which
+                        				is marked <code>final</code> (i.e., immutable).
+                        				The type anchor can be a path <code>v.f1.f2...</code> where
+                        				<code>v</code> is any final variable and <code>f1</code> ...
+                        				are final fields.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Implicit type anchors</span></h4>
+                     <p>The current team instance can be used as a default anchor
+                        				for role types:
+                        				
+                     </p>
+                     <ol>
+                        <li>In non-static team level methods role types are by default interpreted as anchored to <code>this</code> (referring to the team instance). I.e., the following two declarations express the same:
+                           
+                           <div class="listing plain"><pre><b>public</b> RoleX getRoleX (RoleY r) { <i> stmts </i> }
+<b>public</b> RoleX&lt;@<em>this</em>&gt; getRoleX (RoleY&lt;@<em>this</em>&gt; r) { <i> stmts </i> }</pre></div>
+                        </li>
+                        <li>
+                           				In analogy, <em>role methods</em> use the enclosing team instance as the
+                           				default anchor for any role types.
+                        </li>
+                     </ol>
+                     <p>Note, that <code>this</code> and <code><em>Outer</em>.this</code> are always
+                        			  <code>final</code>.<br />
+                        			  The compiler uses the pseudo identifier <strong><code>tthis</code></strong> to denote
+                        			  such implicit type anchors in error messages.
+                        			  	
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Conformance</span></h4>
+                     <p>Conformance between
+                        				two types <code>RoleX&lt;@teamA&gt;</code> and <code>RoleY&lt;@teamB&gt;</code>
+                        				not only requires the role types to be compatible, but also
+                        				the team instances to be provably <em>the same object</em>.
+                        				The compiler must be able to statically analyze anchor identity.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                     <p>Only two substitutions are considered for determining
+                        				team identity:
+                        				
+                     </p>
+                     <ol>
+                        <li>
+                           				  For type checking the application of team methods,
+                           				  <code>this</code> is <strong>substituted</strong> by the actual call target.
+                           				  For role methods a reference of the form <code><em>Outer</em>.this</code>
+                           				  is substituted by the enclosing instance of the call target.
+                           					
+                        </li>
+                        <li>Assignments from a <code>final</code> identifier
+                           				  to another <code>final</code> identifier are transitively
+                           				  followed, i.e., if <code>t1, t2</code> are final,
+                           				  after an assignment <code>t1=t2</code>
+                           				  the types <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code> are considered
+                           				  identical. Otherwise <code>R&lt;@t1&gt;</code> and <code>R&lt;@t2&gt;</code>
+                           				  are incommensurable.<br />
+                           				  Attaching an actual parameter to a formal parameter in a
+                           				  method call is also considered as an assignment with respect to
+                           				  this rule.
+                           					
+                        </li>
+                     </ol>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">Legal contexts</span></h4>
+                     <p>Anchored types for externalized roles may be used in the
+                        			following contexts:
+                        				
+                     </p>
+                     <ol>
+                        <li>Declaration of an attribute</li>
+                        <li>Declaration of a local variable</li>
+                        <li>Declaration of a parameter or result type
+                           						 of a method or constructor
+                        </li>
+                        <li>In the <code>playedBy</code> clause of a role class
+                           					(see <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>).
+                        </li>
+                     </ol>
+                     <p>It is not legal to inherit from an anchored type, since
+                        				this would require membership of the referenced team instance,
+                        				which can only be achieved by class nesting.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+					Item 4.
+					&mdash; within the given restriction &mdash; admits the case where
+					the same class is a role of one team and the base class for
+					the role of another team. Another form of nesting is
+					defined in <a href="#s1.5" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.h">
+                     <h4 class="subsect">(h)&nbsp;<span class="title">Externalized creation</span></h4>
+                     <p>A role can be created as externalized using either of these equivalent forms:</p>
+                     <div class="listing plain"><pre>outer.<b>new</b> Role()
+<b>new</b> Role&lt;@outer&gt;()</pre></div>
+                     <p>This requires the enclosing instance <code>outer</code> to be
+                        			declared <code>final</code>. The expression has the
+                        			type <code>Role&lt;@outer&gt;</code> following the rules of
+                        			externalized roles.<br />
+                        			The type <code>Role</code> in this expression must be a simple
+                        			(unqualified) name.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.2.i">
+                     <h4 class="subsect">(i)&nbsp;<span class="title">No import</span></h4>
+                     <p>It is neither useful nor legal to import a role type.<br /></p>
+                     <div class="note">
+                        <h5>Rationale:</h5>
+                        					Importing a type allows to use the unqualified name in situations that would otherwise require to use the fully qualified
+                        name, 
+                        					i.e., the type prefixed with its containing package and enclosing class. Roles, however are contained in a team <i>instance</i>.
+                        					Outside their team, role types can only be accessed using an anchored type which uses a team instance to qualify the
+                        role type.
+                        					Relative to this team anchor, roles are <i>always</i> denoted using their simple name, which makes importing roles useless.
+                        				
+                     </div>
+                     <p>A static import for a constant declared in a role is, however, legal.
+                        				
+                     </p>
+                  </div>
+                  <h5 class="listing">Example code (Externalized Roles):</h5>
+                  <div class="listing example frame" id="l1.2.2-1">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> FlightBonus <b>extends</b> Bonus {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> Subscriber {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>void</b> clearCredits() { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  <b>void</b> unsubscribe(Subscriber subscr) { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.2.2-2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre><b>class</b> ClearAction <b>extends</b> Action {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>  <em>final</em> FlightBonus context;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  <em>Subscriber&lt;@context&gt;</em> subscriber;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  ClearAction (<em>final</em> FlightBonus bonus, <em>Subscriber&lt;@bonus&gt;</em> subscr) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>    context = bonus; <span class="comment">// unique assignment to 'context'</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>    subscriber = subscr;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>  <b>void</b> actionPerformed () {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>    subscriber.clearCredits();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">16</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">17</td>
+                           <td><pre>  <b>protected</b> <b>void</b> finalize () {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">18</td>
+                           <td><pre>    context.unsubscribe(subscriber);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">19</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">20</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>Lines 1-6 show a terse extract of a published example
+                           	 				<a href="http://www.objectteams.org/publications/index.html#NODe02" class="ext">[NODe02]</a>. Here passengers can be subscribers in a flight bonus program.
+                        </li>
+                        <li>Lines 7-20 show a sub-class of <code>Action</code> which is
+                           					used to associate the action of resetting a subscriber's credits
+                           					to a button or similar element in an application's GUI.
+                        </li>
+                        <li>Attribute <code>context</code> (line 8) and parameter
+                           					<code>bonus</code> (line 10) serve as anchor for the type of
+                           					externalized roles.
+                        </li>
+                        <li>Attribute <code>subscriber</code> (line 9) and parameter
+                           					<code>subscr</code> (line 10) store a Subscriber role outside the
+                           					FlightBonus team.
+                        </li>
+                        <li>In order to type-check the assignment in line 12, the compiler
+                           					has to ensure that the types of LHS and RHS are anchored to
+                           					the same team instance. This can be verified by checking that
+                           					both anchors are indeed <code>final</code> and prior to the
+                           					role assignment a team assignment has taken place (line 11).<br /><span class="underline">Note,</span> that the Java rules for <strong>definite assignments</strong> to
+                           final variables ensure that exactly one assignment to a variable occurs
+                           		            prior to its use as type anchor. No further checks are needed.
+                           	                
+                        </li>
+                        <li>It is now legal to store this role reference and use it at
+                           					some later point in time, e.g., for invoking method
+                           					<code>clearCredits</code> (line 15).
+                           					This method call is also an example for implicit team activation
+                           					(<a href="s5.3.b.html" title="&sect;5.3.(b)&nbsp;Methods of externalized roles"
+                              class="sect">&sect;5.3.(b)</a>).
+                           					
+                        </li>
+                        <li>Line 18 demonstrates how an externalized role can be
+                           					passed to a team level method. The signature of <code>unsubscribe</code>
+                           					is for this call expanded to 
+                           <div class="indent">
+                              						void unsubscribe(Subscriber&lt;@context&gt; subscr)
+                              					
+                           </div>
+                           					(by substituting the call target <code>context</code> for
+                           					<code>this</code>). This proves identical types for actual and
+                           					formal parameters.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.3">
+                  <h3 class="sect">&sect;1.2.3&nbsp;Protected roles<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Roles can only be <code>public</code> or <code>protected</code>.
+                     	A <code>protected</code> role is encapsulated
+                     	by its enclosing team instance. This is enforced by these rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Importing role classes</span></h4>
+                     <p><i>This rule is superseded by <a href="#s1.2.2.i" title="&sect;1.2.2.(i)&nbsp;No import" class="sect">&sect;1.2.2.(i)</a></i></p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Qualified role types</span></h4>
+                     <p>The name of a <code>protected</code> role class may never be used qualified, neither
+                        			prefixed by its <em>enclosing type</em> nor parameterized by a <em>variable as type anchor</em> (cf. <a href="#s1.2.2.a" title="&sect;1.2.2.(a)&nbsp;Visibility" class="sect">&sect;1.2.2.(a)</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Mixing qualified and unqualified types</span></h4>
+                     <p>An externalized role type is never compatible to an unqualified role type,
+                        			except for the substitutions in <a href="#s1.2.2.f"
+                           title="&sect;1.2.2.(f)&nbsp;Substitutions for type anchors"
+                           class="sect">&sect;1.2.2.(f)</a>, where
+                        			an explicit anchor can be matched with the implicit anchor <code>this</code>.
+                        				
+                     </p>
+                  </div>
+                  <p>Rules (a) and (b) ensure that the name of a protected role class cannot be used
+                     			outside the lexical scope of its enclosing team. Rule (c) ensures that team methods
+                     			containing unqualified role types in their signature cannot be invoked on a team other
+                     			than the current team. Accordingly, for role methods the team context must be the
+                     			enclosing team instance.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.3.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Levels of encapsulation</span></h4>
+                     <p>Since protected role types can not be used for externalization, instances of these types are already quite effectively encapsulated
+                        by their enclosing team.
+                        			Based on this concept, encapsulation for protected roles can be made even stricter by the rules of <em>role confinement</em>.
+                        			On the contrary, even protected roles can be externalized as <em>opaque roles</em> which still expose (almost) no information.
+                        			Confinement and opaque roles are subject of <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.4">
+                  <h3 class="sect">&sect;1.2.4&nbsp;Type tests and casts<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>In accordance with <a href="#s1.2.2.e" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>, in OT/J
+                     	the <code>instanceof</code> operator and type casts have extended semantics for roles.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.4.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">instanceof</span></h4>
+                     <p>For role types the <code>instanceof</code> operator yields true only if
+                        			both components of the type match: the dynamic role type must be compatible
+                        			to the given static type, and also type anchors must be the same instance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.4.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Casting</span></h4>
+                     <p>Casts may also fail if the casted expression is anchored to a different
+                        			team instance than the cast type. Such failure is signaled by a
+                        			<code>org.objectteams.RoleCastException</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.4.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Class literal</span></h4>
+                     <p>A class literal of form <code>R.class</code> is dynamically bound to the class <code>R</code>
+                        					visible in the current instance context. Using a class literal for a role outside its
+                        					enclosing team instance (see <a href="#s1.2.2" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) requires the following syntax:
+                        				
+                     </p>
+                     <div class="listing plain"><pre>RoleClass<em>&lt;@teamAnchor&gt;</em><strong>.class</strong></pre></div>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.2.5">
+                  <h3 class="sect">&sect;1.2.5&nbsp;File structure<span class="toplink"><a href="#s1.2">&uarr;&nbsp;&sect;1.2</a></span></h3>
+                  <p>Just like regular inner classes, role classes may be inlined in the
+                     	source code of the enclosing team. As an alternative style it is possible
+                     	to store role classes in separate <strong>role files</strong> according to the following rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.2.5.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role directory</span></h4>
+                     <p>In the directory of the team class a new directory is created
+                        			which has the same name as the team without the <tt>.java</tt> suffix.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Role files</span></h4>
+                     <p>Role classes are stored in this directory (a). The file names are
+                        			derived from the role class name extended by <tt>.java</tt>.<br />
+                        			A role file must contain exactly one top-level type.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">package statement</span></h4>
+                     <p>A role class in a role file declares as its package the fully qualified
+                        			name of the enclosing team class. The package statement of a role file
+                        			must use the <code>team</code> modifier as its first token.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Reference to role file</span></h4>
+                     <p>A team should mention in its javadoc comment each role class which
+                        			is stored externally using a <tt>@role</tt> tag.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Legal types in role files</span></h4>
+                     <p>The type in a role file must not be an <code>enum</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.2.5.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Imports in role files</span></h4>
+                     <p>A role file may have imports of its own. 
+                        				Within the role definition these imports are visible <em>in addition</em> to all imports of the enclosing team. 
+                        				Only <code>base</code> imports (see <a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>)
+                        				<em>must</em> be defined in the team.
+                     </p>
+                  </div>
+                  <p>Semantically, there is no difference between inlined role classes and those
+                     	stored in separate role files.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     	Current Java compilers disallow a type to have the same fully qualified
+                     	name as a package. However, the JLS does not seem to make a statement in this respect.
+                     	In OT/J, a package and a type are interpreted as being the same team, if both have the
+                     	same fully qualified name and both have the <code>team</code> modifier.
+                     			
+                  </div>
+                  <h5 class="listing">Role file example:</h5>
+                  <div class="listing example frame" id="l1.2.5-1">
+                     <table class="listing">
+                        <tr class="lhead">
+                           <td colspan="2">in file <code>org/objectteams/examples/MyTeamA.java</code> :
+                           </td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>package</b> org.objectteams.examples;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><span class="comment">/**</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre> <span class="comment">* @author Stephan Herrmann</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre> <span class="comment">* @date 20.02.2007</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre> <span class="comment">* @file MyTeamA.java</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre> <span class="comment">* <em>@role MyRole</em></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre> <span class="comment">*/</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.2.5-2">
+                     <table class="listing">
+                        <tr class="lhead">
+                           <td colspan="2">in file <code>org/objectteams/examples<strong class="blue">/MyTeamA/MyRole.java</strong></code>:
+                           </td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><em><b>team</b> <b>package</b> org.objectteams.examples.MyTeamA;</em></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><b>public</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.3">
+               <h2 class="sect">&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p> Every team class implicitly implements the predefined interface <code>org.objectteams.ITeam</code>.
+                  	If a team class has no explicit <code>extends</code> clause it implicitly extends <code>org.objectteams.Team</code>, 
+                  	thus providing implementations for the methods in <code>org.objectteams.ITeam</code>.
+                  	If a team class extends a non-team class, the compiler implicitly adds implementations for all methods declared 
+                  	in <code>org.objectteams.ITeam</code> to the team class.
+                  	Any subclass of a team (including <code>org.objectteams.Team</code>) must again be a team.
+                  	Interface implementation is not affected by this rule.
+                  		
+               </p>
+               <p>Infrastructure provided via interface <code>org.objectteams.ITeam</code> is presented in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a>.
+                  		
+               </p>
+               <div class="sect depth3" id="s1.3.1">
+                  <h3 class="sect">&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes<span class="toplink"><a href="#s1.3">&uarr;&nbsp;&sect;1.3</a></span></h3>
+                  <p>A team acquires all roles from its super-team. This relation is
+                     similar to inheritance of inner classes, but with a few decisive
+                     differences as defined next. Two implementation options are mentioned <a href="#aux1.1" class="int">below</a>,
+                     which can be used to realize the special semantics of role
+                     acquisition (virtual classes and copy inheritance).
+                     			
+                  </p>
+                  <h5 class="listing">Implicit role inheritance</h5>
+                  <div class="listing example frame" id="l1.3.1-1">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> S {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R0 {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R1 <em><b>extends</b> R0</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>        <b>boolean</b> ok;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>        R2 m() {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>        <b>void</b> n(<em>R2</em> r) {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R2 {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.3.1-2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">10</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T <em><b>extends</b> S</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">11</td>
+                           <td><pre>    @Override <b>protected</b> <em><b>class</b> R1</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">12</td>
+                           <td><pre>        <strong>R2</strong> m() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">13</td>
+                           <td><pre>            if(<em>ok</em>) { <b>return</b> <em>tsuper</em>.m(); }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">14</td>
+                           <td><pre>            <b>else</b> { <b>return</b> null; }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">15</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">16</td>
+                           <td><pre>        <b>void</b> doIt() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">17</td>
+                           <td><pre>            n(m());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">18</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">19</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">20</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Role class acquisition</span></h4>
+                     <p>A team <code>T</code> which extends a super-team <code>S</code>
+                        	    has one role class <code>T.R</code> corresponding to each role <code>S.R</code>
+                        	    of the super-team.
+                        	    The new type <code>T.R</code>&nbsp;<strong>overrides</strong>&nbsp;<code>R</code> for the
+                        	    context of <code>T</code> and its roles.
+                        	    Acquisition of role classes can either be direct (see (b) below), or
+                        	    it may involve overriding and implicit inheritance ((c) below). 
+                        				
+                     </p>
+                     <div class="codecomment">In the above example (<a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a>) the team <code>S</code> operates 
+                        					on types <code>S.R0</code>, <code>S.R1</code> and <code>S.R2</code>, 
+                        					while <code>T</code> operates on types <code>T.R0</code>, <code>T.R1</code> 
+                        					and <code>T.R2</code>.<br /><em>(Type references like "<code>S.R0</code>" are actually illegal in source code 
+                           					(<a href="#s1.2.3.b" title="&sect;1.2.3.(b)&nbsp;Qualified role types"
+                              class="sect">&sect;1.2.3.(b)</a>). Here they are used for explanatory purposes only)</em></div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Direct role acquisition</span></h4>
+                     <p>Within a sub-team <code>T</code> each role <code>S.R</code> of its
+                        	    super-team <code>S</code> is available by the simple name <code>R</code>
+                        	    without further declaration.
+                        				
+                     </p>
+                     <div class="codecomment">The role <code>R2</code> in <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> can be used in the sub-team 
+                        					<code>T</code> (line 12), because this role type is defined in the super class of the enclosing team.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Overriding and implicit inheritance</span></h4>
+                     <p>If a team contains a role class definition by the same name as
+                        	    a role defined in its super-team,
+                        	    the new role class overrides the corresponding role from the super-team
+                        	    and <strong>implicitly inherits</strong> all of its features.
+                        	    Such relation is established only by name correspondence.
+                        				
+                     </p>
+                     <p>A role that overrides an inherited role should be marked with an <code>@Override</code> annotation.
+                        		A compiler should optionally flag a missing <code>@Override</code> annotation with a warning.  
+                        		Conversely, it is an error if a role is marked with an <code>@Override</code> annotation but does not actually
+                        		override an inherited role.
+                        				
+                     </p>
+                     <p>It is an error to override a role class with an interface or vice versa. A final role cannot be overridden.<br />
+                        	    Unlike regular inheritance, <strong>constructors</strong> are also inherited
+                        	    along implicit inheritance, and can be overridden just like normal methods.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a><code> R1</code> in <code>T</code> implicitly inherits all features of
+                        					  <code>R1</code> in <code>S</code>. This is, because its enclosing team
+                        					  <code>T</code> extends the team <code>S</code> (line 10) and the role
+                        					  definition uses the same name <code>R1</code> (line 11).
+                        					  Hence the attribute <code><strong>ok</strong></code> is available in the method
+                        					  <code>m()</code> in <code>T.R1</code> (line 13). <code>T.R1</code> also overrides <code>S.R1</code>
+                        					  which is marked by the <code>@Override</code> annotation in line 11. 
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Lack of subtyping</span></h4>
+                     <p>Direct acquisition of roles from a super-team and implicit inheritance
+                        	    do not establish a <strong>subtype</strong> relation.
+                        	    A role of a given team is never conform (i.e., substitutable)
+                        	    to any role of any <em>other</em> team.
+                        	    <code>S.R</code> and <code>T.R</code> are always incommensurable.<br /><span class="underline">Note,</span> that this rule is a direct consequence of <a href="#s1.2.2.e" title="&sect;1.2.2.(e)&nbsp;Conformance" class="sect">&sect;1.2.2.(e)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Dynamic binding of types</span></h4>
+                     <p>Overriding an acquired role by a new role class has the following
+                        	    implication: If an expression or declaration, which is evaluated on behalf of
+                        	    an instance of team <code>T</code> or one of its contained roles,
+                        	    refers to a role <code>R</code>, <code>R</code> will always
+                        	    resolve to <code>T.R</code> even if <code>R</code> was introduced in
+                        	    a super-team of <code>T</code> and even if the specific line of code
+                        	    was inherited from a super-team or one of its roles.
+                        	    Only the dynamic type of the enclosing team-instance is used to determine
+                        	    the correct role class (see below for an example).
+                        				
+                     </p>
+                     <p>A special case of dynamically binding role types relates to so-called class literals 
+                        		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                           class="ext">JLS &sect;15.8.2</a>). 
+                        		Role class literals are covered in <a href="s6.1.c.html" title="&sect;6.1.(c)&nbsp;Class literals for roles"
+                           class="sect">&sect;6.1.(c)</a>.
+                        				
+                     </p>
+                     <p>The above is strictly needed only for cases involving implicit inheritance.
+                        	    It may, however, help intuition, to also consider the directly acquired
+                        	    role <code>T.R</code> in (b) to override the given role <code>S.R</code>.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In line 17 of <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the implicitly inherited method <code>n</code> is called
+                        				  with the result of an invocation of <code>m</code>. Although
+                        				  <code>n</code> was defined in <code>S</code> (thus with argument type
+                        				  <code>S.R2, see line 6</code>) in the context of <code>T</code> it
+                        				  expects an argument of <code>T.R2</code>. This is correctly provided by
+                        				  the invocation of <code>m</code> in the context of <code>T</code>.
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">tsuper</span></h4>
+                     <div class="syntaxlink"><a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.4</a></div>
+                     <p>Super calls along implicit inheritance use the new keyword
+                        	    <strong>tsuper</strong>. While <code>super</code> is still available
+                        	    along regular inheritance, a call <code>tsuper.m()</code>
+                        	    selects the version of <code>m</code> of the corresponding role
+                        	    acquired from the super-team.
+                        				
+                     </p>
+                     <p>See <a href="s2.4.2.html"
+                           title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                           class="sect">&sect;2.4.2</a> for <code>tsuper</code>
+                        	    in the context of role constructors.
+                        				
+                     </p>
+                     <p><code>tsuper</code> can only be used to invoke a corresponding
+                        	    version of the enclosing method or constructor, i.e., an expression
+                        		<code>tsuper.m()</code> may only occur within the method <code>m</code>
+                        		with both methods having the same signature
+                        	    (see <a href="s2.3.2.b.html"
+                           title="&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting"
+                           class="sect">&sect;2.3.2.(b)</a> for an exception, where both methods have slightly different signatures).
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in team <code>T</code> 
+                        					overrides the implicitly inherited method <code>m()</code> from <code>S</code>. <code><strong>tsuper</strong>.m()</code> calls the overridden method <code>m()</code>
+                        					  from <code>S.R1</code> (line 13).
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.g">
+                     <h4 class="subsect">(g)&nbsp;<span class="title">Implicitly inheriting super-types</span></h4>
+                     <p>If a role class has an explicit super class (using <code>extends</code>)
+                        		this relation is inherited along implicit inheritance.
+                        				
+                     </p>
+                     <div class="codecomment">
+                        					In <a href="#l1.3.1-1" class="listing">Listing 1.3.1-1</a> the role <code>R1</code> in <code>T</code> has <code>T.R0</code> 
+                        					as its implicitly inherited super class, because the corresponding role in the super-team 
+                        					<code><strong>extends R0</strong></code> (line 3).
+                        				
+                     </div>
+                     <p>Overriding an implicitly inherited super class is governed by
+                        		<a href="#s1.3.2.b"
+                           title="&sect;1.3.2.(b)&nbsp;Inheriting and overriding the extends clause"
+                           class="sect">&sect;1.3.2.(b)</a>, below.<br />
+                        	    The list of implemented interfaces is merged along implicit
+                        		inheritance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.h">
+                     <h4 class="subsect">(h)&nbsp;<span class="title">Preserving visibility</span></h4>
+                     <p>A role class must provide at least as much access as the implicit super role,
+                        		or a compile-time error occurs (this is in analogy to <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227965"
+                           class="ext">JLS &sect;8.4.6.3</a>).
+                        		Access rights of methods overridden by implicit inheritance follow
+                        		the same rules as for normal overriding.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.i">
+                     <h4 class="subsect">(i)&nbsp;<span class="title">Dynamic binding of constructors</span></h4>
+                     <p>When creating a role instance using <code>new</code> not only the
+                        			type to instantiate is bound dynamically (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                           class="sect">&sect;1.3.1.(e)</a>), but also the constructor to
+                        			invoke is dynamically bound in accordance to the concrete
+                        			type.<br />
+                        			Within role constructors all <code>this(..)</code> and
+                        			<code>super(..)</code> calls are bound statically with respect to explicit inheritance
+                        			and dynamically with respect to implicit inheritance. This means the target role name is 
+                        			determined statically, but using that name the suitable role type is determined
+                        			using dynamic binding.
+                        			<br />
+                        			See also <a href="s2.5.a.html"
+                           title="&sect;2.5.(a)&nbsp;Using abstract classes for creation"
+                           class="sect">&sect;2.5.(a)</a> on using constructors of abstract role classes.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.j">
+                     <h4 class="subsect">(j)&nbsp;<span class="title">Overriding and compatibility</span></h4>
+                     <p>The rules of <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#228745"
+                           class="ext">JLS &sect;8.4.6</a> 
+                        			also apply to methods <em>and constructors</em> inherited via implicit inheritance.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.1.k">
+                     <h4 class="subsect">(k)&nbsp;<span class="title">Covariant return types</span></h4>
+                     <p>Given a team <code>T1</code> with two roles <code>R1</code> and <code>R2</code> where <code>R2</code> explicitly inherits from <code>R1</code>, both roles defining
+                        					a method <code>m</code> returning some type <code>A</code>.
+                        				   Given also a sub-team of <code>T1</code>, <code>T2</code>, where <code>T2.R1</code> overrides <code>m</code> with a covariant return type <code>B</code>
+                        				   	(sub-type of <code>A</code>):
+                        				
+                     </p>
+                     <div class="listing plain"><pre>    <b>public</b> <b>team</b> <b>class</b> T1 {
+       <b>protected</b> <b>abstract</b> <b>class</b> R1 {
+          <b>abstract</b> A m();
+       }
+       <b>protected</b> <b>class</b> R2 <b>extends</b> R1 {
+          A m() { <b>return</b> <b>new</b> A(); }
+       }
+    }
+    <b>public</b> <b>team</b> <b>class</b> T2 <b>extends</b> T1 {
+       <b>protected</b> <b>class</b> R1 {
+          @Override B m() { <b>return</b> <b>new</b> B(); } <span class="error">// this declaration renders <b>class</b> T2.R2 illegal</span>
+       }
+    }</pre></div>
+                     <p>
+                        				   In this situation role <code>T2.R2</code> will be illegal unless also overriding <code>m</code> with a return type that is at least <code>B</code>.
+                        				   Note, that the actual error occurs at the implicitly inherited method <code>T2.R2.m</code> which is not visible in the source code,
+                        				   even <code>T2.R2</code> need not be mentioned explicitly in the source code.
+                        				   A compiler should flag this as an imcompatibility at the team level, because a team must specialize inherited roles
+                        in a consistent way.
+                        				
+                     </p>
+                  </div>
+                  <h5 class="listing">Example code (Teams and Roles):</h5>
+                  <div class="listing example frame" id="l1.3.1-3">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    String name;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <b>public</b> MyRole (String n) { name = n; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    <b>public</b> <b>void</b> print() { System.out.println("id="+name); }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  <b>protected</b> MyRole getRole() { <b>return</b> <b>new</b> MyRole("Joe"); }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="listing example frame" id="l1.3.1-4">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">10</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">11</td>
+                           <td><pre>  <b>protected</b> <b>class</b> MyRole {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">12</td>
+                           <td><pre>    <b>int</b> age;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">13</td>
+                           <td><pre>    <b>public</b> <b>void</b> setAge(<b>int</b> a) { age = a; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">14</td>
+                           <td><pre>    <b>public</b> <b>void</b> print() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">15</td>
+                           <td><pre>      tsuper.print();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">16</td>
+                           <td><pre>      System.out.println("age="+age);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">17</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">18</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">19</td>
+                           <td><pre>  <b>public</b> <b>void</b> doit() {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">20</td>
+                           <td><pre>    MyRole r = getRole();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">21</td>
+                           <td><pre>    r.setAge(27);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">22</td>
+                           <td><pre>    r.print();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">23</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">24</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">25</td>
+                           <td><pre>...</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">26</td>
+                           <td><pre>MySubTeam myTeam = <b>new</b> MySubTeam();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">27</td>
+                           <td><pre>myTeam.doit();</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <h5 class="listing">Program output</h5>
+                  <div class="listing example frame"><pre>id=Joe
+age=27</pre></div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>According to <a href="#s1.3"
+                              title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                              class="sect">&sect;1.3</a>, <code>MyTeamA</code> implements
+                           	<code>ITeam</code> (line 1).
+                        </li>
+                        <li>An implicit role inheritance is created for
+                           	<code>MySubTeam.MyRole</code> (<a href="#s1.3.1.c"
+                              title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                              class="sect">&sect;1.3.1.(c)</a>; line&nbsp;11).<br />
+                           	If we visualize this special inheritance using a fictitious keyword
+                           	<code>overrides</code> the compiler would see a declaration:
+                           	
+                           <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <em>overrides MyTeamA.MyRole</em> { ... }</pre></div>
+                        </li>
+                        <li>Invoking <code>getRole()</code> on <code>myTeam</code> (line&nbsp;27, 20)
+	creates an instance of <code>MySubTeam.MyRole</code> because the
+                           	acquired role <code>MyTeamA.MyRole</code> is overridden by
+                           	<code>MySubTeam.MyRole</code>
+                           	following the rules of implicit inheritance (cf. <a href="#s1.3.1.e" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                              class="sect">&sect;1.3.1.(e)</a>).
+                           					 
+                        </li>
+                        <li>Overriding of role methods and access to inherited features works as usual.
+                           					
+                        </li>
+                        <li>As an example for <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> see the call <code>tsuper.print()</code>
+	(line&nbsp;15), which selects the implementation of <code>MyTeamA.MyRole.print</code>.
+                           						
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s1.3.2">
+                  <h3 class="sect">&sect;1.3.2&nbsp;Regular role inheritance<span class="toplink"><a href="#s1.3">&uarr;&nbsp;&sect;1.3</a></span></h3>
+                  <p>In addition to implicit inheritance, roles may also inherit using
+                     	the standard Java keyword <code>extends</code>. These restrictions apply:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s1.3.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Super-class restrictions</span></h4>
+                     <p>If the super-class of a role is again a role it must be a direct role of
+                        			an enclosing team
+                        			This rule is simply enforced by disallowing type anchors in the
+                        			<code>extends</code> clause
+                        			(see <a href="#s1.2.2.g" title="&sect;1.2.2.(g)&nbsp;Legal contexts" class="sect">&sect;1.2.2.(g)</a>).
+                        			As an effect, the super-class may never be more deeply nested than the sub-class.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Inheriting and overriding the extends clause</span></h4>
+                     <p>If a role overrides another role by implicit inheritance, it may
+                        			change the inherited <code>extends</code> clause
+                        			(see <a href="#s1.3.1.g"
+                           title="&sect;1.3.1.(g)&nbsp;Implicitly inheriting super-types"
+                           class="sect">&sect;1.3.1.(g)</a> above) only if the new super-class
+                        			is a sub-class of the class in the overridden extends clause.
+                        			I.e., an implicit sub-role may <em>specialize</em> the extends clause of its
+                        			implicit super-role.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Constructors and overridden 'extends' </span></h4>
+                     <p>Each constructor of a role class that overrides the extends clause of its
+                        		  implicit super-role must invoke a constructor of this newly introduced
+                        		  explicit super-class. Thus it may not use a <code>tsuper</code> constructor
+                        		  (see <a href="s2.4.2.html"
+                           title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                           class="sect">&sect;2.4.2</a>).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Adding implemented interfaces</span></h4>
+                     <p><code>implements</code> declarations are additive, i.e., an implicit
+                        			sub-role may add more interfaces but has to implement all interfaces of
+                        			its implicit super-role, too.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s1.3.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Visibility of inherited methods</span></h4>
+                     <p>
+                        					When a role inherits non-public methods from a regular class (as its super class),
+                        					these methods are considered as private for the role, i.e., they can only be
+                        					accessed in an unqualified method call <code>m()</code> using the implicit receiver <code>this</code>.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.4">
+               <h2 class="sect">&sect;1.4&nbsp;Name clashes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>OT/J restricts Java with respect to handling of conflicting names.
+                  		
+               </p>
+               <div class="subsect depth3" id="s1.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Names of role classes</span></h4>
+                  <p>A role class may not have the same name as a method or field of
+                     			its enclosing team. A role class may not shadow another class that is visible in the scope of the enclosing team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Names of role methods and fields</span></h4>
+                  <p>Along implicit inheritance, the names of methods or fields may
+                     				not hide, shadow or obscure any previously visible name.<br />
+                     				(see JLS <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                        class="ext">&sect;8.3</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#227928"
+                        class="ext">&sect;8.4.6.2</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                        class="ext">&sect;8.5</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#78642"
+                        class="ext">&sect;9.3</a>,
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#252566"
+                        class="ext">&sect;9.5</a> (hiding),
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#34133"
+                        class="ext">&sect;6.3.1</a> (shadowing),
+                     				<a href="http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#104058"
+                        class="ext">&sect;6.3.2</a> (obscuring).
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s1.5">
+               <h2 class="sect">&sect;1.5&nbsp;Team and role nesting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;1</a></span></h2>
+               <p>Multi-level nesting of classes is restricted only by the following rules.
+                  		
+               </p>
+               <h5 class="listing">Example code (Nesting):</h5>
+               <div class="listing example frame" id="l1.5">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> SuperOuter {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>      Runnable foo() { <b>return</b> null; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> <b>extends</b> <strong>RoleAndTeam</strong> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>      Runnable foo() { throw <b>new</b> RuntimeException(); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> OuterTeam <b>extends</b> SuperOuter {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeam</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>      Runnable foo() {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>        <b>class</b> Local {};</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>        <b>return</b> <b>new</b> Runnable() { <span class="comment">// anonymous class definition</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>          <b>public</b> <b>void</b> run() {}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>        };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>      }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>      <span class="comment">// <span class="error">class IllegalMember {}</span></span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">24</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">25</td>
+                        <td><pre>  <b>public</b> <em><b>team</b> <b>class</b> RoleAndTeamSub</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">26</td>
+                        <td><pre>    <b>protected</b> <b>class</b> InnerRole {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">27</td>
+                        <td><pre>      Runnable foo() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">28</td>
+                        <td><pre>        <em>RoleAndTeamSub.tsuper</em>.foo();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">29</td>
+                        <td><pre>        <b>return</b> <em>OuterTeam.tsuper</em>.foo();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">30</td>
+                        <td><pre>      };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">31</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">32</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">33</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="subsect depth3" id="s1.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Nested teams</span></h4>
+                  <p>If a role class is also marked using the <code>team</code> modifier,
+                     			it may contain roles at the next level of nesting.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <ul>
+                        <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) class <code>RoleAndTeam</code> starting in line 14
+                           			is a role of <code>OuterTeam</code> and at the same time a
+                           			team containing a further role <code>InnerRole</code></li>
+                     </ul>
+                  </div>
+                  <p>Such a hybrid role-and-team has all properties of both kinds of classes.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Nested classes of roles</span></h4>
+                  <p>A regular role class (ie., not marked as <code>team</code>, see above)
+                     			may contain local types (see <a href="http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#247766"
+                        class="ext">JLS &sect;14.3</a>
+                     			 - in the example: class <code>Local</code>), anonymous types
+                     			(<a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#252986"
+                        class="ext">JLS &sect;15.9.5</a>
+                     			 - in the example: class defined in lines 18-20)
+                     			but no member types (<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#246026"
+                        class="ext">JLS &sect;8.5</a>
+                     			 - in the example: illegal class
+                     			<code>IllegalMember</code>).
+                     			<br />
+                     			The effect is, that nested types of a regular role cannot be
+                     			used outside the scope of their enclosing role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Prohibition of cycles</span></h4>
+                  <p>A nested team may not extend its own enclosing team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Prohibition of name clashes</span></h4>
+                  <p>A nested team may inherit roles from multiple sources: its explicit super team
+                     and any of its implicit super classes (roles) from different levels of nesting.
+                     If from different sources a team inherits two or more roles of the same name
+                     that are not related by implicit inheritance, this is an illegal name clash.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s1.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Precedence among different supers</span></h4>
+                  <p>If a role inherits the same feature from several super roles (super and tsuper), 
+                     			an implicitly inherited version always overrides any explicitly inherited feature. <br />
+                     		    Also implicit inheritance alone may produce several candidate methods inherited by a role class. 
+                     		    This is a result of team-nesting where each level of nesting may add one more tsuper role. 
+                     		    In that case inner team inheritance has precedence over outer team inheritance.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <table>
+                        <colgroup span="1">
+                           <col align="left" span="1" />
+                           <col align="center" span="1" />
+                        </colgroup>
+                        <tr>
+                           <td valign="top" rowspan="1" colspan="1">
+                              <p>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) role <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> has two direct tsuper roles: <code class="small">OuterTeam.RoleAndTeam.InnerRole</code>&nbsp;and <code class="small">SuperOuter.RoleAndTeamSub.InnerRole</code>. Without the method <code>foo</code> defined in lines 27-30, the enclosing class <code class="small">OuterTeam.RoleAndTeamSub.InnerRole</code> would inherit the method <code>foo</code> defined in line 16, because the inner inheritance between <code>RoleAndTeamSub</code> and <code>RoleAndTeam</code> binds stronger than the outer inheritance between <code>OuterTeam</code> and <code>SuperOuter</code>.
+                              </p>
+                           </td>
+                           <td rowspan="1" colspan="1"><img src="../images/team_nesting_hor.png" alt="Example diagram team nesting" /></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s1.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Qualified tsuper</span></h4>
+                  <p>A role in a nested team may qualify the keyword <code>tsuper</code> (see <a href="#s1.3.1.f" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a> above) by a type name 
+                     			in order to select among different method version inherited from different implicit super classes. A term <code>OuterTeam.tsuper</code> evaluates 
+                     			to the super-class, say <code>SuperOuter</code>, of an enclosing team "<code>OuterTeam</code>". A method call <code>OuterTeam.tsuper.m()</code> 
+                     			evaluates to the method version within <code>SuperOuter</code> that best corresponds to the current method containing the tsuper-call.
+                     			
+                  </p>
+                  <div class="codecomment">
+                     <ul>
+                        <li>In the above example (<a href="#l1.5" class="listing">Listing 1.5</a>) line 28 is identical to an unqualified tsuper-call
+                        </li>
+                        <li>Line 29 selects a corresponding method from the context of <code>SuperOuter</code> resolving to <code>SuperOuter.RoleAndTeamSub.InnerRole.foo()</code></li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="aux" id="aux1.1">
+               <h4 class="aux">Language implementation:<span class="toplink"><a href="#s1">&uarr;&nbsp;&sect;1</a></span></h4>
+               <p>Role acquisition and implicit inheritance can be implemented in at least two ways.
+                  		
+               </p>
+               <p><strong>Virtual classes:</strong> Each role class is an overridable feature of
+                  its enclosing team. Role classes are resolved by dynamic binding
+                  with respect to the enclosing team instance. This implementation
+                  requires multiple-inheritance in order to also allow regular
+                  inheritance between roles of the same team. <code>super</code>
+                  and <code>tsuper</code>	select parent versions of a method along
+                  the two dimensions of inheritance.
+                  		
+               </p>
+               <p><strong>Copy inheritance:</strong> Role acquisition from a super-team has the effect
+                  of copying a role definition <code>T.R</code> yielding a new
+                  role <code>Tsub.R</code>. All role applications <code>Rx</code>
+                  in the role copy refer to <code>Tsub.Rx</code>. Implicit role
+                  inheritance extends a role copy in-place. Only the <code>tsuper</code>
+                  construct allows to access the previous version of a method
+                  (i.e. before in-place overriding).
+                  		
+               </p>
+            </div>
+            <div class="aux" id="aux1.2">
+               <h4 class="aux">References:<span class="toplink"><a href="#s1">&uarr;&nbsp;&sect;1</a></span></h4>
+               <p id="fn1-virtual-classes">[1] Ole Lehrmann Madsen and Birger M&oslash;ller-Pedersen. <em>Virtual classes: A powerful mechanism in object-oriented programming</em>. In Proceedings OOPSLA 89, ACM SIGPLAN Notices, volume 24, 10, pages 397-406, October 1989.
+                  
+               </p>
+               <p id="fn2-family-polymorphism">[2] Erik Ernst. <em>Family Polymorphism.</em> In Proceedings ECOOP 2001, LNCS 2072, pages 303-326, Springer, 2001.
+                  
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s0.html" rel="prev">&lt;&lt;&nbsp;&sect;0&nbsp;About this Document</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.html" rel="next">&sect;2&nbsp;Role Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.1.html
new file mode 100644
index 0000000..f1e0d9e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.1.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(f)&nbsp;Effect on garbage collection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.html" rel="next">&sect;2.1.2&nbsp;Legal base classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="sect depth3" id="s2.1.1">
+            <h3 class="sect">&sect;2.1.1&nbsp;Binding interfaces</h3>
+            <p>Role base bindings may involve classes and/or interfaces.
+               	An interface defined as a member of a team is a role interface and may therefore
+               	have a <code>playedBy</code> clause. Also the type mentioned after the
+               	<code>playedBy</code> keyword may be an interface.
+               			
+            </p>
+            <div class="note">
+               <h5>Implementation limitation:</h5>
+               				The language implementation as of OTDT version 1.0.<i>X</i> cannot yet bind 
+               				a role class to a base interface, but this restriction will go in the future.
+               			
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(f)&nbsp;Effect on garbage collection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.html" rel="next">&sect;2.1.2&nbsp;Legal base classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.a.html
new file mode 100644
index 0000000..6411743
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.a.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.b.html" rel="next">&sect;2.1.2.(b)&nbsp;No cycles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="subsect depth4" id="s2.1.2.a">
+            <h4 class="subsect">&sect;2.1.2.(a)&nbsp;<span class="title">No role of the same team</span></h4>
+            <p>The base class of any role class must not be a role of the same team.
+               			<br />
+               			It is also not allowed to declare a role class of the same name
+               			as a base class bound to this or another role of the enclosing team,
+               			if that base class is given with its simple name and resolved using a regular import.
+               			Put differently, a base class mentioned after <code>playedBy</code>
+               			may not be <em>shadowed</em> by any role class of the enclosing team.
+               			<br /><em>Base imports</em> as defined below (<a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>) relax this rule by 
+               			allowing to import a class as a base class only. In that case no shadowing occurs since the scopes for 
+               			base classes and roles are disjoint.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.b.html" rel="next">&sect;2.1.2.(b)&nbsp;No cycles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.b.html
new file mode 100644
index 0000000..3f1d702
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.b.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(a)&nbsp;No role of the same team</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.c.html" rel="next">&sect;2.1.2.(c)&nbsp;Base class decapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="subsect depth4" id="s2.1.2.b">
+            <h4 class="subsect">&sect;2.1.2.(b)&nbsp;<span class="title">No cycles</span></h4>
+            <p>The base class mentioned after <code>playedBy</code> may not be
+               an enclosing type (at any depth) of the role class being defined.
+               <br />
+               This rule prohibits the creation of cycles where the base instance of
+               a given role <code>R</code> contains roles of the same type <code>R</code>.
+               <br />
+               More generally any sequence of classes <code>C<sub>1</sub>, C<sub>2</sub>, .. C<sub>n</sub></code>
+               were each <code>C<sub>i+1</sub></code> is either a member or the base class of 
+               <code>C<sub>i</sub></code> and <code>C<sub>n</sub> = C<sub>1</sub></code> is forbidden.
+               <br />
+               Conversely, it is also prohibited to bind a role class to its own inner class.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(a)&nbsp;No role of the same team</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.c.html" rel="next">&sect;2.1.2.(c)&nbsp;Base class decapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.c.html
new file mode 100644
index 0000000..b9e34c9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.c.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(b)&nbsp;No cycles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.d.html" rel="next">&sect;2.1.2.(d)&nbsp;Base imports&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="subsect depth4" id="s2.1.2.c">
+            <h4 class="subsect">&sect;2.1.2.(c)&nbsp;<span class="title">Base class decapsulation</span></h4>
+            <p>If a base class referenced after <code>playedBy</code> exists but is not visible under normal visibility rules of Java, 
+               				this restriction may be overridden. This concept is called <strong>decapsulation</strong>, i.e., the opposite of encapsulation 
+               				(see also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                  class="sect">&sect;3.4</a>). A compiler should signal any occurrence of base class decapsulation. If a compiler supports to 
+               				configure warnings this may be used to let the user choose to (a) ignore base class decapsulation, (b) treat it as a warning
+               or even 
+               				(c) treat it as an error.
+               
+            </p>
+            <p>
+               Binding to a <code>final</code> base class is also considered as decapsulation, since a <code>playedBy</code> relationship has
+               powers similar to an <code>extends</code> relationship, which is prohibited by marking a class as <code>final</code>.
+               
+            </p>
+            <p>
+               Decapsulation is not allowed if the base class is a confined role (see <a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a>).
+               
+            </p>
+            <p>
+               Within the current role a decapsulated base class can be mentioned in the right-hand-side of any method binding 
+               (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout (&sect;3)</a> or <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>). Also arguments in these positions are allowed to mention the decapsulated base class:
+               
+            </p>
+            <ul>
+               <li>the first argument of one of the role's constructors (see <a href="s2.4.1.html"
+                     title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                     class="sect">lifting constructor (&sect;2.4.1)</a>).
+               </li>
+               <li>the base side of an argument with declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">declared lifting (&sect;2.3.2)</a>).
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(b)&nbsp;No cycles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.d.html" rel="next">&sect;2.1.2.(d)&nbsp;Base imports&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.d.html
new file mode 100644
index 0000000..a69fa1d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.d.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(c)&nbsp;Base class decapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.e.html" rel="next">&sect;2.1.2.(e)&nbsp;No free type parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="subsect depth4" id="s2.1.2.d">
+            <h4 class="subsect">&sect;2.1.2.(d)&nbsp;<span class="title">Base imports</span></h4>
+            <p>If the main type in a file denotes a team, the modifier <code>base</code> can be applied to an import in order to specify that this type 
+               					should be imported for application as a base type only. Example:
+               				
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><em><b>import</b> base</em> some.pack.MyBase;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <span class="comment">// simple name resolves to imported class:</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>protected</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> { } </pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  <span class="error"><em>MyBase</em> illegalDeclaration;</span> <span class="comment">// base import does not apply for this position</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>Types imported by a base import can only be used in the same positions where also base class decapsulation (<a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                  class="sect">&sect;2.1.2.(c)</a>) 
+               			is applicable.<br />
+               			It is recommended that a type mentioned after the keyword <code>playedBy</code> is always imported with the <code>base</code> modifier, otherwise the compiler 
+               			will give a warning.<br />
+               	Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash
+               with normally visible names 
+               	(in contrast to <a href="s1.4.html" title="&sect;1.4&nbsp;Name clashes" class="sect">&sect;1.4</a>). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(c)&nbsp;Base class decapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.2.e.html" rel="next">&sect;2.1.2.(e)&nbsp;No free type parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.e.html
new file mode 100644
index 0000000..ee60d4f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.e.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(d)&nbsp;Base imports</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+         <div class="subsect depth4" id="s2.1.2.e">
+            <h4 class="subsect">&sect;2.1.2.(e)&nbsp;<span class="title">No free type parameters</span></h4>
+            <p>
+               				Neither the role class nor the base class in a playedBy binding must have any <em>free type parameters</em>.
+               				If both classes are specified with a type parameter of the same name, both parameters are identified
+               				and are not considered as <em>free</em>.
+               				
+            </p>
+            <p>
+               				From this follows that a role class cannot have more type parameters than its base.
+               				Conversely, only one situation exists where a base class can have more type parameters than a role class
+               				bound to it: if the role class has no type parameters a generic base class can be bound using
+               				the base class's raw type, i.e., without specifying type arguments.
+               				
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               					The information from the <code>playedBy</code> declaration is used at run-time 
+               					to associate role instances to base instances.
+               					Specifying a base class with free type parameters would imply that only such base instances
+               					are decorated by a role whose type is conform to the specified parameterized class.
+               					However, type arguments are not available at run-time, thus the run-time environment
+               					is not able to decide which base instances should have a role and which should not.
+               					This is due to the design of generics in Java which are realized by erasure.
+               				
+            </div>
+            <p>The following example shows how generics can be used in various positions. Note, that some of the concepts used in the example
+               will be explained in later sections.
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> ValueTrafo<em>&lt;T&gt;</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <em>T</em> transform(<em>T</em> val) throws Exception { /* ... */ }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> TransformTeam {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    <b>protected</b> <b>class</b> SafeTrafo<em>&lt;U&gt;</em> <b>playedBy</b> ValueTrafo<em>&lt;U&gt;</em> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>        <em>U</em> transform(<em>U</em> v) <b>-&gt;</b> <em>U</em> transform(<em>U</em> val); </pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>        <b>protected</b> <em>U</em> safeTransform(<em>U</em> v) {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>            <b>try</b> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>            	<b>return</b> transform(v);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>            } <b>catch</b> (Exception e) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>            	<b>return</b> v;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>            }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>        }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>    <em>&lt;V&gt; V</em> perform(ValueTrafo<em>&lt;V&gt;</em> <b>as</b> SafeTrafo<em>&lt;V&gt;</em> trafo, <em>V</em> value) {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>        <b>return</b> trafo.safeTransform(value);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>    } </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre>...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>ValueTrafo<em>&lt;String&gt;</em> trafo = <b>new</b> ValueTrafo<em>&lt;String&gt;</em>();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">21</td>
+                     <td><pre>TransformTeam safeTrafo = <b>new</b> TransformTeam();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">22</td>
+                     <td><pre>String s = safeTrafo.perform(trafo, "Testing");</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">23</td>
+                     <td><pre></pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Explanation</h5>
+               <ul>
+                  <li>Line 5 shows a role with type parameter <code>U</code> where the type parameter is identified with the
+                     					    corresponding type parameter of the role's base class (which is originally declared as <code>T</code> in line 1.
+                  </li>
+                  <li>Line 6 shows a callout binding (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>) which mappes a base method to a corresponding role method
+                     						while maintaining the flexible typing.
+                  </li>
+                  <li>The regular method in lines 7-13 just passes values of type <code>U</code> around.
+                  </li>
+                  <li>The generic method in line 15 ff. uses declared lifting (<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) to obtain a role for a given base object.
+                     						The method has no knowledge about the concrete type arguments of either role nor base, but works under the guarantee
+                     						that both type arguments will be the same for any single invocation.
+                  </li>
+                  <li>Lines 20 ff. finally create instances of base and team and invoke the behavior thereby instantiating type parameters to <code>String</code>.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.2.(d)&nbsp;Base imports</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.2.html" rel="section">&sect;2.1.2&nbsp;Legal base classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.html
new file mode 100644
index 0000000..bf02ef9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.2.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.1&nbsp;Binding interfaces</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="sect depth3" id="s2.1.2">
+            <h3 class="sect">&sect;2.1.2&nbsp;Legal base classes</h3>
+            <p>Generally, the base class mentioned after <code>playedBy</code> must be
+               		visible in the enclosing scope (see <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                  class="sect">below (&sect;2.1.2.(c))</a> for an exception).
+               Normally, this scope is defined just by the imports of the enclosing team.
+               For role files (<a href="s1.2.5.b.html" title="&sect;1.2.5.(b)&nbsp;Role files" class="sect">&sect;1.2.5.(b)</a>)
+               also additional imports in the role file are considered.
+               <br /><a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a> below defines how imports can be constrained so that certain types 
+               can be used as base types, only.
+               			
+            </p>
+            <div class="subsect depth4" id="s2.1.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">No role of the same team</span></h4>
+               <p>The base class of any role class must not be a role of the same team.
+                  			<br />
+                  			It is also not allowed to declare a role class of the same name
+                  			as a base class bound to this or another role of the enclosing team,
+                  			if that base class is given with its simple name and resolved using a regular import.
+                  			Put differently, a base class mentioned after <code>playedBy</code>
+                  			may not be <em>shadowed</em> by any role class of the enclosing team.
+                  			<br /><em>Base imports</em> as defined below (<a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>) relax this rule by 
+                  			allowing to import a class as a base class only. In that case no shadowing occurs since the scopes for 
+                  			base classes and roles are disjoint.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.1.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">No cycles</span></h4>
+               <p>The base class mentioned after <code>playedBy</code> may not be
+                  an enclosing type (at any depth) of the role class being defined.
+                  <br />
+                  This rule prohibits the creation of cycles where the base instance of
+                  a given role <code>R</code> contains roles of the same type <code>R</code>.
+                  <br />
+                  More generally any sequence of classes <code>C<sub>1</sub>, C<sub>2</sub>, .. C<sub>n</sub></code>
+                  were each <code>C<sub>i+1</sub></code> is either a member or the base class of 
+                  <code>C<sub>i</sub></code> and <code>C<sub>n</sub> = C<sub>1</sub></code> is forbidden.
+                  <br />
+                  Conversely, it is also prohibited to bind a role class to its own inner class.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.1.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Base class decapsulation</span></h4>
+               <p>If a base class referenced after <code>playedBy</code> exists but is not visible under normal visibility rules of Java, 
+                  				this restriction may be overridden. This concept is called <strong>decapsulation</strong>, i.e., the opposite of encapsulation 
+                  				(see also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">&sect;3.4</a>). A compiler should signal any occurrence of base class decapsulation. If a compiler supports to 
+                  				configure warnings this may be used to let the user choose to (a) ignore base class decapsulation, (b) treat it as a warning
+                  or even 
+                  				(c) treat it as an error.
+                  
+               </p>
+               <p>
+                  Binding to a <code>final</code> base class is also considered as decapsulation, since a <code>playedBy</code> relationship has
+                  powers similar to an <code>extends</code> relationship, which is prohibited by marking a class as <code>final</code>.
+                  
+               </p>
+               <p>
+                  Decapsulation is not allowed if the base class is a confined role (see <a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a>).
+                  
+               </p>
+               <p>
+                  Within the current role a decapsulated base class can be mentioned in the right-hand-side of any method binding 
+                  (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout (&sect;3)</a> or <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>). Also arguments in these positions are allowed to mention the decapsulated base class:
+                  
+               </p>
+               <ul>
+                  <li>the first argument of one of the role's constructors (see <a href="s2.4.1.html"
+                        title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                        class="sect">lifting constructor (&sect;2.4.1)</a>).
+                  </li>
+                  <li>the base side of an argument with declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">declared lifting (&sect;2.3.2)</a>).
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth4" id="s2.1.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Base imports</span></h4>
+               <p>If the main type in a file denotes a team, the modifier <code>base</code> can be applied to an import in order to specify that this type 
+                  					should be imported for application as a base type only. Example:
+                  				
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><em><b>import</b> base</em> some.pack.MyBase;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <span class="comment">// simple name resolves to imported class:</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>protected</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> { } </pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  <span class="error"><em>MyBase</em> illegalDeclaration;</span> <span class="comment">// base import does not apply for this position</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>Types imported by a base import can only be used in the same positions where also base class decapsulation (<a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">&sect;2.1.2.(c)</a>) 
+                  			is applicable.<br />
+                  			It is recommended that a type mentioned after the keyword <code>playedBy</code> is always imported with the <code>base</code> modifier, otherwise the compiler 
+                  			will give a warning.<br />
+                  	Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash
+                  with normally visible names 
+                  	(in contrast to <a href="s1.4.html" title="&sect;1.4&nbsp;Name clashes" class="sect">&sect;1.4</a>). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.1.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">No free type parameters</span></h4>
+               <p>
+                  				Neither the role class nor the base class in a playedBy binding must have any <em>free type parameters</em>.
+                  				If both classes are specified with a type parameter of the same name, both parameters are identified
+                  				and are not considered as <em>free</em>.
+                  				
+               </p>
+               <p>
+                  				From this follows that a role class cannot have more type parameters than its base.
+                  				Conversely, only one situation exists where a base class can have more type parameters than a role class
+                  				bound to it: if the role class has no type parameters a generic base class can be bound using
+                  				the base class's raw type, i.e., without specifying type arguments.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  					The information from the <code>playedBy</code> declaration is used at run-time 
+                  					to associate role instances to base instances.
+                  					Specifying a base class with free type parameters would imply that only such base instances
+                  					are decorated by a role whose type is conform to the specified parameterized class.
+                  					However, type arguments are not available at run-time, thus the run-time environment
+                  					is not able to decide which base instances should have a role and which should not.
+                  					This is due to the design of generics in Java which are realized by erasure.
+                  				
+               </div>
+               <p>The following example shows how generics can be used in various positions. Note, that some of the concepts used in the example
+                  will be explained in later sections.
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> ValueTrafo<em>&lt;T&gt;</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <em>T</em> transform(<em>T</em> val) throws Exception { /* ... */ }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> TransformTeam {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>protected</b> <b>class</b> SafeTrafo<em>&lt;U&gt;</em> <b>playedBy</b> ValueTrafo<em>&lt;U&gt;</em> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>        <em>U</em> transform(<em>U</em> v) <b>-&gt;</b> <em>U</em> transform(<em>U</em> val); </pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>        <b>protected</b> <em>U</em> safeTransform(<em>U</em> v) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>            <b>try</b> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>            	<b>return</b> transform(v);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>            } <b>catch</b> (Exception e) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>            	<b>return</b> v;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>            }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>    <em>&lt;V&gt; V</em> perform(ValueTrafo<em>&lt;V&gt;</em> <b>as</b> SafeTrafo<em>&lt;V&gt;</em> trafo, <em>V</em> value) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>        <b>return</b> trafo.safeTransform(value);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>    } </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>ValueTrafo<em>&lt;String&gt;</em> trafo = <b>new</b> ValueTrafo<em>&lt;String&gt;</em>();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>TransformTeam safeTrafo = <b>new</b> TransformTeam();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>String s = safeTrafo.perform(trafo, "Testing");</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre></pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Explanation</h5>
+                  <ul>
+                     <li>Line 5 shows a role with type parameter <code>U</code> where the type parameter is identified with the
+                        					    corresponding type parameter of the role's base class (which is originally declared as <code>T</code> in line 1.
+                     </li>
+                     <li>Line 6 shows a callout binding (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>) which mappes a base method to a corresponding role method
+                        						while maintaining the flexible typing.
+                     </li>
+                     <li>The regular method in lines 7-13 just passes values of type <code>U</code> around.
+                     </li>
+                     <li>The generic method in line 15 ff. uses declared lifting (<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) to obtain a role for a given base object.
+                        						The method has no knowledge about the concrete type arguments of either role nor base, but works under the guarantee
+                        						that both type arguments will be the same for any single invocation.
+                     </li>
+                     <li>Lines 20 ff. finally create instances of base and team and invoke the behavior thereby instantiating type parameters to <code>String</code>.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.1&nbsp;Binding interfaces</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.a.html
new file mode 100644
index 0000000..ff7d306
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.a.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.b.html" rel="next">&sect;2.1.(b)&nbsp;Inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.a">
+            <h4 class="subsect">&sect;2.1.(a)&nbsp;<span class="title">Role-base binding</span></h4>
+            <p>Roles are bound to a base class by the <code>playedBy</code> keyword.
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    ...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.b.html" rel="next">&sect;2.1.(b)&nbsp;Inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.b.html
new file mode 100644
index 0000000..0e76e9f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.b.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(a)&nbsp;Role-base binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.c.html" rel="next">&sect;2.1.(c)&nbsp;Covariant refinement&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.b">
+            <h4 class="subsect">&sect;2.1.(b)&nbsp;<span class="title">Inheritance</span></h4>
+            <p>The <code>playedBy</code> relation is inherited along
+               		explicit and implicit (<a href="s1.3.1.c.html"
+                  title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                  class="sect">&sect;1.3.1.(c)</a>)
+               	    role inheritance.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(a)&nbsp;Role-base binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.c.html" rel="next">&sect;2.1.(c)&nbsp;Covariant refinement&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.c.html
new file mode 100644
index 0000000..c9d89ad
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.c.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(b)&nbsp;Inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.d.html" rel="next">&sect;2.1.(d)&nbsp;No-variance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.c">
+            <h4 class="subsect">&sect;2.1.(c)&nbsp;<span class="title">Covariant refinement</span></h4>
+            <p>An <em>explicit</em> sub-role (sub-class using <code>extends</code>) 
+               		can refine the <code>playedBy</code> relation to a more 
+               		specific base class (this is the basis for 
+               		<a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">smart lifting (&sect;2.3.3)</a>).<br />
+               		If a role class inherits several <code>playedBy</code> relations from
+               		its super-class and its super-interfaces, there must be a most specific
+               		base-class among these relations, which is conform to all other base-classes.
+               		This most specific base-class is the base-class of the current role.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(b)&nbsp;Inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.d.html" rel="next">&sect;2.1.(d)&nbsp;No-variance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.d.html
new file mode 100644
index 0000000..8964b50
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.d.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(c)&nbsp;Covariant refinement</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.e.html" rel="next">&sect;2.1.(e)&nbsp;Use of playedBy bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.d">
+            <h4 class="subsect">&sect;2.1.(d)&nbsp;<span class="title">No-variance</span></h4>
+            <p>An <em>implicit</em> sub-role (according to <a href="s1.3.1.c.html"
+                  title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                  class="sect">&sect;1.3.1.(c)</a>)
+               		may only add a <code>playedBy</code> relation but never change an existing one.<br />
+               		Note however, that implicit inheritance may implicitly specialize an existing <code>playedBy</code> 
+               		relation (this advanced situation is illustrated in <a href="s2.7.d.html"
+                  title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                  class="sect">&sect;2.7.(d)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(c)&nbsp;Covariant refinement</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.e.html" rel="next">&sect;2.1.(e)&nbsp;Use of playedBy bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.e.html
new file mode 100644
index 0000000..3bc758b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.e.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(d)&nbsp;No-variance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.f.html" rel="next">&sect;2.1.(f)&nbsp;Effect on garbage collection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.e">
+            <h4 class="subsect">&sect;2.1.(e)&nbsp;<span class="title">Use of playedBy bindings</span></h4>
+            <p>The <code>playedBy</code> relation by itself has no effect
+               	    on the behavior of role and base objects.
+               	    It is, however, the precondition for translation polymorphism
+               	    (lowering: <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and lifting: <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+               	    and for method bindings (callout: <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a> and callin: <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(d)&nbsp;No-variance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.f.html" rel="next">&sect;2.1.(f)&nbsp;Effect on garbage collection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.f.html
new file mode 100644
index 0000000..a471bb5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.f.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(e)&nbsp;Use of playedBy bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.1.html" rel="next">&sect;2.1.1&nbsp;Binding interfaces&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+         <div class="subsect depth3" id="s2.1.f">
+            <h4 class="subsect">&sect;2.1.(f)&nbsp;<span class="title">Effect on garbage collection</span></h4>
+            <p>A role and its base object form one conceptual entity. The garbage collector will see a role
+               and its base object as linked in a bidirectional manner. As a result, a role cannot be
+               garbage collected if its base is still reachable and vice versa.
+               <br />
+               Internally a team manages its roles and corresponding bases using weak references.
+               When using one of the <code>getAllRoles(..)</code>
+               methods (see <a href="s6.1.a.html"
+                  title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                  class="sect">&sect;6.1.(a)</a>),
+               the result may be non-deterministic because these internal structures
+               may hold weak references to objects that will be collected by the next run of the
+               garbage collector. We advise clients of <code>getAllRoles(..)</code> to call
+               <code>System.gc()</code> prior to calling <code>getAllRoles(..)</code> in order
+               to ensure deterministic results.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1.(e)&nbsp;Use of playedBy bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.1.1.html" rel="next">&sect;2.1.1&nbsp;Binding interfaces&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.1.html" rel="section">&sect;2.1&nbsp;playedBy relation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.html
new file mode 100644
index 0000000..29ca5f5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.1.html
@@ -0,0 +1,420 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.html" rel="next">&sect;2.2&nbsp;Lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.1">
+            <h2 class="sect">&sect;2.1&nbsp;playedBy relation</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+            <div class="subsect depth3" id="s2.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Role-base binding</span></h4>
+               <p>Roles are bound to a base class by the <code>playedBy</code> keyword.
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s2.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Inheritance</span></h4>
+               <p>The <code>playedBy</code> relation is inherited along
+                  		explicit and implicit (<a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>)
+                  	    role inheritance.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Covariant refinement</span></h4>
+               <p>An <em>explicit</em> sub-role (sub-class using <code>extends</code>) 
+                  		can refine the <code>playedBy</code> relation to a more 
+                  		specific base class (this is the basis for 
+                  		<a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">smart lifting (&sect;2.3.3)</a>).<br />
+                  		If a role class inherits several <code>playedBy</code> relations from
+                  		its super-class and its super-interfaces, there must be a most specific
+                  		base-class among these relations, which is conform to all other base-classes.
+                  		This most specific base-class is the base-class of the current role.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">No-variance</span></h4>
+               <p>An <em>implicit</em> sub-role (according to <a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>)
+                  		may only add a <code>playedBy</code> relation but never change an existing one.<br />
+                  		Note however, that implicit inheritance may implicitly specialize an existing <code>playedBy</code> 
+                  		relation (this advanced situation is illustrated in <a href="s2.7.d.html"
+                     title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                     class="sect">&sect;2.7.(d)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.1.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Use of playedBy bindings</span></h4>
+               <p>The <code>playedBy</code> relation by itself has no effect
+                  	    on the behavior of role and base objects.
+                  	    It is, however, the precondition for translation polymorphism
+                  	    (lowering: <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and lifting: <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                  	    and for method bindings (callout: <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a> and callin: <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.1.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Effect on garbage collection</span></h4>
+               <p>A role and its base object form one conceptual entity. The garbage collector will see a role
+                  and its base object as linked in a bidirectional manner. As a result, a role cannot be
+                  garbage collected if its base is still reachable and vice versa.
+                  <br />
+                  Internally a team manages its roles and corresponding bases using weak references.
+                  When using one of the <code>getAllRoles(..)</code>
+                  methods (see <a href="s6.1.a.html"
+                     title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                     class="sect">&sect;6.1.(a)</a>),
+                  the result may be non-deterministic because these internal structures
+                  may hold weak references to objects that will be collected by the next run of the
+                  garbage collector. We advise clients of <code>getAllRoles(..)</code> to call
+                  <code>System.gc()</code> prior to calling <code>getAllRoles(..)</code> in order
+                  to ensure deterministic results.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s2.1.1">
+               <h3 class="sect">&sect;2.1.1&nbsp;Binding interfaces<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.1</a></span></h3>
+               <p>Role base bindings may involve classes and/or interfaces.
+                  	An interface defined as a member of a team is a role interface and may therefore
+                  	have a <code>playedBy</code> clause. Also the type mentioned after the
+                  	<code>playedBy</code> keyword may be an interface.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Implementation limitation:</h5>
+                  				The language implementation as of OTDT version 1.0.<i>X</i> cannot yet bind 
+                  				a role class to a base interface, but this restriction will go in the future.
+                  			
+               </div>
+            </div>
+            <div class="sect depth3" id="s2.1.2">
+               <h3 class="sect">&sect;2.1.2&nbsp;Legal base classes<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.1</a></span></h3>
+               <p>Generally, the base class mentioned after <code>playedBy</code> must be
+                  		visible in the enclosing scope (see <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">below (&sect;2.1.2.(c))</a> for an exception).
+                  Normally, this scope is defined just by the imports of the enclosing team.
+                  For role files (<a href="s1.2.5.b.html" title="&sect;1.2.5.(b)&nbsp;Role files" class="sect">&sect;1.2.5.(b)</a>)
+                  also additional imports in the role file are considered.
+                  <br /><a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a> below defines how imports can be constrained so that certain types 
+                  can be used as base types, only.
+                  			
+               </p>
+               <div class="subsect depth4" id="s2.1.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">No role of the same team</span></h4>
+                  <p>The base class of any role class must not be a role of the same team.
+                     			<br />
+                     			It is also not allowed to declare a role class of the same name
+                     			as a base class bound to this or another role of the enclosing team,
+                     			if that base class is given with its simple name and resolved using a regular import.
+                     			Put differently, a base class mentioned after <code>playedBy</code>
+                     			may not be <em>shadowed</em> by any role class of the enclosing team.
+                     			<br /><em>Base imports</em> as defined below (<a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>) relax this rule by 
+                     			allowing to import a class as a base class only. In that case no shadowing occurs since the scopes for 
+                     			base classes and roles are disjoint.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.1.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">No cycles</span></h4>
+                  <p>The base class mentioned after <code>playedBy</code> may not be
+                     an enclosing type (at any depth) of the role class being defined.
+                     <br />
+                     This rule prohibits the creation of cycles where the base instance of
+                     a given role <code>R</code> contains roles of the same type <code>R</code>.
+                     <br />
+                     More generally any sequence of classes <code>C<sub>1</sub>, C<sub>2</sub>, .. C<sub>n</sub></code>
+                     were each <code>C<sub>i+1</sub></code> is either a member or the base class of 
+                     <code>C<sub>i</sub></code> and <code>C<sub>n</sub> = C<sub>1</sub></code> is forbidden.
+                     <br />
+                     Conversely, it is also prohibited to bind a role class to its own inner class.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.1.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Base class decapsulation</span></h4>
+                  <p>If a base class referenced after <code>playedBy</code> exists but is not visible under normal visibility rules of Java, 
+                     				this restriction may be overridden. This concept is called <strong>decapsulation</strong>, i.e., the opposite of encapsulation 
+                     				(see also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">&sect;3.4</a>). A compiler should signal any occurrence of base class decapsulation. If a compiler supports to 
+                     				configure warnings this may be used to let the user choose to (a) ignore base class decapsulation, (b) treat it as a warning
+                     or even 
+                     				(c) treat it as an error.
+                     
+                  </p>
+                  <p>
+                     Binding to a <code>final</code> base class is also considered as decapsulation, since a <code>playedBy</code> relationship has
+                     powers similar to an <code>extends</code> relationship, which is prohibited by marking a class as <code>final</code>.
+                     
+                  </p>
+                  <p>
+                     Decapsulation is not allowed if the base class is a confined role (see <a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a>).
+                     
+                  </p>
+                  <p>
+                     Within the current role a decapsulated base class can be mentioned in the right-hand-side of any method binding 
+                     (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout (&sect;3)</a> or <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>). Also arguments in these positions are allowed to mention the decapsulated base class:
+                     
+                  </p>
+                  <ul>
+                     <li>the first argument of one of the role's constructors (see <a href="s2.4.1.html"
+                           title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                           class="sect">lifting constructor (&sect;2.4.1)</a>).
+                     </li>
+                     <li>the base side of an argument with declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">declared lifting (&sect;2.3.2)</a>).
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth4" id="s2.1.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Base imports</span></h4>
+                  <p>If the main type in a file denotes a team, the modifier <code>base</code> can be applied to an import in order to specify that this type 
+                     					should be imported for application as a base type only. Example:
+                     				
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><em><b>import</b> base</em> some.pack.MyBase;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <span class="comment">// simple name resolves to imported class:</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>protected</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> { } </pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  <span class="error"><em>MyBase</em> illegalDeclaration;</span> <span class="comment">// base import does not apply for this position</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>Types imported by a base import can only be used in the same positions where also base class decapsulation (<a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>) 
+                     			is applicable.<br />
+                     			It is recommended that a type mentioned after the keyword <code>playedBy</code> is always imported with the <code>base</code> modifier, otherwise the compiler 
+                     			will give a warning.<br />
+                     	Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash
+                     with normally visible names 
+                     	(in contrast to <a href="s1.4.html" title="&sect;1.4&nbsp;Name clashes" class="sect">&sect;1.4</a>). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.1.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">No free type parameters</span></h4>
+                  <p>
+                     				Neither the role class nor the base class in a playedBy binding must have any <em>free type parameters</em>.
+                     				If both classes are specified with a type parameter of the same name, both parameters are identified
+                     				and are not considered as <em>free</em>.
+                     				
+                  </p>
+                  <p>
+                     				From this follows that a role class cannot have more type parameters than its base.
+                     				Conversely, only one situation exists where a base class can have more type parameters than a role class
+                     				bound to it: if the role class has no type parameters a generic base class can be bound using
+                     				the base class's raw type, i.e., without specifying type arguments.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     					The information from the <code>playedBy</code> declaration is used at run-time 
+                     					to associate role instances to base instances.
+                     					Specifying a base class with free type parameters would imply that only such base instances
+                     					are decorated by a role whose type is conform to the specified parameterized class.
+                     					However, type arguments are not available at run-time, thus the run-time environment
+                     					is not able to decide which base instances should have a role and which should not.
+                     					This is due to the design of generics in Java which are realized by erasure.
+                     				
+                  </div>
+                  <p>The following example shows how generics can be used in various positions. Note, that some of the concepts used in the example
+                     will be explained in later sections.
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> ValueTrafo<em>&lt;T&gt;</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <em>T</em> transform(<em>T</em> val) throws Exception { /* ... */ }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> TransformTeam {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    <b>protected</b> <b>class</b> SafeTrafo<em>&lt;U&gt;</em> <b>playedBy</b> ValueTrafo<em>&lt;U&gt;</em> {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>        <em>U</em> transform(<em>U</em> v) <b>-&gt;</b> <em>U</em> transform(<em>U</em> val); </pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>        <b>protected</b> <em>U</em> safeTransform(<em>U</em> v) {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>            <b>try</b> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>            	<b>return</b> transform(v);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>            } <b>catch</b> (Exception e) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>            	<b>return</b> v;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>            }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>    <em>&lt;V&gt; V</em> perform(ValueTrafo<em>&lt;V&gt;</em> <b>as</b> SafeTrafo<em>&lt;V&gt;</em> trafo, <em>V</em> value) {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">16</td>
+                           <td><pre>        <b>return</b> trafo.safeTransform(value);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">17</td>
+                           <td><pre>    } </pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">18</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">19</td>
+                           <td><pre>...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">20</td>
+                           <td><pre>ValueTrafo<em>&lt;String&gt;</em> trafo = <b>new</b> ValueTrafo<em>&lt;String&gt;</em>();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">21</td>
+                           <td><pre>TransformTeam safeTrafo = <b>new</b> TransformTeam();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">22</td>
+                           <td><pre>String s = safeTrafo.perform(trafo, "Testing");</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">23</td>
+                           <td><pre></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Explanation</h5>
+                     <ul>
+                        <li>Line 5 shows a role with type parameter <code>U</code> where the type parameter is identified with the
+                           					    corresponding type parameter of the role's base class (which is originally declared as <code>T</code> in line 1.
+                        </li>
+                        <li>Line 6 shows a callout binding (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>) which mappes a base method to a corresponding role method
+                           						while maintaining the flexible typing.
+                        </li>
+                        <li>The regular method in lines 7-13 just passes values of type <code>U</code> around.
+                        </li>
+                        <li>The generic method in line 15 ff. uses declared lifting (<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) to obtain a role for a given base object.
+                           						The method has no knowledge about the concrete type arguments of either role nor base, but works under the guarantee
+                           						that both type arguments will be the same for any single invocation.
+                        </li>
+                        <li>Lines 20 ff. finally create instances of base and team and invoke the behavior thereby instantiating type parameters to <code>String</code>.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.html" rel="next">&sect;2.2&nbsp;Lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.a.html
new file mode 100644
index 0000000..3e6f592
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.b.html" rel="next">&sect;2.2.(b)&nbsp;Places of lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.a">
+            <h4 class="subsect">&sect;2.2.(a)&nbsp;<span class="title">Definition of lowering</span></h4>
+            <p>Retrieving the base object from a role object is called <strong>lowering</strong>.
+               		No other means exists for accessing the base reference.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.b.html" rel="next">&sect;2.2.(b)&nbsp;Places of lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.b.html
new file mode 100644
index 0000000..7a8ee20
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.b.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(a)&nbsp;Definition of lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.c.html" rel="next">&sect;2.2.(c)&nbsp;Typing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.b">
+            <h4 class="subsect">&sect;2.2.(b)&nbsp;<span class="title">Places of lowering</span></h4>
+            <p>The lowering translation is not meant to be invoked
+               		by client code, but <strong>implicit translations</strong> are inserted by
+               		the compiler at all places where a role type is provided while the
+               		corresponding base type (or a super type) was expected.<br />
+               		In other words: lowering translations are inserted by the compiler at
+               		all places in a program which would otherwise not be type correct
+               		and which using	lowering are statically type correct.
+               		This may concern:
+               			
+            </p>
+            <ul>
+               <li>the right hand side of an assignment wrt. the static type of the left hand side,</li>
+               <li>the argument values of a method or constructor call wrt. the static type of the corresponding formal parameter,</li>
+               <li>the return value of a method compared to the declared return type of the method.</li>
+               <li>a role parameter in a callout binding (<a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+               </li>
+               <li>or the return value in a callin binding (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+               </li>
+            </ul>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> <em>MyRole <b>playedBy</b> MyBase</em> { ... }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>void</b> useMyBase(<em>MyBase</em> myb) {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <em>MyRole</em> returnMyRole() {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    <em>MyRole r</em> = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    <em>MyBase b</em> = <em>r</em>;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    useMyBase(<em>r</em>);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    <em>MyBase b2</em> = returnMyRole();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <p>An instance of type <code>MyRole</code> is lowered to type <code>MyBase</code> when
+               </p>
+               <ul>
+                  <li>assigning it to <code>b</code> (line 7)
+                  </li>
+                  <li>passing it as argument to a method with formal parameter of type <code>MyBase</code> (line 8)
+                  </li>
+                  <li>assigning the return value to a variable of type <code>MyBase</code> (line 9)
+                  </li>
+               </ul>
+               <p><em>Note</em>: The constructor call in line 6 uses the <em>lifting constructor</em> as defined in <a href="s2.4.1.html"
+                     title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                     class="sect">&sect;2.4.1</a></p>
+            </div>
+            <p>Lowering translations are <span class="underline">not</span> inserted for
+               			
+            </p>
+            <ul>
+               <li>reference comparison (using <code>==</code> or <code>!=</code>)
+               </li>
+               <li><code>instanceof</code> checks
+               </li>
+               <li>cast expressions</li>
+               <li>return values in callout bindings <a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+               </li>
+               <li>parameters in callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+               </li>
+            </ul>
+            <p>For cases where lowering shall be <em>forced</em> see <a href="s2.2.d.html" title="&sect;2.2.(d)&nbsp;Explicit lowering"
+                  class="sect">&sect;2.2.(d)</a> below.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(a)&nbsp;Definition of lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.c.html" rel="next">&sect;2.2.(c)&nbsp;Typing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.c.html
new file mode 100644
index 0000000..4ce9d7b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(b)&nbsp;Places of lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.d.html" rel="next">&sect;2.2.(d)&nbsp;Explicit lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.c">
+            <h4 class="subsect">&sect;2.2.(c)&nbsp;<span class="title">Typing</span></h4>
+            <p>The static type of an implicit lowering translation is the base class
+               		declared using <code>playedBy</code> in the respective role class.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(b)&nbsp;Places of lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.d.html" rel="next">&sect;2.2.(d)&nbsp;Explicit lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.d.html
new file mode 100644
index 0000000..bf65def
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.d.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(c)&nbsp;Typing</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.e.html" rel="next">&sect;2.2.(e)&nbsp;Lowering of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.d">
+            <h4 class="subsect">&sect;2.2.(d)&nbsp;<span class="title">Explicit lowering</span></h4>
+            <p>If a base type is also the super type of its role,
+               		which frequently happens, if a base reference is known only by
+               		the type <code>Object</code>, lowering cannot be deduced automatically,
+               		since a type could be interpreted both as a role type and a base type.
+               		These cases may need <strong>explicit lowering</strong>.
+               		For this purpose the role class must declare to implement the interface
+               		<strong><code>ILowerable</code></strong> (from <code>org.objectteams.ITeam</code>).
+               		This will cause the compiler to generate a method
+            </p>
+            <div class="listing plain"><pre><b>public</b> Object lower()</pre></div>
+            <p>for the given role class. Client code may use this method to
+               		explicitly request the base object of a given role object.
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>implements</b> ILowerable</em> <b>playedBy</b> MyBase { ... }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    MyRole r = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    Object oMyRole = r;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    Object oMyBase = r.<em>lower()</em>;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(c)&nbsp;Typing</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.e.html" rel="next">&sect;2.2.(e)&nbsp;Lowering of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.e.html
new file mode 100644
index 0000000..b766558
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.e.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(d)&nbsp;Explicit lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.f.html" rel="next">&sect;2.2.(f)&nbsp;Ambiguous lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.e">
+            <h4 class="subsect">&sect;2.2.(e)&nbsp;<span class="title">Lowering of arrays</span></h4>
+            <p>Lowering also works for arrays of role objects.
+               		In order to lower an array of role objects,
+               		a new array is created and filled with base objects, one for each
+               		role object in the original array. The array may have any number
+               		of dimensions at any shape. The lowered array will have exactly the
+               		same shape.<br />
+               		Note, that each lowering translation will create a new array.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(d)&nbsp;Explicit lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.2.f.html" rel="next">&sect;2.2.(f)&nbsp;Ambiguous lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.f.html
new file mode 100644
index 0000000..1f43139
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.f.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(e)&nbsp;Lowering of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+         <div class="subsect depth3" id="s2.2.f">
+            <h4 class="subsect">&sect;2.2.(f)&nbsp;<span class="title">Ambiguous lowering</span></h4>
+            <p>When assigning a value of a bound role type to a variable or argument of type <code>java.lang.Object</code>
+               			this situation is considered as ambiguous lowering because the assignment could apply either (a) a direct upcast to <code>Object</code>
+               			or (b) lowering and then upcasting.
+               			In such situations the compiler will <em>not</em> insert a lowering translation, but a configurable warning will be issued.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2.(e)&nbsp;Lowering of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.2.html" rel="section">&sect;2.2&nbsp;Lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.html
new file mode 100644
index 0000000..6f65b49
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.2.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1&nbsp;playedBy relation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.html" rel="next">&sect;2.3&nbsp;Lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.2">
+            <h2 class="sect">&sect;2.2&nbsp;Lowering</h2>
+            <p>Each instance of a bound role class internally stores a reference to its
+               	base object. The reference is guaranteed to exist for each bound role
+               	instance, and cannot be changed during its lifetime.
+               		
+            </p>
+            <div class="subsect depth3" id="s2.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lowering</span></h4>
+               <p>Retrieving the base object from a role object is called <strong>lowering</strong>.
+                  		No other means exists for accessing the base reference.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Places of lowering</span></h4>
+               <p>The lowering translation is not meant to be invoked
+                  		by client code, but <strong>implicit translations</strong> are inserted by
+                  		the compiler at all places where a role type is provided while the
+                  		corresponding base type (or a super type) was expected.<br />
+                  		In other words: lowering translations are inserted by the compiler at
+                  		all places in a program which would otherwise not be type correct
+                  		and which using	lowering are statically type correct.
+                  		This may concern:
+                  			
+               </p>
+               <ul>
+                  <li>the right hand side of an assignment wrt. the static type of the left hand side,</li>
+                  <li>the argument values of a method or constructor call wrt. the static type of the corresponding formal parameter,</li>
+                  <li>the return value of a method compared to the declared return type of the method.</li>
+                  <li>a role parameter in a callout binding (<a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                  </li>
+                  <li>or the return value in a callin binding (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                  </li>
+               </ul>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> <em>MyRole <b>playedBy</b> MyBase</em> { ... }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>void</b> useMyBase(<em>MyBase</em> myb) {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <em>MyRole</em> returnMyRole() {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    <em>MyRole r</em> = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    <em>MyBase b</em> = <em>r</em>;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    useMyBase(<em>r</em>);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    <em>MyBase b2</em> = returnMyRole();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <p>An instance of type <code>MyRole</code> is lowered to type <code>MyBase</code> when
+                  </p>
+                  <ul>
+                     <li>assigning it to <code>b</code> (line 7)
+                     </li>
+                     <li>passing it as argument to a method with formal parameter of type <code>MyBase</code> (line 8)
+                     </li>
+                     <li>assigning the return value to a variable of type <code>MyBase</code> (line 9)
+                     </li>
+                  </ul>
+                  <p><em>Note</em>: The constructor call in line 6 uses the <em>lifting constructor</em> as defined in <a href="s2.4.1.html"
+                        title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                        class="sect">&sect;2.4.1</a></p>
+               </div>
+               <p>Lowering translations are <span class="underline">not</span> inserted for
+                  			
+               </p>
+               <ul>
+                  <li>reference comparison (using <code>==</code> or <code>!=</code>)
+                  </li>
+                  <li><code>instanceof</code> checks
+                  </li>
+                  <li>cast expressions</li>
+                  <li>return values in callout bindings <a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                  </li>
+                  <li>parameters in callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                  </li>
+               </ul>
+               <p>For cases where lowering shall be <em>forced</em> see <a href="#s2.2.d" title="&sect;2.2.(d)&nbsp;Explicit lowering" class="sect">&sect;2.2.(d)</a> below.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+               <p>The static type of an implicit lowering translation is the base class
+                  		declared using <code>playedBy</code> in the respective role class.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Explicit lowering</span></h4>
+               <p>If a base type is also the super type of its role,
+                  		which frequently happens, if a base reference is known only by
+                  		the type <code>Object</code>, lowering cannot be deduced automatically,
+                  		since a type could be interpreted both as a role type and a base type.
+                  		These cases may need <strong>explicit lowering</strong>.
+                  		For this purpose the role class must declare to implement the interface
+                  		<strong><code>ILowerable</code></strong> (from <code>org.objectteams.ITeam</code>).
+                  		This will cause the compiler to generate a method
+               </p>
+               <div class="listing plain"><pre><b>public</b> Object lower()</pre></div>
+               <p>for the given role class. Client code may use this method to
+                  		explicitly request the base object of a given role object.
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>implements</b> ILowerable</em> <b>playedBy</b> MyBase { ... }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    MyRole r = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    Object oMyRole = r;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    Object oMyBase = r.<em>lower()</em>;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s2.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Lowering of arrays</span></h4>
+               <p>Lowering also works for arrays of role objects.
+                  		In order to lower an array of role objects,
+                  		a new array is created and filled with base objects, one for each
+                  		role object in the original array. The array may have any number
+                  		of dimensions at any shape. The lowered array will have exactly the
+                  		same shape.<br />
+                  		Note, that each lowering translation will create a new array.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.2.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Ambiguous lowering</span></h4>
+               <p>When assigning a value of a bound role type to a variable or argument of type <code>java.lang.Object</code>
+                  			this situation is considered as ambiguous lowering because the assignment could apply either (a) a direct upcast to <code>Object</code>
+                  			or (b) lowering and then upcasting.
+                  			In such situations the compiler will <em>not</em> insert a lowering translation, but a configurable warning will be issued.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.1&nbsp;playedBy relation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.html" rel="next">&sect;2.3&nbsp;Lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.a.html
new file mode 100644
index 0000000..f0e9e83
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.a.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.b.html" rel="next">&sect;2.3.1.(b)&nbsp;Default lifting constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+         <div class="subsect depth4" id="s2.3.1.a">
+            <h4 class="subsect">&sect;2.3.1.(a)&nbsp;<span class="title">Reuse of existing role objects</span></h4>
+            <p>A role object is considered suitable for reuse during lifting, if
+               		these three items are identical:
+               				
+            </p>
+            <ol>
+               <li>the given base object</li>
+               <li>the given team object</li>
+               <li>the statically required role type</li>
+            </ol>
+            <p>For the relation between the statically required role type and
+               			the actual type of the role object see <a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">"smart lifting" (&sect;2.3.3)</a>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.b.html" rel="next">&sect;2.3.1.(b)&nbsp;Default lifting constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.b.html
new file mode 100644
index 0000000..cd4525d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.b.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1.(a)&nbsp;Reuse of existing role objects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.c.html" rel="next">&sect;2.3.1.(c)&nbsp;Custom lifting constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+         <div class="subsect depth4" id="s2.3.1.b">
+            <h4 class="subsect">&sect;2.3.1.(b)&nbsp;<span class="title">Default lifting constructor</span></h4>
+            <p>Lifting uses a default constructor which takes exactly one argument of the type
+               			of the declared base class (after <code>playedBy</code>).
+               			By default the compiler generates such a constructor for each bound role.
+               			On the other hand, default constructors that take no arguments
+               			(as in <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#16823"
+                  class="ext">JLS &sect;8.8.7</a>) are never generated for bound roles.
+               			<br />
+               			The super-constructor to be invoked by a default lifting constructor
+               			depends on whether the role's super class is a bound role or not.
+               				
+            </p>
+            <ul>
+               <li>If the super-class is a bound role, the default lifting constructor will invoke the default lifting constructor of the super-class.</li>
+               <li>If the super-class is not a bound role, the default lifting constructor will invoke the normal argumentless default constructor
+                  of the super-class.
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1.(a)&nbsp;Reuse of existing role objects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.c.html" rel="next">&sect;2.3.1.(c)&nbsp;Custom lifting constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.c.html
new file mode 100644
index 0000000..eec82ee
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.c.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1.(b)&nbsp;Default lifting constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+         <div class="subsect depth4" id="s2.3.1.c">
+            <h4 class="subsect">&sect;2.3.1.(c)&nbsp;<span class="title">Custom lifting constructor</span></h4>
+            <p>If a role class declares a custom constructor with the same signature
+               			as the default lifting constructor, this constructor is used during lifting.
+               			This custom constructor may pre-assume that the role has been setup
+               			properly regarding its base-link and registered in the team's internal map of roles.
+               			<br />
+               			If a bound role has an unbound super-class without an argumentless
+               			constructor, providing a custom lifting constructor is obligatory,
+               			because no legal default lifting constructor can be generated.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1.(b)&nbsp;Default lifting constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.1.html" rel="section">&sect;2.3.1&nbsp;Implicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.html
new file mode 100644
index 0000000..37da61f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.1.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(d)&nbsp;Lifting of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.html" rel="next">&sect;2.3.2&nbsp;Declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="sect depth3" id="s2.3.1">
+            <h3 class="sect">&sect;2.3.1&nbsp;Implicit role creation</h3>
+            <p>Lifting tries to reuse existing role objects so that role state persists across
+               	lifting and lowering. If no suitable role instance is found during lifting,
+               	a new role is created.
+               			
+            </p>
+            <div class="subsect depth4" id="s2.3.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Reuse of existing role objects</span></h4>
+               <p>A role object is considered suitable for reuse during lifting, if
+                  		these three items are identical:
+                  				
+               </p>
+               <ol>
+                  <li>the given base object</li>
+                  <li>the given team object</li>
+                  <li>the statically required role type</li>
+               </ol>
+               <p>For the relation between the statically required role type and
+                  			the actual type of the role object see <a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">"smart lifting" (&sect;2.3.3)</a>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Default lifting constructor</span></h4>
+               <p>Lifting uses a default constructor which takes exactly one argument of the type
+                  			of the declared base class (after <code>playedBy</code>).
+                  			By default the compiler generates such a constructor for each bound role.
+                  			On the other hand, default constructors that take no arguments
+                  			(as in <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#16823"
+                     class="ext">JLS &sect;8.8.7</a>) are never generated for bound roles.
+                  			<br />
+                  			The super-constructor to be invoked by a default lifting constructor
+                  			depends on whether the role's super class is a bound role or not.
+                  				
+               </p>
+               <ul>
+                  <li>If the super-class is a bound role, the default lifting constructor will invoke the default lifting constructor of the super-class.</li>
+                  <li>If the super-class is not a bound role, the default lifting constructor will invoke the normal argumentless default constructor
+                     of the super-class.
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth4" id="s2.3.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Custom lifting constructor</span></h4>
+               <p>If a role class declares a custom constructor with the same signature
+                  			as the default lifting constructor, this constructor is used during lifting.
+                  			This custom constructor may pre-assume that the role has been setup
+                  			properly regarding its base-link and registered in the team's internal map of roles.
+                  			<br />
+                  			If a bound role has an unbound super-class without an argumentless
+                  			constructor, providing a custom lifting constructor is obligatory,
+                  			because no legal default lifting constructor can be generated.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(d)&nbsp;Lifting of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.html" rel="next">&sect;2.3.2&nbsp;Declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.a.html
new file mode 100644
index 0000000..609463c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.a.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.b.html" rel="next">&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="subsect depth4" id="s2.3.2.a">
+            <h4 class="subsect">&sect;2.3.2.(a)&nbsp;<span class="title">Parameters with declared lifting</span></h4>
+            <p>A non-static team-level method or constructor may declare a parameter with two types 
+               			in order to explicitly denote a place of <strong>lifting</strong>. Using the syntax
+               				
+            </p>
+            <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <em>as</em> RoleClass param) { <i>stmts</i> }</pre></div>
+            <p>a liftable parameter can be declared, provided the second type 
+               			(<code>RoleClass</code>) is a role of (<code>playedBy</code>) the first type (<code>BaseClass</code>). 
+               			Furthermore, the role type must be a role of the enclosing team class defining the given method. 
+               			The role type must be given by its simple (i.e., unqualified) name.
+               			<br />
+               			Such a signature requires the caller to provide a base object (here <code>BaseClass</code>), but 
+               			the callee receives a role object (here <code>RoleClass</code>). 
+               			In fact, the client sees a signature in which the "<code>as RoleClass</code>" part is omitted.
+               			<br />
+               			Compatibility between caller and callee sides is achieved by an implicitly inserted lifting translation. 
+               			A signature using declared lifting is only valid, if the requested lifting is possible 
+               			(see <a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">&sect;2.3.3</a> and <a href="s2.3.4.html" title="&sect;2.3.4&nbsp;Binding ambiguities"
+                  class="sect">&sect;2.3.4</a> for details).
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.b.html" rel="next">&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.b.html
new file mode 100644
index 0000000..2639462
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.b.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(a)&nbsp;Parameters with declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.c.html" rel="next">&sect;2.3.2.(c)&nbsp;Declared lifting of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="subsect depth4" id="s2.3.2.b">
+            <h4 class="subsect">&sect;2.3.2.(b)&nbsp;<span class="title">Super in the context of declared lifting</span></h4>
+            <p>Calling <code>super</code> or <code>tsuper</code> in a method or constructor which 
+               			declares lifting for one or more parameters refers to a method or constructor with role type parameters, 
+               			i.e., lifting takes place <em>before</em> super invocation. Nevertheless, the super method may also 
+               			have a declared lifting signature. It will then see the same role instance(s) as the current method.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(a)&nbsp;Parameters with declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.c.html" rel="next">&sect;2.3.2.(c)&nbsp;Declared lifting of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.c.html
new file mode 100644
index 0000000..794ce87
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.c.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.d.html" rel="next">&sect;2.3.2.(d)&nbsp;Declared lifting for catch blocks&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="subsect depth4" id="s2.3.2.c">
+            <h4 class="subsect">&sect;2.3.2.(c)&nbsp;<span class="title">Declared lifting of arrays</span></h4>
+            <p>If a parameter involving explicit lifting should be of an <strong>array</strong> type, the syntax is
+               				
+            </p>
+            <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <b>as</b> RoleClass param[]) ...</pre></div>
+            <p>Here the brackets denoting the array apply to both types, <code>BaseClass</code> 
+               			and <code>RoleClass</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(b)&nbsp;Super in the context of declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.d.html" rel="next">&sect;2.3.2.(d)&nbsp;Declared lifting for catch blocks&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.d.html
new file mode 100644
index 0000000..08f1777
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.d.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(c)&nbsp;Declared lifting of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.e.html" rel="next">&sect;2.3.2.(e)&nbsp;Generic declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="subsect depth4" id="s2.3.2.d">
+            <h4 class="subsect">&sect;2.3.2.(d)&nbsp;<span class="title">Declared lifting for catch blocks</span></h4>
+            <p>Also the argument of a catch block may apply declared lifting like in:
+               				
+            </p>
+            <div class="listing plain"><pre><b>catch</b> (BaseException <b>as</b> RoleClass param) { <i>stmts</i> }</pre></div>
+            <p>This syntax is only valid in a non-static scope of a team (directly or nested). 
+               			In the given example, <code>RoleClass</code> must be played by <code>BaseException</code>. 
+               			Note, that <code>RoleClass</code> itself need not be a throwable. 
+               			As the effect of this declaration the catch block will catch any exception of type <code>BaseException</code> 
+               			and provides it wrapped with a <code>RoleClass</code> instance to the subsequent block.
+               			<br />
+               			Also note, that re-throwing the given instance <code>param</code> has the semantics of implicitly lowering 
+               			the role to its base exception before throwing, because the role  conforms to the required type 
+               			<code>Throwable</code> only via lowering.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(c)&nbsp;Declared lifting of arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.2.e.html" rel="next">&sect;2.3.2.(e)&nbsp;Generic declared lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.e.html
new file mode 100644
index 0000000..f030d41
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.e.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(d)&nbsp;Declared lifting for catch blocks</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+         <div class="subsect depth4" id="s2.3.2.e">
+            <h4 class="subsect">&sect;2.3.2.(e)&nbsp;<span class="title">Generic declared lifting</span></h4>
+            <p>A method with declared lifting may introduce a type parameter that is bounded relative to a given role type.
+               					Such bound is declared as:
+               				
+            </p>
+            <div class="listing plain"><pre>&lt;AnyBase <b>base</b> SuperRole&gt;
+<b>void</b> teamMethod(AnyBase <b>as</b> SuperRole arg) {
+   <span class="comment">// body using arg as of type SuperRole</span>
+}</pre></div>
+            <p>This means that <code>AnyBase</code> is a type parameter whose instantiations must all be liftable to role <code>SuperRole</code>.
+               				
+            </p>
+            <p>
+               					The given type bound requires the call site to supply an argument that is compatible to any base class
+               					for which the current team contains a bound role that is a sub class of <code>SuperRole</code>, including <code>SuperRole</code> itself.
+               					However, <code>SuperRole</code> itself need not be bound to any base class.
+               					On the other hand, different valid substitutions for <code>AnyBase</code> need not be related by inheritance.
+               				
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               					This feature supports generalized treatment of otherwise unrelated base classes.
+               					This is done by defining one bound role for each base under consideration and by
+               					having all these roles extend a common unbound role.
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2.(d)&nbsp;Declared lifting for catch blocks</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.2.html" rel="section">&sect;2.3.2&nbsp;Declared lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.html
new file mode 100644
index 0000000..527a037
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.2.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1&nbsp;Implicit role creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.html" rel="next">&sect;2.3.3&nbsp;Smart lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="sect depth3" id="s2.3.2">
+            <h3 class="sect">&sect;2.3.2&nbsp;Declared lifting</h3>
+            <div class="syntaxlink"><a href="sA.html#sA.6.2" title="&sect;A.6.2&nbsp;LiftingType" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.6.2</a></div>
+            <div class="subsect depth4" id="s2.3.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Parameters with declared lifting</span></h4>
+               <p>A non-static team-level method or constructor may declare a parameter with two types 
+                  			in order to explicitly denote a place of <strong>lifting</strong>. Using the syntax
+                  				
+               </p>
+               <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <em>as</em> RoleClass param) { <i>stmts</i> }</pre></div>
+               <p>a liftable parameter can be declared, provided the second type 
+                  			(<code>RoleClass</code>) is a role of (<code>playedBy</code>) the first type (<code>BaseClass</code>). 
+                  			Furthermore, the role type must be a role of the enclosing team class defining the given method. 
+                  			The role type must be given by its simple (i.e., unqualified) name.
+                  			<br />
+                  			Such a signature requires the caller to provide a base object (here <code>BaseClass</code>), but 
+                  			the callee receives a role object (here <code>RoleClass</code>). 
+                  			In fact, the client sees a signature in which the "<code>as RoleClass</code>" part is omitted.
+                  			<br />
+                  			Compatibility between caller and callee sides is achieved by an implicitly inserted lifting translation. 
+                  			A signature using declared lifting is only valid, if the requested lifting is possible 
+                  			(see <a href="s2.3.3.html" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">&sect;2.3.3</a> and <a href="s2.3.4.html" title="&sect;2.3.4&nbsp;Binding ambiguities"
+                     class="sect">&sect;2.3.4</a> for details).
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Super in the context of declared lifting</span></h4>
+               <p>Calling <code>super</code> or <code>tsuper</code> in a method or constructor which 
+                  			declares lifting for one or more parameters refers to a method or constructor with role type parameters, 
+                  			i.e., lifting takes place <em>before</em> super invocation. Nevertheless, the super method may also 
+                  			have a declared lifting signature. It will then see the same role instance(s) as the current method.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Declared lifting of arrays</span></h4>
+               <p>If a parameter involving explicit lifting should be of an <strong>array</strong> type, the syntax is
+                  				
+               </p>
+               <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <b>as</b> RoleClass param[]) ...</pre></div>
+               <p>Here the brackets denoting the array apply to both types, <code>BaseClass</code> 
+                  			and <code>RoleClass</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Declared lifting for catch blocks</span></h4>
+               <p>Also the argument of a catch block may apply declared lifting like in:
+                  				
+               </p>
+               <div class="listing plain"><pre><b>catch</b> (BaseException <b>as</b> RoleClass param) { <i>stmts</i> }</pre></div>
+               <p>This syntax is only valid in a non-static scope of a team (directly or nested). 
+                  			In the given example, <code>RoleClass</code> must be played by <code>BaseException</code>. 
+                  			Note, that <code>RoleClass</code> itself need not be a throwable. 
+                  			As the effect of this declaration the catch block will catch any exception of type <code>BaseException</code> 
+                  			and provides it wrapped with a <code>RoleClass</code> instance to the subsequent block.
+                  			<br />
+                  			Also note, that re-throwing the given instance <code>param</code> has the semantics of implicitly lowering 
+                  			the role to its base exception before throwing, because the role  conforms to the required type 
+                  			<code>Throwable</code> only via lowering.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Generic declared lifting</span></h4>
+               <p>A method with declared lifting may introduce a type parameter that is bounded relative to a given role type.
+                  					Such bound is declared as:
+                  				
+               </p>
+               <div class="listing plain"><pre>&lt;AnyBase <b>base</b> SuperRole&gt;
+<b>void</b> teamMethod(AnyBase <b>as</b> SuperRole arg) {
+   <span class="comment">// body using arg as of type SuperRole</span>
+}</pre></div>
+               <p>This means that <code>AnyBase</code> is a type parameter whose instantiations must all be liftable to role <code>SuperRole</code>.
+                  				
+               </p>
+               <p>
+                  					The given type bound requires the call site to supply an argument that is compatible to any base class
+                  					for which the current team contains a bound role that is a sub class of <code>SuperRole</code>, including <code>SuperRole</code> itself.
+                  					However, <code>SuperRole</code> itself need not be bound to any base class.
+                  					On the other hand, different valid substitutions for <code>AnyBase</code> need not be related by inheritance.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  					This feature supports generalized treatment of otherwise unrelated base classes.
+                  					This is done by defining one bound role for each base under consideration and by
+                  					having all these roles extend a common unbound role.
+                  				
+               </div>
+            </div>
+            <h5 class="listing">Example code (Declared Lifting):</h5>
+            <div class="listing example frame" id="l2.3.2">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> Super {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> MyRole <b>playedBy</b> MyBase { ... }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>void</b> m (MyRole o) { ... };</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre><b>team</b> <b>class</b> Sub <b>extends</b> Super {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  <b>void</b> m (<em>MyBase <b>as</b> MyRole o</em>) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    <span class="comment">// inside this method o is of type MyRole</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    super.m(o);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>Sub s_<b>team</b> = <b>new</b> Sub();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>s_team.m(b); <span class="comment">// clients see a parameter "MyBase o"</span></pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>Clients use method <code>m</code> with a base instance (type <code>MyBase</code>) as its argument (line 13).
+                  </li>
+                  <li>Before executing the body of <code>m</code>, the argument is lifted such that the method body receives 
+                     						the argument as of type <code>MyRole</code> (line 8).
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.1&nbsp;Implicit role creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.html" rel="next">&sect;2.3.3&nbsp;Smart lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.a.html
new file mode 100644
index 0000000..a702e94
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.a.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.b.html" rel="next">&sect;2.3.3.(b)&nbsp;Dynamic selection of a role class&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="subsect depth4" id="s2.3.3.a">
+            <h4 class="subsect">&sect;2.3.3.(a)&nbsp;<span class="title">Static adjustment</span></h4>
+            <p>If a base class <code>B</code> shall be lifted to a role class
+               			<code>R</code> that is not bound to (<code>playedBy</code>)
+               			<code>B</code>, but if a subclass of <code>R</code>
+			&mdash; say <code>R2</code> &mdash;
+			is bound to <code>B</code>, lifting is statically setup to use
+               			<code>R2</code>, the most general subclass of <code>R</code> that
+               			is bound to <code>B</code> or one of its super-types.
+               				
+            </p>
+            <div class="note">
+               <h5>Restriction:</h5>
+               					This step is not applicable for parameter mappings of <code>replace</code>
+               					callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>).
+               				
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.b.html" rel="next">&sect;2.3.3.(b)&nbsp;Dynamic selection of a role class&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.b.html
new file mode 100644
index 0000000..e39e3d4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.b.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(a)&nbsp;Static adjustment</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.c.html" rel="next">&sect;2.3.3.(c)&nbsp;Team as closed world&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="subsect depth4" id="s2.3.3.b">
+            <h4 class="subsect">&sect;2.3.3.(b)&nbsp;<span class="title">Dynamic selection of a role class</span></h4>
+            <p>At runtime also the dynamic type of a base object is considered:
+			Lifting always tries to use a role class that is bound to the
+			exact class of the base object. Lifting considers all role&ndash;base
+			pairs bound by <code>playedBy</code> such that the role class is a
+               			sub-class of the required (statically declared) role type
+               			and the base class is a super-class of the
+               			dynamic type of the base object.
+               			<br />
+               			From those possible pairs the most specific base class is chosen.
+               			If multiple role classes are bound to this base class the most
+               			specific of these classes is chosen.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(a)&nbsp;Static adjustment</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.c.html" rel="next">&sect;2.3.3.(c)&nbsp;Team as closed world&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.c.html
new file mode 100644
index 0000000..9d4d930
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.c.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(b)&nbsp;Dynamic selection of a role class</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.d.html" rel="next">&sect;2.3.3.(d)&nbsp;Selection regardless of abstractness&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="subsect depth4" id="s2.3.3.c">
+            <h4 class="subsect">&sect;2.3.3.(c)&nbsp;<span class="title">Team as closed world</span></h4>
+            <p>In the above analysis gathering all role-base pairs is performed at
+               			compile-time. From this follows, that a team class can only be
+               			compiled when all its contained role classes are known and a role class
+               			can never be compiled without its team.
+               			<br />
+               			The analysis includes all roles and their bindings that are inherited
+               			from the super-team.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(b)&nbsp;Dynamic selection of a role class</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.3.d.html" rel="next">&sect;2.3.3.(d)&nbsp;Selection regardless of abstractness&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.d.html
new file mode 100644
index 0000000..40cdc47
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.d.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(c)&nbsp;Team as closed world</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+         <div class="subsect depth4" id="s2.3.3.d">
+            <h4 class="subsect">&sect;2.3.3.(d)&nbsp;<span class="title">Selection regardless of abstractness</span></h4>
+            <p>Smart lifting is not affected by abstractness of role classes.
+               			For the effect of abstract role classes see <a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3.(c)&nbsp;Team as closed world</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.3.html" rel="section">&sect;2.3.3&nbsp;Smart lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.html
new file mode 100644
index 0000000..9b1f380
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.3.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2&nbsp;Declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.html" rel="next">&sect;2.3.4&nbsp;Binding ambiguities&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="sect depth3" id="s2.3.3">
+            <h3 class="sect">&sect;2.3.3&nbsp;Smart lifting</h3>
+            <p>In situations where role and base classes are part of some inheritance
+               		hierarchies (<code>extends</code>), choosing the appropriate role class during
+               		lifting involves the following rules:
+               			
+            </p>
+            <div class="subsect depth4" id="s2.3.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Static adjustment</span></h4>
+               <p>If a base class <code>B</code> shall be lifted to a role class
+                  			<code>R</code> that is not bound to (<code>playedBy</code>)
+                  			<code>B</code>, but if a subclass of <code>R</code>
+			&mdash; say <code>R2</code> &mdash;
+			is bound to <code>B</code>, lifting is statically setup to use
+                  			<code>R2</code>, the most general subclass of <code>R</code> that
+                  			is bound to <code>B</code> or one of its super-types.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Restriction:</h5>
+                  					This step is not applicable for parameter mappings of <code>replace</code>
+                  					callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>).
+                  				
+               </div>
+            </div>
+            <div class="subsect depth4" id="s2.3.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Dynamic selection of a role class</span></h4>
+               <p>At runtime also the dynamic type of a base object is considered:
+			Lifting always tries to use a role class that is bound to the
+			exact class of the base object. Lifting considers all role&ndash;base
+			pairs bound by <code>playedBy</code> such that the role class is a
+                  			sub-class of the required (statically declared) role type
+                  			and the base class is a super-class of the
+                  			dynamic type of the base object.
+                  			<br />
+                  			From those possible pairs the most specific base class is chosen.
+                  			If multiple role classes are bound to this base class the most
+                  			specific of these classes is chosen.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Team as closed world</span></h4>
+               <p>In the above analysis gathering all role-base pairs is performed at
+                  			compile-time. From this follows, that a team class can only be
+                  			compiled when all its contained role classes are known and a role class
+                  			can never be compiled without its team.
+                  			<br />
+                  			The analysis includes all roles and their bindings that are inherited
+                  			from the super-team.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.3.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Selection regardless of abstractness</span></h4>
+               <p>Smart lifting is not affected by abstractness of role classes.
+                  			For the effect of abstract role classes see <a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>.
+                  				
+               </p>
+            </div>
+            <h5>Complex Example:</h5>
+            <p><img src="../images/smart_lifting_small.png" alt="smart lifting example" /></p>
+            <table border="2" width="80%">
+               <colgroup span="1">
+                  <col align="left" span="1" />
+                  <col align="left" span="1" />
+               </colgroup>
+               <tr>
+                  <th rowspan="1" colspan="1">role class</th>
+                  <th rowspan="1" colspan="1">base class</th>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R1</td>
+                  <td rowspan="1" colspan="1">&nbsp;</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R2 extends R1 playedBy B2</td>
+                  <td rowspan="1" colspan="1">class B2</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R3 extends R2 <em>/* inherited: playedBy B2 */ </em></td>
+                  <td rowspan="1" colspan="1">class B3 extends B2</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R4 extends R3 playedBy B4</td>
+                  <td rowspan="1" colspan="1">class B4 extends B3</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R5 extends R4 <em>/* inherited: playedBy B4 */</em></td>
+                  <td rowspan="1" colspan="1">&nbsp;</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">&nbsp;</td>
+                  <td rowspan="1" colspan="1">class B6 extends B4</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">class R7 extends R5 playedBy B7</td>
+                  <td rowspan="1" colspan="1">class B7 extends B6</td>
+               </tr>
+            </table>
+            <div class="codecomment">
+               <ul>
+                  <li>If declarations require lifting <code>B3</code> to <code>R1</code>
+                     			this is statically refined to use <code>R2</code> instead, because this
+			is the most general class declaring a binding to a super&ndash;class
+			of <code>B3</code>.
+                     					
+                  </li>
+                  <li>If the dynamic base type in the same situation is <code>B6</code>,
+                     			three steps select the appropriate role:
+                     						
+                     <ol>
+                        <li>By searching all <code>playedBy</code> clauses (including those
+			that are inherited) the following role&ndash;base pairs are
+			candidates:<br /><code>(R2,B2), (R3,B2), (R4,B4)</code> and <code>(R5,B4)</code>.
+                        </li>
+                        <li>From these pairs the two containing the most specific base class
+                           		<code>B4</code> are chosen.
+                        </li>
+                        <li>This makes <code>R4</code> and <code>R5</code> role candidates,
+                           		from which the most specific <code>R5</code> is finally chosen.
+                        </li>
+                     </ol>
+                  </li>
+               </ul>
+            </div>
+            <p>If the inheritance hierarchies of the involved base and role classes are given (like in the figure above) 
+               			the smart lifting algorithm can be rephrased to the following "graphical" rule:<br /></p>
+            <div class="note">
+               				Starting with the dynamic base type (<code>B6</code> in the example) move upwards the the inheritance 
+				relation until you reach a base class bound to a role class indicated by a &laquo;playedBy&raquo; 
+				arrow pointing to the base class (<code>B4</code>). This role class must be conform to the requested role type. 
+               				Switch to the role side along this arrow (<code>R4</code>). Now move downwards the role inheritance hierarchy 
+				as long as the subrole does not refine the playedBy relationship (indicated by another &laquo;playedBy&raquo; arrow). 
+				The bottom role you reach this way (<code>R5</code>) is the role type selected by smart lifting.
+               			
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.2&nbsp;Declared lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.html" rel="next">&sect;2.3.4&nbsp;Binding ambiguities&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.a.html
new file mode 100644
index 0000000..c215b62
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.a.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.b.html" rel="next">&sect;2.3.4.(b)&nbsp;Definite ambiguity&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="subsect depth4" id="s2.3.4.a">
+            <h4 class="subsect">&sect;2.3.4.(a)&nbsp;<span class="title">Potential ambiguity</span></h4>
+            <p>A <strong>potential ambiguity</strong> is given,
+               				if two role classes <code>R1</code> and <code>R2</code>
+               				exist such that
+               				
+            </p>
+            <ul>
+               <li><code>R1</code> and <code>R2</code> are played by the
+                  					same base class <code>B</code>, and
+               </li>
+               <li><code>R1</code> and <code>R2</code> have a common
+                  					super role <code>R0</code>,
+                  					which is also bound to a base class <code>B0</code>, and
+               </li>
+               <li>neither role class <code>R1</code> nor
+                  					<code>R2</code> is a (indirect) sub-class of the other.
+               </li>
+            </ul>
+            <div class="note">
+               <h5>Note:</h5>
+               					According to <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                  class="sect">&sect;2.1.(c)</a>, if <code>B</code> is distinct from <code>B0</code> 
+               					it has to be a sub-class of <code>B0</code>.
+               				
+            </div>
+            <div class="note">
+               <h5>Effect:</h5>
+               					In this case the compiler issues a warning, stating that the <code>B</code><em> may not be liftable,</em> because both role classes <code>R1</code> 
+               					and <code>R2</code> are candidates and there is no reason to prefer one over the other.
+               					<br /><strong>If no potential ambiguity is detected, lifting will always be unambiguous.</strong></div>
+            <p>In the above situation, trying to lift an instance of type <code>B</code> to the role type 
+               			<code>R0</code> is an <strong>illegal lifting request</strong>. If <code>R0</code> is bound 
+               			to the same base class <code>B</code> as its sub-roles <code>R1</code> and <code>R2</code> are, 
+               			role <code>R0</code> is <strong>unliftable</strong>, meaning that no instance of <code>R0</code> 
+               			can ever by obtained by lifting.
+               				
+            </p>
+            <h5 class="listing">Example code (Potential Ambiguity):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.b.html" rel="next">&sect;2.3.4.(b)&nbsp;Definite ambiguity&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.b.html
new file mode 100644
index 0000000..08887d7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.b.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(a)&nbsp;Potential ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.c.html" rel="next">&sect;2.3.4.(c)&nbsp;Actual ambiguity&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="subsect depth4" id="s2.3.4.b">
+            <h4 class="subsect">&sect;2.3.4.(b)&nbsp;<span class="title">Definite ambiguity</span></h4>
+            <p>A <strong>definite ambiguity</strong> is given if
+               				
+            </p>
+            <ul>
+               <li>the situation of potential ambiguity according to (a)
+                  				above is given and
+               </li>
+               <li>lifting is requested (either by method binding or explicitly
+                  				(<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)) from the shared base class <code>B</code> to any role
+                  				class <code>R0</code> that is a common super role for <code>R1</code> and <code>R2</code>.
+               </li>
+            </ul>
+            <div class="note">
+               <h5>Effect:</h5>
+               					Definite ambiguity is a compile time error.
+               				
+            </div>
+            <h5 class="listing">Example code (Definite Ambiguity):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  <b>public</b> <b>void</b> useSuperRole(SubBase <b>as</b> SuperRole r) {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(a)&nbsp;Potential ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.c.html" rel="next">&sect;2.3.4.(c)&nbsp;Actual ambiguity&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.c.html
new file mode 100644
index 0000000..a9a0c3a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.c.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(b)&nbsp;Definite ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.d.html" rel="next">&sect;2.3.4.(d)&nbsp;Mismatching role&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="subsect depth4" id="s2.3.4.c">
+            <h4 class="subsect">&sect;2.3.4.(c)&nbsp;<span class="title">Actual ambiguity</span></h4>
+            <p>At runtime <strong>actual ambiguity</strong> may occur if for the
+               			<em>dynamic type</em> of a base to be lifted the conditions of (b)
+               			above hold accordingly. Actual ambiguity is only possible in cases
+               			reported by the compiler as potential ambiguity.
+               				
+            </p>
+            <div class="note">
+               <h5>Effect:</h5>
+               					An actual ambiguity is reported at runtime by throwing a
+               					<code>org.objectteams.LiftingFailedException</code>.
+               				
+            </div>
+            <h5 class="listing">Example code (Actual Ambiguity):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  <b>public</b> <b>void</b> useSuperRole(MyBase <b>as</b> SuperRole r) {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>mt.useSuperRole(<b>new</b> SubBase());</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(b)&nbsp;Definite ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.4.d.html" rel="next">&sect;2.3.4.(d)&nbsp;Mismatching role&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.d.html
new file mode 100644
index 0000000..42fd74a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.d.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(c)&nbsp;Actual ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+         <div class="subsect depth4" id="s2.3.4.d">
+            <h4 class="subsect">&sect;2.3.4.(d)&nbsp;<span class="title">Mismatching role</span></h4>
+            <p>In cases of potential ambiguity another runtime error may occur:
+               			a <strong>mismatching role</strong> is encountered when a role is found
+               			in the cache, which is not conform to the required type.
+               			This happens, if the base object has previously been lifted
+               			to a type that is incompatible with the currently requested type.
+               				
+            </p>
+            <div class="note">
+               <h5>Effect:</h5>
+               					This is reported by throwing a <code>org.objectteams.WrongRoleException</code>.
+               				
+            </div>
+            <h5 class="listing">Example code (Mismatching Role):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  <b>public</b> <b>void</b> useRoleA(MyBase <b>as</b> SubRoleA r) {...}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  <b>public</b> <b>void</b> useRoleB(MyBase <b>as</b> SubRoleB r) {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>mt.useRoleA(b); <span class="comment">// creates a SubRoleA for b</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>mt.useRoleB(b); <span class="comment">// finds the SubRoleA which is not compatible</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>                <span class="comment">// to the expected type SubRoleB.</span></pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>From the second item of <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                  class="sect">&sect;2.3.4.(a)</a> follows, that for binding ambiguities different
+               	role hierarchies are analyzed in isolation.
+               	For this analysis only those role classes are considered that are bound to a
+               	base class (directly using <code>playedBy</code> or by inheriting this relation
+               from another role class).
+               	I.e., two role classes that have no common bound super role will never cause
+               any ambiguity.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.4.(c)&nbsp;Actual ambiguity</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.4.html" rel="section">&sect;2.3.4&nbsp;Binding ambiguities</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.html
new file mode 100644
index 0000000..089d9e5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.4.html
@@ -0,0 +1,308 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.3.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3&nbsp;Smart lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="sect depth3" id="s2.3.4">
+            <h3 class="sect">&sect;2.3.4&nbsp;Binding ambiguities</h3>
+            <p>While all examples so far have only shown 1-to-1 class bindings,
+               	    several cases of multiple bindings are allowable. Ambiguities may be
+               	    detected at compile time and/or at runtime.
+               			
+            </p>
+            <div class="subsect depth4" id="s2.3.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Potential ambiguity</span></h4>
+               <p>A <strong>potential ambiguity</strong> is given,
+                  				if two role classes <code>R1</code> and <code>R2</code>
+                  				exist such that
+                  				
+               </p>
+               <ul>
+                  <li><code>R1</code> and <code>R2</code> are played by the
+                     					same base class <code>B</code>, and
+                  </li>
+                  <li><code>R1</code> and <code>R2</code> have a common
+                     					super role <code>R0</code>,
+                     					which is also bound to a base class <code>B0</code>, and
+                  </li>
+                  <li>neither role class <code>R1</code> nor
+                     					<code>R2</code> is a (indirect) sub-class of the other.
+                  </li>
+               </ul>
+               <div class="note">
+                  <h5>Note:</h5>
+                  					According to <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                     class="sect">&sect;2.1.(c)</a>, if <code>B</code> is distinct from <code>B0</code> 
+                  					it has to be a sub-class of <code>B0</code>.
+                  				
+               </div>
+               <div class="note">
+                  <h5>Effect:</h5>
+                  					In this case the compiler issues a warning, stating that the <code>B</code><em> may not be liftable,</em> because both role classes <code>R1</code> 
+                  					and <code>R2</code> are candidates and there is no reason to prefer one over the other.
+                  					<br /><strong>If no potential ambiguity is detected, lifting will always be unambiguous.</strong></div>
+               <p>In the above situation, trying to lift an instance of type <code>B</code> to the role type 
+                  			<code>R0</code> is an <strong>illegal lifting request</strong>. If <code>R0</code> is bound 
+                  			to the same base class <code>B</code> as its sub-roles <code>R1</code> and <code>R2</code> are, 
+                  			role <code>R0</code> is <strong>unliftable</strong>, meaning that no instance of <code>R0</code> 
+                  			can ever by obtained by lifting.
+                  				
+               </p>
+               <h5 class="listing">Example code (Potential Ambiguity):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth4" id="s2.3.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Definite ambiguity</span></h4>
+               <p>A <strong>definite ambiguity</strong> is given if
+                  				
+               </p>
+               <ul>
+                  <li>the situation of potential ambiguity according to (a)
+                     				above is given and
+                  </li>
+                  <li>lifting is requested (either by method binding or explicitly
+                     				(<a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)) from the shared base class <code>B</code> to any role
+                     				class <code>R0</code> that is a common super role for <code>R1</code> and <code>R2</code>.
+                  </li>
+               </ul>
+               <div class="note">
+                  <h5>Effect:</h5>
+                  					Definite ambiguity is a compile time error.
+                  				
+               </div>
+               <h5 class="listing">Example code (Definite Ambiguity):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  <b>public</b> <b>void</b> useSuperRole(SubBase <b>as</b> SuperRole r) {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth4" id="s2.3.4.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Actual ambiguity</span></h4>
+               <p>At runtime <strong>actual ambiguity</strong> may occur if for the
+                  			<em>dynamic type</em> of a base to be lifted the conditions of (b)
+                  			above hold accordingly. Actual ambiguity is only possible in cases
+                  			reported by the compiler as potential ambiguity.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Effect:</h5>
+                  					An actual ambiguity is reported at runtime by throwing a
+                  					<code>org.objectteams.LiftingFailedException</code>.
+                  				
+               </div>
+               <h5 class="listing">Example code (Actual Ambiguity):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  <b>public</b> <b>void</b> useSuperRole(MyBase <b>as</b> SuperRole r) {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>mt.useSuperRole(<b>new</b> SubBase());</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth4" id="s2.3.4.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Mismatching role</span></h4>
+               <p>In cases of potential ambiguity another runtime error may occur:
+                  			a <strong>mismatching role</strong> is encountered when a role is found
+                  			in the cache, which is not conform to the required type.
+                  			This happens, if the base object has previously been lifted
+                  			to a type that is incompatible with the currently requested type.
+                  				
+               </p>
+               <div class="note">
+                  <h5>Effect:</h5>
+                  					This is reported by throwing a <code>org.objectteams.WrongRoleException</code>.
+                  				
+               </div>
+               <h5 class="listing">Example code (Mismatching Role):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  <b>public</b> <b>void</b> useRoleA(MyBase <b>as</b> SubRoleA r) {...}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>public</b> <b>void</b> useRoleB(MyBase <b>as</b> SubRoleB r) {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>mt.useRoleA(b); <span class="comment">// creates a SubRoleA for b</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>mt.useRoleB(b); <span class="comment">// finds the SubRoleA which is not compatible</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>                <span class="comment">// to the expected type SubRoleB.</span></pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>From the second item of <a href="#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                     class="sect">&sect;2.3.4.(a)</a> follows, that for binding ambiguities different
+                  	role hierarchies are analyzed in isolation.
+                  	For this analysis only those role classes are considered that are bound to a
+                  	base class (directly using <code>playedBy</code> or by inheriting this relation
+                  from another role class).
+                  	I.e., two role classes that have no common bound super role will never cause
+                  any ambiguity.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.3.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.3&nbsp;Smart lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.a.html
new file mode 100644
index 0000000..7f4c5c1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.a.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.b.html" rel="next">&sect;2.3.(b)&nbsp;Places of lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="subsect depth3" id="s2.3.a">
+            <h4 class="subsect">&sect;2.3.(a)&nbsp;<span class="title">Definition of lifting</span></h4>
+            <p>Retrieving a role for a given base object is called <strong>lifting</strong>.
+               	    Lifting is guaranteed to yield the same role object for subsequent
+               	    calls regarding the same base object, the same team instance and
+               	    the same role class (see <a href="s2.3.4.html" title="&sect;2.3.4&nbsp;Binding ambiguities"
+                  class="sect">&sect;2.3.4</a>
+               		for cases of ambiguity that are signaled by compiler warnings
+               		and possibly runtime exceptions).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.b.html" rel="next">&sect;2.3.(b)&nbsp;Places of lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.b.html
new file mode 100644
index 0000000..0934667
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.b.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(a)&nbsp;Definition of lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.c.html" rel="next">&sect;2.3.(c)&nbsp;Typing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="subsect depth3" id="s2.3.b">
+            <h4 class="subsect">&sect;2.3.(b)&nbsp;<span class="title">Places of lifting</span></h4>
+            <p>The lifting translation is not meant to be invoked
+               		by client code, but translations are inserted by the compiler
+               		at the following locations:
+               			
+            </p>
+            <ul>
+               <li><a href="s3.3.c.html" title="&sect;3.3.(c)&nbsp;Result translation"
+                     class="sect">Callout bindings (&sect;3.3.(c))</a> (result)
+               </li>
+               <li><a href="s4.5.a.html" title="&sect;4.5.(a)&nbsp;Call target translation"
+                     class="sect">Callin bindings (&sect;4.5.(a))</a> (call target and parameters)
+               </li>
+               <li><a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">Declared lifting (&sect;2.3.2)</a></li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(a)&nbsp;Definition of lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.c.html" rel="next">&sect;2.3.(c)&nbsp;Typing&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.c.html
new file mode 100644
index 0000000..e7db3ee
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(b)&nbsp;Places of lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.d.html" rel="next">&sect;2.3.(d)&nbsp;Lifting of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="subsect depth3" id="s2.3.c">
+            <h4 class="subsect">&sect;2.3.(c)&nbsp;<span class="title">Typing</span></h4>
+            <p>A lifting translation statically expects a specific role class.
+               		This expected role class must have a <code>playedBy</code> clause
+               		(either directly, or inherited (explicitly or implicitly)
+               		from a super role), to which the given base type is conform.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(b)&nbsp;Places of lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.d.html" rel="next">&sect;2.3.(d)&nbsp;Lifting of arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.d.html
new file mode 100644
index 0000000..32aadcc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.d.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(c)&nbsp;Typing</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.html" rel="next">&sect;2.3.1&nbsp;Implicit role creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+         <div class="subsect depth3" id="s2.3.d">
+            <h4 class="subsect">&sect;2.3.(d)&nbsp;<span class="title">Lifting of arrays</span></h4>
+            <p>Lifting also works for arrays of role objects.
+               		For lifting an array of base objects
+               		a new array is created and filled with role objects, one for each
+               		base object in the original array. In contrast to the role objects
+               		themselves,	lifted arrays are never reused for subsequent lifting
+               		invocations.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3.(c)&nbsp;Typing</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.3.1.html" rel="next">&sect;2.3.1&nbsp;Implicit role creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.3.html" rel="section">&sect;2.3&nbsp;Lifting</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.html
new file mode 100644
index 0000000..646b382
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.3.html
@@ -0,0 +1,727 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2&nbsp;Lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.html" rel="next">&sect;2.4&nbsp;Explicit role creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.3">
+            <h2 class="sect">&sect;2.3&nbsp;Lifting</h2>
+            <p>Lifting is the reverse translation of lowering. However, lifting is
+               	a bit more demanding, since a given base object may have zero to
+               	many role objects bound to it. Therefor, the lifting translation
+               	requires more context information and may require to create role
+               	objects on demand.
+               		
+            </p>
+            <div class="subsect depth3" id="s2.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lifting</span></h4>
+               <p>Retrieving a role for a given base object is called <strong>lifting</strong>.
+                  	    Lifting is guaranteed to yield the same role object for subsequent
+                  	    calls regarding the same base object, the same team instance and
+                  	    the same role class (see <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a>
+                  		for cases of ambiguity that are signaled by compiler warnings
+                  		and possibly runtime exceptions).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Places of lifting</span></h4>
+               <p>The lifting translation is not meant to be invoked
+                  		by client code, but translations are inserted by the compiler
+                  		at the following locations:
+                  			
+               </p>
+               <ul>
+                  <li><a href="s3.3.c.html" title="&sect;3.3.(c)&nbsp;Result translation"
+                        class="sect">Callout bindings (&sect;3.3.(c))</a> (result)
+                  </li>
+                  <li><a href="s4.5.a.html" title="&sect;4.5.(a)&nbsp;Call target translation"
+                        class="sect">Callin bindings (&sect;4.5.(a))</a> (call target and parameters)
+                  </li>
+                  <li><a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">Declared lifting (&sect;2.3.2)</a></li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="s2.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+               <p>A lifting translation statically expects a specific role class.
+                  		This expected role class must have a <code>playedBy</code> clause
+                  		(either directly, or inherited (explicitly or implicitly)
+                  		from a super role), to which the given base type is conform.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Lifting of arrays</span></h4>
+               <p>Lifting also works for arrays of role objects.
+                  		For lifting an array of base objects
+                  		a new array is created and filled with role objects, one for each
+                  		base object in the original array. In contrast to the role objects
+                  		themselves,	lifted arrays are never reused for subsequent lifting
+                  		invocations.
+                  			
+               </p>
+            </div>
+            <p id="s2.3.transpol">The term <strong>translation polymorphism</strong>
+               		describes the fact that at certain points values can be passed which are not
+               		conform to the respective declared type considering only regular
+               		inheritance (<code>extends</code>). With translation polymorphism
+               		it suffices that a value can be translated using lifting or lowering.
+               		
+            </p>
+            <div class="sect depth3" id="s2.3.1">
+               <h3 class="sect">&sect;2.3.1&nbsp;Implicit role creation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.3</a></span></h3>
+               <p>Lifting tries to reuse existing role objects so that role state persists across
+                  	lifting and lowering. If no suitable role instance is found during lifting,
+                  	a new role is created.
+                  			
+               </p>
+               <div class="subsect depth4" id="s2.3.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Reuse of existing role objects</span></h4>
+                  <p>A role object is considered suitable for reuse during lifting, if
+                     		these three items are identical:
+                     				
+                  </p>
+                  <ol>
+                     <li>the given base object</li>
+                     <li>the given team object</li>
+                     <li>the statically required role type</li>
+                  </ol>
+                  <p>For the relation between the statically required role type and
+                     			the actual type of the role object see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">"smart lifting" (&sect;2.3.3)</a>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Default lifting constructor</span></h4>
+                  <p>Lifting uses a default constructor which takes exactly one argument of the type
+                     			of the declared base class (after <code>playedBy</code>).
+                     			By default the compiler generates such a constructor for each bound role.
+                     			On the other hand, default constructors that take no arguments
+                     			(as in <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#16823"
+                        class="ext">JLS &sect;8.8.7</a>) are never generated for bound roles.
+                     			<br />
+                     			The super-constructor to be invoked by a default lifting constructor
+                     			depends on whether the role's super class is a bound role or not.
+                     				
+                  </p>
+                  <ul>
+                     <li>If the super-class is a bound role, the default lifting constructor will invoke the default lifting constructor of the super-class.</li>
+                     <li>If the super-class is not a bound role, the default lifting constructor will invoke the normal argumentless default constructor
+                        of the super-class.
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth4" id="s2.3.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Custom lifting constructor</span></h4>
+                  <p>If a role class declares a custom constructor with the same signature
+                     			as the default lifting constructor, this constructor is used during lifting.
+                     			This custom constructor may pre-assume that the role has been setup
+                     			properly regarding its base-link and registered in the team's internal map of roles.
+                     			<br />
+                     			If a bound role has an unbound super-class without an argumentless
+                     			constructor, providing a custom lifting constructor is obligatory,
+                     			because no legal default lifting constructor can be generated.
+                     				
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth3" id="s2.3.2">
+               <h3 class="sect">&sect;2.3.2&nbsp;Declared lifting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.3</a></span></h3>
+               <div class="syntaxlink"><a href="sA.html#sA.6.2" title="&sect;A.6.2&nbsp;LiftingType" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.6.2</a></div>
+               <div class="subsect depth4" id="s2.3.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Parameters with declared lifting</span></h4>
+                  <p>A non-static team-level method or constructor may declare a parameter with two types 
+                     			in order to explicitly denote a place of <strong>lifting</strong>. Using the syntax
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <em>as</em> RoleClass param) { <i>stmts</i> }</pre></div>
+                  <p>a liftable parameter can be declared, provided the second type 
+                     			(<code>RoleClass</code>) is a role of (<code>playedBy</code>) the first type (<code>BaseClass</code>). 
+                     			Furthermore, the role type must be a role of the enclosing team class defining the given method. 
+                     			The role type must be given by its simple (i.e., unqualified) name.
+                     			<br />
+                     			Such a signature requires the caller to provide a base object (here <code>BaseClass</code>), but 
+                     			the callee receives a role object (here <code>RoleClass</code>). 
+                     			In fact, the client sees a signature in which the "<code>as RoleClass</code>" part is omitted.
+                     			<br />
+                     			Compatibility between caller and callee sides is achieved by an implicitly inserted lifting translation. 
+                     			A signature using declared lifting is only valid, if the requested lifting is possible 
+                     			(see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">&sect;2.3.3</a> and <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a> for details).
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Super in the context of declared lifting</span></h4>
+                  <p>Calling <code>super</code> or <code>tsuper</code> in a method or constructor which 
+                     			declares lifting for one or more parameters refers to a method or constructor with role type parameters, 
+                     			i.e., lifting takes place <em>before</em> super invocation. Nevertheless, the super method may also 
+                     			have a declared lifting signature. It will then see the same role instance(s) as the current method.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Declared lifting of arrays</span></h4>
+                  <p>If a parameter involving explicit lifting should be of an <strong>array</strong> type, the syntax is
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <b>as</b> RoleClass param[]) ...</pre></div>
+                  <p>Here the brackets denoting the array apply to both types, <code>BaseClass</code> 
+                     			and <code>RoleClass</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Declared lifting for catch blocks</span></h4>
+                  <p>Also the argument of a catch block may apply declared lifting like in:
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>catch</b> (BaseException <b>as</b> RoleClass param) { <i>stmts</i> }</pre></div>
+                  <p>This syntax is only valid in a non-static scope of a team (directly or nested). 
+                     			In the given example, <code>RoleClass</code> must be played by <code>BaseException</code>. 
+                     			Note, that <code>RoleClass</code> itself need not be a throwable. 
+                     			As the effect of this declaration the catch block will catch any exception of type <code>BaseException</code> 
+                     			and provides it wrapped with a <code>RoleClass</code> instance to the subsequent block.
+                     			<br />
+                     			Also note, that re-throwing the given instance <code>param</code> has the semantics of implicitly lowering 
+                     			the role to its base exception before throwing, because the role  conforms to the required type 
+                     			<code>Throwable</code> only via lowering.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Generic declared lifting</span></h4>
+                  <p>A method with declared lifting may introduce a type parameter that is bounded relative to a given role type.
+                     					Such bound is declared as:
+                     				
+                  </p>
+                  <div class="listing plain"><pre>&lt;AnyBase <b>base</b> SuperRole&gt;
+<b>void</b> teamMethod(AnyBase <b>as</b> SuperRole arg) {
+   <span class="comment">// body using arg as of type SuperRole</span>
+}</pre></div>
+                  <p>This means that <code>AnyBase</code> is a type parameter whose instantiations must all be liftable to role <code>SuperRole</code>.
+                     				
+                  </p>
+                  <p>
+                     					The given type bound requires the call site to supply an argument that is compatible to any base class
+                     					for which the current team contains a bound role that is a sub class of <code>SuperRole</code>, including <code>SuperRole</code> itself.
+                     					However, <code>SuperRole</code> itself need not be bound to any base class.
+                     					On the other hand, different valid substitutions for <code>AnyBase</code> need not be related by inheritance.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     					This feature supports generalized treatment of otherwise unrelated base classes.
+                     					This is done by defining one bound role for each base under consideration and by
+                     					having all these roles extend a common unbound role.
+                     				
+                  </div>
+               </div>
+               <h5 class="listing">Example code (Declared Lifting):</h5>
+               <div class="listing example frame" id="l2.3.2">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> Super {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> MyRole <b>playedBy</b> MyBase { ... }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>void</b> m (MyRole o) { ... };</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre><b>team</b> <b>class</b> Sub <b>extends</b> Super {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  <b>void</b> m (<em>MyBase <b>as</b> MyRole o</em>) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    <span class="comment">// inside this method o is of type MyRole</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    super.m(o);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>Sub s_<b>team</b> = <b>new</b> Sub();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>s_team.m(b); <span class="comment">// clients see a parameter "MyBase o"</span></pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Clients use method <code>m</code> with a base instance (type <code>MyBase</code>) as its argument (line 13).
+                     </li>
+                     <li>Before executing the body of <code>m</code>, the argument is lifted such that the method body receives 
+                        						the argument as of type <code>MyRole</code> (line 8).
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth3" id="s2.3.3">
+               <h3 class="sect">&sect;2.3.3&nbsp;Smart lifting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.3</a></span></h3>
+               <p>In situations where role and base classes are part of some inheritance
+                  		hierarchies (<code>extends</code>), choosing the appropriate role class during
+                  		lifting involves the following rules:
+                  			
+               </p>
+               <div class="subsect depth4" id="s2.3.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Static adjustment</span></h4>
+                  <p>If a base class <code>B</code> shall be lifted to a role class
+                     			<code>R</code> that is not bound to (<code>playedBy</code>)
+                     			<code>B</code>, but if a subclass of <code>R</code>
+			&mdash; say <code>R2</code> &mdash;
+			is bound to <code>B</code>, lifting is statically setup to use
+                     			<code>R2</code>, the most general subclass of <code>R</code> that
+                     			is bound to <code>B</code> or one of its super-types.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Restriction:</h5>
+                     					This step is not applicable for parameter mappings of <code>replace</code>
+                     					callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>).
+                     				
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s2.3.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Dynamic selection of a role class</span></h4>
+                  <p>At runtime also the dynamic type of a base object is considered:
+			Lifting always tries to use a role class that is bound to the
+			exact class of the base object. Lifting considers all role&ndash;base
+			pairs bound by <code>playedBy</code> such that the role class is a
+                     			sub-class of the required (statically declared) role type
+                     			and the base class is a super-class of the
+                     			dynamic type of the base object.
+                     			<br />
+                     			From those possible pairs the most specific base class is chosen.
+                     			If multiple role classes are bound to this base class the most
+                     			specific of these classes is chosen.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Team as closed world</span></h4>
+                  <p>In the above analysis gathering all role-base pairs is performed at
+                     			compile-time. From this follows, that a team class can only be
+                     			compiled when all its contained role classes are known and a role class
+                     			can never be compiled without its team.
+                     			<br />
+                     			The analysis includes all roles and their bindings that are inherited
+                     			from the super-team.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.3.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Selection regardless of abstractness</span></h4>
+                  <p>Smart lifting is not affected by abstractness of role classes.
+                     			For the effect of abstract role classes see <a href="s2.5.html" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>.
+                     				
+                  </p>
+               </div>
+               <h5>Complex Example:</h5>
+               <p><img src="../images/smart_lifting_small.png" alt="smart lifting example" /></p>
+               <table border="2" width="80%">
+                  <colgroup span="1">
+                     <col align="left" span="1" />
+                     <col align="left" span="1" />
+                  </colgroup>
+                  <tr>
+                     <th rowspan="1" colspan="1">role class</th>
+                     <th rowspan="1" colspan="1">base class</th>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R1</td>
+                     <td rowspan="1" colspan="1">&nbsp;</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R2 extends R1 playedBy B2</td>
+                     <td rowspan="1" colspan="1">class B2</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R3 extends R2 <em>/* inherited: playedBy B2 */ </em></td>
+                     <td rowspan="1" colspan="1">class B3 extends B2</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R4 extends R3 playedBy B4</td>
+                     <td rowspan="1" colspan="1">class B4 extends B3</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R5 extends R4 <em>/* inherited: playedBy B4 */</em></td>
+                     <td rowspan="1" colspan="1">&nbsp;</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">&nbsp;</td>
+                     <td rowspan="1" colspan="1">class B6 extends B4</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">class R7 extends R5 playedBy B7</td>
+                     <td rowspan="1" colspan="1">class B7 extends B6</td>
+                  </tr>
+               </table>
+               <div class="codecomment">
+                  <ul>
+                     <li>If declarations require lifting <code>B3</code> to <code>R1</code>
+                        			this is statically refined to use <code>R2</code> instead, because this
+			is the most general class declaring a binding to a super&ndash;class
+			of <code>B3</code>.
+                        					
+                     </li>
+                     <li>If the dynamic base type in the same situation is <code>B6</code>,
+                        			three steps select the appropriate role:
+                        						
+                        <ol>
+                           <li>By searching all <code>playedBy</code> clauses (including those
+			that are inherited) the following role&ndash;base pairs are
+			candidates:<br /><code>(R2,B2), (R3,B2), (R4,B4)</code> and <code>(R5,B4)</code>.
+                           </li>
+                           <li>From these pairs the two containing the most specific base class
+                              		<code>B4</code> are chosen.
+                           </li>
+                           <li>This makes <code>R4</code> and <code>R5</code> role candidates,
+                              		from which the most specific <code>R5</code> is finally chosen.
+                           </li>
+                        </ol>
+                     </li>
+                  </ul>
+               </div>
+               <p>If the inheritance hierarchies of the involved base and role classes are given (like in the figure above) 
+                  			the smart lifting algorithm can be rephrased to the following "graphical" rule:<br /></p>
+               <div class="note">
+                  				Starting with the dynamic base type (<code>B6</code> in the example) move upwards the the inheritance 
+				relation until you reach a base class bound to a role class indicated by a &laquo;playedBy&raquo; 
+				arrow pointing to the base class (<code>B4</code>). This role class must be conform to the requested role type. 
+                  				Switch to the role side along this arrow (<code>R4</code>). Now move downwards the role inheritance hierarchy 
+				as long as the subrole does not refine the playedBy relationship (indicated by another &laquo;playedBy&raquo; arrow). 
+				The bottom role you reach this way (<code>R5</code>) is the role type selected by smart lifting.
+                  			
+               </div>
+            </div>
+            <div class="sect depth3" id="s2.3.4">
+               <h3 class="sect">&sect;2.3.4&nbsp;Binding ambiguities<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.3</a></span></h3>
+               <p>While all examples so far have only shown 1-to-1 class bindings,
+                  	    several cases of multiple bindings are allowable. Ambiguities may be
+                  	    detected at compile time and/or at runtime.
+                  			
+               </p>
+               <div class="subsect depth4" id="s2.3.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Potential ambiguity</span></h4>
+                  <p>A <strong>potential ambiguity</strong> is given,
+                     				if two role classes <code>R1</code> and <code>R2</code>
+                     				exist such that
+                     				
+                  </p>
+                  <ul>
+                     <li><code>R1</code> and <code>R2</code> are played by the
+                        					same base class <code>B</code>, and
+                     </li>
+                     <li><code>R1</code> and <code>R2</code> have a common
+                        					super role <code>R0</code>,
+                        					which is also bound to a base class <code>B0</code>, and
+                     </li>
+                     <li>neither role class <code>R1</code> nor
+                        					<code>R2</code> is a (indirect) sub-class of the other.
+                     </li>
+                  </ul>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     					According to <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                        class="sect">&sect;2.1.(c)</a>, if <code>B</code> is distinct from <code>B0</code> 
+                     					it has to be a sub-class of <code>B0</code>.
+                     				
+                  </div>
+                  <div class="note">
+                     <h5>Effect:</h5>
+                     					In this case the compiler issues a warning, stating that the <code>B</code><em> may not be liftable,</em> because both role classes <code>R1</code> 
+                     					and <code>R2</code> are candidates and there is no reason to prefer one over the other.
+                     					<br /><strong>If no potential ambiguity is detected, lifting will always be unambiguous.</strong></div>
+                  <p>In the above situation, trying to lift an instance of type <code>B</code> to the role type 
+                     			<code>R0</code> is an <strong>illegal lifting request</strong>. If <code>R0</code> is bound 
+                     			to the same base class <code>B</code> as its sub-roles <code>R1</code> and <code>R2</code> are, 
+                     			role <code>R0</code> is <strong>unliftable</strong>, meaning that no instance of <code>R0</code> 
+                     			can ever by obtained by lifting.
+                     				
+                  </p>
+                  <h5 class="listing">Example code (Potential Ambiguity):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s2.3.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Definite ambiguity</span></h4>
+                  <p>A <strong>definite ambiguity</strong> is given if
+                     				
+                  </p>
+                  <ul>
+                     <li>the situation of potential ambiguity according to (a)
+                        				above is given and
+                     </li>
+                     <li>lifting is requested (either by method binding or explicitly
+                        				(<a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)) from the shared base class <code>B</code> to any role
+                        				class <code>R0</code> that is a common super role for <code>R1</code> and <code>R2</code>.
+                     </li>
+                  </ul>
+                  <div class="note">
+                     <h5>Effect:</h5>
+                     					Definite ambiguity is a compile time error.
+                     				
+                  </div>
+                  <h5 class="listing">Example code (Definite Ambiguity):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>public</b> <b>void</b> useSuperRole(SubBase <b>as</b> SuperRole r) {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s2.3.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Actual ambiguity</span></h4>
+                  <p>At runtime <strong>actual ambiguity</strong> may occur if for the
+                     			<em>dynamic type</em> of a base to be lifted the conditions of (b)
+                     			above hold accordingly. Actual ambiguity is only possible in cases
+                     			reported by the compiler as potential ambiguity.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Effect:</h5>
+                     					An actual ambiguity is reported at runtime by throwing a
+                     					<code>org.objectteams.LiftingFailedException</code>.
+                     				
+                  </div>
+                  <h5 class="listing">Example code (Actual Ambiguity):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  </pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>public</b> <b>void</b> useSuperRole(MyBase <b>as</b> SuperRole r) {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>mt.useSuperRole(<b>new</b> SubBase());</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s2.3.4.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Mismatching role</span></h4>
+                  <p>In cases of potential ambiguity another runtime error may occur:
+                     			a <strong>mismatching role</strong> is encountered when a role is found
+                     			in the cache, which is not conform to the required type.
+                     			This happens, if the base object has previously been lifted
+                     			to a type that is incompatible with the currently requested type.
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Effect:</h5>
+                     					This is reported by throwing a <code>org.objectteams.WrongRoleException</code>.
+                     				
+                  </div>
+                  <h5 class="listing">Example code (Mismatching Role):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  </pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>public</b> <b>void</b> useRoleA(MyBase <b>as</b> SubRoleA r) {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  <b>public</b> <b>void</b> useRoleB(MyBase <b>as</b> SubRoleB r) {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>mt.useRoleA(b); <span class="comment">// creates a SubRoleA for b</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>mt.useRoleB(b); <span class="comment">// finds the SubRoleA which is not compatible</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>                <span class="comment">// to the expected type SubRoleB.</span></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>From the second item of <a href="#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                        class="sect">&sect;2.3.4.(a)</a> follows, that for binding ambiguities different
+                     	role hierarchies are analyzed in isolation.
+                     	For this analysis only those role classes are considered that are bound to a
+                     	base class (directly using <code>playedBy</code> or by inheriting this relation
+                     from another role class).
+                     	I.e., two role classes that have no common bound super role will never cause
+                     any ambiguity.
+                     				
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.2&nbsp;Lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.html" rel="next">&sect;2.4&nbsp;Explicit role creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.a.html
new file mode 100644
index 0000000..4aa86b3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.a.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.1.b.html" rel="next">&sect;2.4.1.(b)&nbsp;Fresh base object&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+         <div class="subsect depth4" id="s2.4.1.a">
+            <h4 class="subsect">&sect;2.4.1.(a)&nbsp;<span class="title">Team context</span></h4>
+            <p>The lifting constructor can be used only within the enclosing team of
+               		the role to be instantiated. Thus, qualified allocation expressions
+               		(<code>someTeam.new SomeRole(..)</code>) may never use the lifting constructor.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.1.b.html" rel="next">&sect;2.4.1.(b)&nbsp;Fresh base object&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.b.html
new file mode 100644
index 0000000..28d2864
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(a)&nbsp;Team context</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.1.c.html" rel="next">&sect;2.4.1.(c)&nbsp;Duplicate role runtime check&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+         <div class="subsect depth4" id="s2.4.1.b">
+            <h4 class="subsect">&sect;2.4.1.(b)&nbsp;<span class="title">Fresh base object</span></h4>
+            <p>If the argument to a lifting constructor invocation is a <code>new</code>
+               		expression, creating a fresh base object, the use of the lifting constructor
+               		is safe. Otherwise the rules of (c) below apply.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(a)&nbsp;Team context</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.1.c.html" rel="next">&sect;2.4.1.(c)&nbsp;Duplicate role runtime check&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.c.html
new file mode 100644
index 0000000..87d3994
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.c.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(b)&nbsp;Fresh base object</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+         <div class="subsect depth4" id="s2.4.1.c">
+            <h4 class="subsect">&sect;2.4.1.(c)&nbsp;<span class="title">Duplicate role runtime check</span></h4>
+            <p>If it cannot be syntactically derived, that the argument to a lifting
+               		constructor is a freshly created base object (b), a compile time warning will
+               		signal that an additional runtime check is needed: It must be prevented that
+               		a new role is created for a base object, which already has a role of the
+               		required type in the given team. It is not possible to replace an existing
+               		role by use of the lifting constructor. At runtime, any attempt to do so
+               		will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
+               		This exception can only occur in situations where the mentioned compile
+               		time warning had been issued.
+               		<br /><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
+               which can be used to manually prevent errors like a duplicate role.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(b)&nbsp;Fresh base object</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.html
new file mode 100644
index 0000000..8367c3e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.1.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.html" rel="next">&sect;2.4.2&nbsp;Role creation via a regular constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+         <div class="sect depth3" id="s2.4.1">
+            <h3 class="sect">&sect;2.4.1&nbsp;Role creation via a lifting constructor</h3>
+            <p>Lifting uses the default constructor for roles (see <a href="s2.3.1.html" title="&sect;2.3.1&nbsp;Implicit role creation"
+                  class="sect">&sect;2.3.1</a>).
+               This constructor can be invoked from client code, if the following rules are respected.
+               			
+            </p>
+            <div class="subsect depth4" id="s2.4.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Team context</span></h4>
+               <p>The lifting constructor can be used only within the enclosing team of
+                  		the role to be instantiated. Thus, qualified allocation expressions
+                  		(<code>someTeam.new SomeRole(..)</code>) may never use the lifting constructor.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.4.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Fresh base object</span></h4>
+               <p>If the argument to a lifting constructor invocation is a <code>new</code>
+                  		expression, creating a fresh base object, the use of the lifting constructor
+                  		is safe. Otherwise the rules of (c) below apply.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.4.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate role runtime check</span></h4>
+               <p>If it cannot be syntactically derived, that the argument to a lifting
+                  		constructor is a freshly created base object (b), a compile time warning will
+                  		signal that an additional runtime check is needed: It must be prevented that
+                  		a new role is created for a base object, which already has a role of the
+                  		required type in the given team. It is not possible to replace an existing
+                  		role by use of the lifting constructor. At runtime, any attempt to do so
+                  		will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
+                  		This exception can only occur in situations where the mentioned compile
+                  		time warning had been issued.
+                  		<br /><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
+                  which can be used to manually prevent errors like a duplicate role.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.html" rel="next">&sect;2.4.2&nbsp;Role creation via a regular constructor&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.a.html
new file mode 100644
index 0000000..be9576a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.b.html" rel="next">&sect;2.4.2.(b)&nbsp;Bound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+         <div class="subsect depth4" id="s2.4.2.a">
+            <h4 class="subsect">&sect;2.4.2.(a)&nbsp;<span class="title">Unbound roles</span></h4>
+            <p>Each constructor of a role that is <strong>not bound</strong> to a base class must use
+               		one of <code>this(..)</code>, <code>super(..)</code> or <code>tsuper(..)</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.b.html" rel="next">&sect;2.4.2.(b)&nbsp;Bound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.b.html
new file mode 100644
index 0000000..dd8756a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.b.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2.(a)&nbsp;Unbound roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.c.html" rel="next">&sect;2.4.2.(c)&nbsp;Super-call for bound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+         <div class="subsect depth4" id="s2.4.2.b">
+            <h4 class="subsect">&sect;2.4.2.(b)&nbsp;<span class="title">Bound roles</span></h4>
+            <p>Each constructor of a <strong>bound role</strong> must directly or indirectly invoke either 
+               		a <code>base(..)</code> constructor or a lifting constructor (see <a href="s2.3.1.html" title="&sect;2.3.1&nbsp;Implicit role creation"
+                  class="sect">&sect;2.3.1</a>). 
+               		Indirect calls to the base constructor or lifting constructor may use any of <code>this(..)</code>, <code>super(..)</code> 
+               		or <code>tsuper(..)</code>, which simply delegates the obligation to the called constructor.
+               		<br />
+               		If a constructor referenced by <code>base(..)</code> is not visible according to the
+               		regular rules of Java, it may still be called using <b>decapsulation</b> (see
+               		also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                  class="sect">&sect;3.4</a>, <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                  class="sect">&sect;2.1.2.(c)</a>).
+               <br />
+               Note, that if the super or tsuper role is not bound, delegating the obligation to that unbound role will not work.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2.(a)&nbsp;Unbound roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.2.c.html" rel="next">&sect;2.4.2.(c)&nbsp;Super-call for bound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.c.html
new file mode 100644
index 0000000..a66bd45
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.c.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2.(b)&nbsp;Bound roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+         <div class="subsect depth4" id="s2.4.2.c">
+            <h4 class="subsect">&sect;2.4.2.(c)&nbsp;<span class="title">Super-call for bound roles</span></h4>
+            <p>Instead of or prior to calling <code>base(..)</code> a constructor of a bound role explicitly or implicitly calls a super constructor.
+               Which constructor is applicable depends on the super role and its <code>playedBy</code> clause.
+               				
+            </p>
+            <ul>
+               <li>If the super role is bound to the same base class as the current role is,
+                  			
+                  <ul>
+                     <li>not writing a super-call causes the lifting constructor of the super role to be invoked.</li>
+                     <li>explicitly calling a super constructor requires the super constructor to <i>either</i><ol>
+                           <li>create a role instance using a base constructor call (directly or indirectly), <i>or</i></li>
+                           <li>be a lifting constructor receiving a base instance, which the current  role must provide as the argument.</li>
+                        </ol>
+                     </li>
+                  </ul>
+               </li>
+               <li>If the super role is bound but the current role refines the <code>playedBy</code> 
+                  					relationship (cf. <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                     class="sect">&sect;2.1.(c)</a>),
+                  			
+                  <ul>
+                     <li>a lifting constructor must be called explicitly passing a base object as the argument.</li>
+                  </ul>
+               </li>
+               <li>If the role has an explicit or implicit super role which is unbound the constructor may optionally 
+                  					call a super constructor (using <code>super(..)</code> or <code>tsuper(..)</code>) prior to calling 
+                  					<code>base(..)</code>. Otherwise the default constructor is implicitly invoked.
+                  					
+               </li>
+            </ul>
+            <p>When invoking a lifting constructor of a super role the base object can optionally be obtained by using a base constructor
+               call as an expression:
+               			
+            </p>
+            <div class="listing plain"><pre>super(base(<i>&lt;args&gt;</i>));</pre></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2.(b)&nbsp;Bound roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.2.html" rel="section">&sect;2.4.2&nbsp;Role creation via a regular constructor</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.html
new file mode 100644
index 0000000..20287b9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.2.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.3.html" rel="next">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+         <div class="sect depth3" id="s2.4.2">
+            <h3 class="sect">&sect;2.4.2&nbsp;Role creation via a regular constructor</h3>
+            <p>Roles may also be created explicitly using a custom constructor with arbitrary signature
+               other than the signature of the lifting constructor.<br />
+               	Within role constructors, four kinds of self-calls are possible:
+               			
+            </p>
+            <dl>
+               <dt><code>base(..)</code></dt>
+               <dd>A constructor of the corresponding base class (<a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="sect">&sect;A.5.3</a>(c)).
+               </dd>
+               <dt><code>this(..)</code></dt>
+               <dd>Another constructor of the same class.</dd>
+               <dt><code>super(..)</code></dt>
+               <dd>A constructor of the super-class (normal <code>extends</code>), <span class="underline">unless</span> the super-class is bound to a different base class, in which case calling <code>super(..)</code> is not legal.
+               </dd>
+               <dt><code>tsuper(..)</code></dt>
+               <dd>A constructor of the corresponding role of the super-team (<a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="sect">&sect;A.5.4</a>(e)). Also see the constraint in <a href="s1.3.2.c.html"
+                     title="&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' "
+                     class="sect">&sect;1.3.2.(c)</a>.
+               </dd>
+            </dl>
+            <div class="subsect depth4" id="s2.4.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Unbound roles</span></h4>
+               <p>Each constructor of a role that is <strong>not bound</strong> to a base class must use
+                  		one of <code>this(..)</code>, <code>super(..)</code> or <code>tsuper(..)</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.4.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Bound roles</span></h4>
+               <p>Each constructor of a <strong>bound role</strong> must directly or indirectly invoke either 
+                  		a <code>base(..)</code> constructor or a lifting constructor (see <a href="s2.3.1.html" title="&sect;2.3.1&nbsp;Implicit role creation"
+                     class="sect">&sect;2.3.1</a>). 
+                  		Indirect calls to the base constructor or lifting constructor may use any of <code>this(..)</code>, <code>super(..)</code> 
+                  		or <code>tsuper(..)</code>, which simply delegates the obligation to the called constructor.
+                  		<br />
+                  		If a constructor referenced by <code>base(..)</code> is not visible according to the
+                  		regular rules of Java, it may still be called using <b>decapsulation</b> (see
+                  		also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">&sect;3.4</a>, <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">&sect;2.1.2.(c)</a>).
+                  <br />
+                  Note, that if the super or tsuper role is not bound, delegating the obligation to that unbound role will not work.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s2.4.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Super-call for bound roles</span></h4>
+               <p>Instead of or prior to calling <code>base(..)</code> a constructor of a bound role explicitly or implicitly calls a super constructor.
+                  Which constructor is applicable depends on the super role and its <code>playedBy</code> clause.
+                  				
+               </p>
+               <ul>
+                  <li>If the super role is bound to the same base class as the current role is,
+                     			
+                     <ul>
+                        <li>not writing a super-call causes the lifting constructor of the super role to be invoked.</li>
+                        <li>explicitly calling a super constructor requires the super constructor to <i>either</i><ol>
+                              <li>create a role instance using a base constructor call (directly or indirectly), <i>or</i></li>
+                              <li>be a lifting constructor receiving a base instance, which the current  role must provide as the argument.</li>
+                           </ol>
+                        </li>
+                     </ul>
+                  </li>
+                  <li>If the super role is bound but the current role refines the <code>playedBy</code> 
+                     					relationship (cf. <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                        class="sect">&sect;2.1.(c)</a>),
+                     			
+                     <ul>
+                        <li>a lifting constructor must be called explicitly passing a base object as the argument.</li>
+                     </ul>
+                  </li>
+                  <li>If the role has an explicit or implicit super role which is unbound the constructor may optionally 
+                     					call a super constructor (using <code>super(..)</code> or <code>tsuper(..)</code>) prior to calling 
+                     					<code>base(..)</code>. Otherwise the default constructor is implicitly invoked.
+                     					
+                  </li>
+               </ul>
+               <p>When invoking a lifting constructor of a super role the base object can optionally be obtained by using a base constructor
+                  call as an expression:
+                  			
+               </p>
+               <div class="listing plain"><pre>super(base(<i>&lt;args&gt;</i>));</pre></div>
+            </div>
+            <p>The language system evaluates the base constructor by creating an
+               instance of the appropriate base class using a constructor with matching
+               signature. Also the internal links are setup that are needed for accessing the
+               base object from the role and for lifting the base object to the new role
+               in the future.
+               			
+            </p>
+            <p>The syntax for base constructors follows the rule that role implementations
+               never directly refer to any names of base classes or their features.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.4.3.html" rel="next">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.3.html
new file mode 100644
index 0000000..315e347
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.3.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2&nbsp;Role creation via a regular constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+         <div class="sect depth3" id="s2.4.3">
+            <h3 class="sect">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting</h3>
+            <p>Explicitly instantiating a role <code>R1</code> bound to a base <code>B</code> where smart lifting of <code>B</code> to <code>R1</code> would actually 
+               	provide a subrole <code>R2</code> is dangerous: Instantiation enters the <code>R1</code> into the team's internal cache. If at any time later lifting 
+               	this <code>B</code> to <code>R2</code> is requested, which is a legal request, the runtime system will answer by throwing a <code>org.objectteams.WrongRoleException</code> 
+               	because it finds the <code>R1</code> instead of the required <code>R2</code>.
+               	For this reason, in this specific situation the explicit instantiation <code>new R1(..)</code> will be flagged by a warning. 
+               	The problem can be avoided by using <code>R2</code> in the instantiation expression.
+               			
+            </p>
+            <h5 class="listing">Example code (WrongRoleException):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> B { <b>void</b> bm() {} }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> T {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>protected</b> <b>class</b> R1 <b>playedBy</b> B {...}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>protected</b> <b>class</b> R2 <b>extends</b> R1 { <span class="comment">// inherits the binding to B</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    <b>void</b> rm() { <span class="comment">/* body omitted */</span> }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  <b>public</b> B getDecoratedB() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    <b>return</b> <em><b>new</b> R1</em>(<b>new</b> B()); <span class="comment">// <span class="error">compile-time warning!</span></span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>  <b>public</b> <b>void</b> requestLifting(B <b>as</b> R2 r) {}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>T t = <b>new</b> T();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>B b = t.getDecoratedB(); <span class="comment">// creates an R1 for b</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>t.requestLifting(b); <span class="comment">// =&gt; <span class="error"><code>org.objectteams.WrongRoleException!</code></span></span></pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <ul>
+                  <li>A note on line 8: this line passes a fresh instance of <code>B</code> to the lifting constructor of <code>R1</code> 
+                     					(see <a href="s2.4.1.b.html" title="&sect;2.4.1.(b)&nbsp;Fresh base object"
+                        class="sect">&sect;2.4.1.(b)</a>). In order to return this <code>B</code> instance lowering is implicitly used for the return statement.
+                  </li>
+                  <li>When line 15 is executed, a lifting of <code>b</code> to <code>R2</code> is requested but due to line 8 an <code>R1</code> is found in the internal cache.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.2&nbsp;Role creation via a regular constructor</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.html
new file mode 100644
index 0000000..b4586d1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.4.html
@@ -0,0 +1,267 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.3.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3&nbsp;Lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.5.html" rel="next">&sect;2.5&nbsp;Abstract Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.4">
+            <h2 class="sect">&sect;2.4&nbsp;Explicit role creation</h2>
+            <p>Lifting is the normal technique by which role objects are created implicitly.
+               This section defines under which conditions a role can also be created explicitly.
+               		
+            </p>
+            <div class="sect depth3" id="s2.4.1">
+               <h3 class="sect">&sect;2.4.1&nbsp;Role creation via a lifting constructor<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.4</a></span></h3>
+               <p>Lifting uses the default constructor for roles (see <a href="s2.3.1.html" title="&sect;2.3.1&nbsp;Implicit role creation"
+                     class="sect">&sect;2.3.1</a>).
+                  This constructor can be invoked from client code, if the following rules are respected.
+                  			
+               </p>
+               <div class="subsect depth4" id="s2.4.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Team context</span></h4>
+                  <p>The lifting constructor can be used only within the enclosing team of
+                     		the role to be instantiated. Thus, qualified allocation expressions
+                     		(<code>someTeam.new SomeRole(..)</code>) may never use the lifting constructor.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.4.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Fresh base object</span></h4>
+                  <p>If the argument to a lifting constructor invocation is a <code>new</code>
+                     		expression, creating a fresh base object, the use of the lifting constructor
+                     		is safe. Otherwise the rules of (c) below apply.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.4.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate role runtime check</span></h4>
+                  <p>If it cannot be syntactically derived, that the argument to a lifting
+                     		constructor is a freshly created base object (b), a compile time warning will
+                     		signal that an additional runtime check is needed: It must be prevented that
+                     		a new role is created for a base object, which already has a role of the
+                     		required type in the given team. It is not possible to replace an existing
+                     		role by use of the lifting constructor. At runtime, any attempt to do so
+                     		will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
+                     		This exception can only occur in situations where the mentioned compile
+                     		time warning had been issued.
+                     		<br /><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
+                     which can be used to manually prevent errors like a duplicate role.
+                     				
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth3" id="s2.4.2">
+               <h3 class="sect">&sect;2.4.2&nbsp;Role creation via a regular constructor<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.4</a></span></h3>
+               <p>Roles may also be created explicitly using a custom constructor with arbitrary signature
+                  other than the signature of the lifting constructor.<br />
+                  	Within role constructors, four kinds of self-calls are possible:
+                  			
+               </p>
+               <dl>
+                  <dt><code>base(..)</code></dt>
+                  <dd>A constructor of the corresponding base class (<a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="sect">&sect;A.5.3</a>(c)).
+                  </dd>
+                  <dt><code>this(..)</code></dt>
+                  <dd>Another constructor of the same class.</dd>
+                  <dt><code>super(..)</code></dt>
+                  <dd>A constructor of the super-class (normal <code>extends</code>), <span class="underline">unless</span> the super-class is bound to a different base class, in which case calling <code>super(..)</code> is not legal.
+                  </dd>
+                  <dt><code>tsuper(..)</code></dt>
+                  <dd>A constructor of the corresponding role of the super-team (<a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="sect">&sect;A.5.4</a>(e)). Also see the constraint in <a href="s1.3.2.c.html"
+                        title="&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' "
+                        class="sect">&sect;1.3.2.(c)</a>.
+                  </dd>
+               </dl>
+               <div class="subsect depth4" id="s2.4.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Unbound roles</span></h4>
+                  <p>Each constructor of a role that is <strong>not bound</strong> to a base class must use
+                     		one of <code>this(..)</code>, <code>super(..)</code> or <code>tsuper(..)</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.4.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Bound roles</span></h4>
+                  <p>Each constructor of a <strong>bound role</strong> must directly or indirectly invoke either 
+                     		a <code>base(..)</code> constructor or a lifting constructor (see <a href="s2.3.1.html" title="&sect;2.3.1&nbsp;Implicit role creation"
+                        class="sect">&sect;2.3.1</a>). 
+                     		Indirect calls to the base constructor or lifting constructor may use any of <code>this(..)</code>, <code>super(..)</code> 
+                     		or <code>tsuper(..)</code>, which simply delegates the obligation to the called constructor.
+                     		<br />
+                     		If a constructor referenced by <code>base(..)</code> is not visible according to the
+                     		regular rules of Java, it may still be called using <b>decapsulation</b> (see
+                     		also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">&sect;3.4</a>, <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>).
+                     <br />
+                     Note, that if the super or tsuper role is not bound, delegating the obligation to that unbound role will not work.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s2.4.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Super-call for bound roles</span></h4>
+                  <p>Instead of or prior to calling <code>base(..)</code> a constructor of a bound role explicitly or implicitly calls a super constructor.
+                     Which constructor is applicable depends on the super role and its <code>playedBy</code> clause.
+                     				
+                  </p>
+                  <ul>
+                     <li>If the super role is bound to the same base class as the current role is,
+                        			
+                        <ul>
+                           <li>not writing a super-call causes the lifting constructor of the super role to be invoked.</li>
+                           <li>explicitly calling a super constructor requires the super constructor to <i>either</i><ol>
+                                 <li>create a role instance using a base constructor call (directly or indirectly), <i>or</i></li>
+                                 <li>be a lifting constructor receiving a base instance, which the current  role must provide as the argument.</li>
+                              </ol>
+                           </li>
+                        </ul>
+                     </li>
+                     <li>If the super role is bound but the current role refines the <code>playedBy</code> 
+                        					relationship (cf. <a href="s2.1.c.html" title="&sect;2.1.(c)&nbsp;Covariant refinement"
+                           class="sect">&sect;2.1.(c)</a>),
+                        			
+                        <ul>
+                           <li>a lifting constructor must be called explicitly passing a base object as the argument.</li>
+                        </ul>
+                     </li>
+                     <li>If the role has an explicit or implicit super role which is unbound the constructor may optionally 
+                        					call a super constructor (using <code>super(..)</code> or <code>tsuper(..)</code>) prior to calling 
+                        					<code>base(..)</code>. Otherwise the default constructor is implicitly invoked.
+                        					
+                     </li>
+                  </ul>
+                  <p>When invoking a lifting constructor of a super role the base object can optionally be obtained by using a base constructor
+                     call as an expression:
+                     			
+                  </p>
+                  <div class="listing plain"><pre>super(base(<i>&lt;args&gt;</i>));</pre></div>
+               </div>
+               <p>The language system evaluates the base constructor by creating an
+                  instance of the appropriate base class using a constructor with matching
+                  signature. Also the internal links are setup that are needed for accessing the
+                  base object from the role and for lifting the base object to the new role
+                  in the future.
+                  			
+               </p>
+               <p>The syntax for base constructors follows the rule that role implementations
+                  never directly refer to any names of base classes or their features.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s2.4.3">
+               <h3 class="sect">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2.4</a></span></h3>
+               <p>Explicitly instantiating a role <code>R1</code> bound to a base <code>B</code> where smart lifting of <code>B</code> to <code>R1</code> would actually 
+                  	provide a subrole <code>R2</code> is dangerous: Instantiation enters the <code>R1</code> into the team's internal cache. If at any time later lifting 
+                  	this <code>B</code> to <code>R2</code> is requested, which is a legal request, the runtime system will answer by throwing a <code>org.objectteams.WrongRoleException</code> 
+                  	because it finds the <code>R1</code> instead of the required <code>R2</code>.
+                  	For this reason, in this specific situation the explicit instantiation <code>new R1(..)</code> will be flagged by a warning. 
+                  	The problem can be avoided by using <code>R2</code> in the instantiation expression.
+                  			
+               </p>
+               <h5 class="listing">Example code (WrongRoleException):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> B { <b>void</b> bm() {} }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> T {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>protected</b> <b>class</b> R1 <b>playedBy</b> B {...}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>protected</b> <b>class</b> R2 <b>extends</b> R1 { <span class="comment">// inherits the binding to B</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>void</b> rm() { <span class="comment">/* body omitted */</span> }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>public</b> B getDecoratedB() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>return</b> <em><b>new</b> R1</em>(<b>new</b> B()); <span class="comment">// <span class="error">compile-time warning!</span></span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>  <b>public</b> <b>void</b> requestLifting(B <b>as</b> R2 r) {}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>T t = <b>new</b> T();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>B b = t.getDecoratedB(); <span class="comment">// creates an R1 for b</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>t.requestLifting(b); <span class="comment">// =&gt; <span class="error"><code>org.objectteams.WrongRoleException!</code></span></span></pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <ul>
+                     <li>A note on line 8: this line passes a fresh instance of <code>B</code> to the lifting constructor of <code>R1</code> 
+                        					(see <a href="#s2.4.1.b" title="&sect;2.4.1.(b)&nbsp;Fresh base object"
+                           class="sect">&sect;2.4.1.(b)</a>). In order to return this <code>B</code> instance lowering is implicitly used for the return statement.
+                     </li>
+                     <li>When line 15 is executed, a lifting of <code>b</code> to <code>R2</code> is requested but due to line 8 an <code>R1</code> is found in the internal cache.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.3.html" rel="prev">&lt;&lt;&nbsp;&sect;2.3&nbsp;Lifting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.5.html" rel="next">&sect;2.5&nbsp;Abstract Roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.a.html
new file mode 100644
index 0000000..649a659
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.a.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.5.b.html" rel="next">&sect;2.5.(b)&nbsp;Relevant roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.5.html" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+         <div class="subsect depth3" id="s2.5.a">
+            <h4 class="subsect">&sect;2.5.(a)&nbsp;<span class="title">Using abstract classes for creation</span></h4>
+            <p>Abstract role classes can indeed be used for object creation.
+               			The effect of such a statement is that the team must be
+               			marked <code>abstract</code>. Only those sub-teams are concrete
+               			that provide concrete versions for all role classes used in
+               			creation expressions.<br />
+               				This includes the case, where a
+               			super-team has a concrete role class and creates
+               			instances of this role class and only the sub-team changes
+               			the status of this role class to abstract. Also here
+               			the sub-team must be marked abstract, because it contains
+               			an abstract role class that is used in creation expressions.
+               			
+            </p>
+            <div class="note">
+               <h5>Interpretation:</h5>
+               				Since the type in a role creation expression is late-bound relative to the enclosing team instance, abstract role classes
+               can be seen 
+               				as the hook in a <strong>template&amp;hook pattern</strong> that is raised from the method level to the class level: 
+               				A super-team may already refer to the constructor of an abstract role class, 
+               				only the sub-team will provide the concrete role class to fill the hook with the necessary implementation.
+               			
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.5.b.html" rel="next">&sect;2.5.(b)&nbsp;Relevant roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.5.html" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.b.html
new file mode 100644
index 0000000..28493c3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.b.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.5.(a)&nbsp;Using abstract classes for creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.5.html" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+         <div class="subsect depth3" id="s2.5.b">
+            <h4 class="subsect">&sect;2.5.(b)&nbsp;<span class="title">Relevant roles</span></h4>
+            <p>A team must be marked <code>abstract</code> if one of its <strong>relevant roles</strong> is abstract.
+               		<br />
+               		A role is relevant in this sense if
+               			
+            </p>
+            <ul>
+               <li>the role class is public <em>or if</em></li>
+               <li>an explicit <code>new</code> expression
+                  				would require to create instances of the role class, <em>or if</em></li>
+               <li>any of the lifting methods of the enclosing team
+                  			    would require to create instances of the role class.<br />
+                  			    A role is irrelevant with respect to lifting
+                  			    if either of the following holds:
+                  			    	
+                  <ul>
+                     <li>It is not bound to a base class, neither directly nor
+                        					by an inherited <code>playedBy</code> clause.
+                     </li>
+                     <li>It has a sub-role without a <code>playedBy</code> clause.
+                     </li>
+                     <li>It is bound to an abstract base class, and for all concrete
+                        					sub-classes of the base class, a binding to a more specific role class exists.
+                     </li>
+                  </ul>
+               </li>
+            </ul>
+            <p>If neither property, relevance nor irrelevance, can be shown for an abstract role,
+               			a warning is given in case the enclosing team is not abstract.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.5.(a)&nbsp;Using abstract classes for creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.5.html" rel="section">&sect;2.5&nbsp;Abstract Roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.html
new file mode 100644
index 0000000..eeab458
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.5.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.4.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4&nbsp;Explicit role creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.html" rel="next">&sect;2.6&nbsp;Explicit base references&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.5">
+            <h2 class="sect">&sect;2.5&nbsp;Abstract Roles</h2>
+            <p>Overriding of role classes and dynamic binding of role types (<a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                  class="sect">&sect;1.3.1.(e)</a>)
+               	adds new cases to <strong>creation</strong> with respect to abstract classes.
+               		
+            </p>
+            <div class="subsect depth3" id="s2.5.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Using abstract classes for creation</span></h4>
+               <p>Abstract role classes can indeed be used for object creation.
+                  			The effect of such a statement is that the team must be
+                  			marked <code>abstract</code>. Only those sub-teams are concrete
+                  			that provide concrete versions for all role classes used in
+                  			creation expressions.<br />
+                  				This includes the case, where a
+                  			super-team has a concrete role class and creates
+                  			instances of this role class and only the sub-team changes
+                  			the status of this role class to abstract. Also here
+                  			the sub-team must be marked abstract, because it contains
+                  			an abstract role class that is used in creation expressions.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Interpretation:</h5>
+                  				Since the type in a role creation expression is late-bound relative to the enclosing team instance, abstract role classes
+                  can be seen 
+                  				as the hook in a <strong>template&amp;hook pattern</strong> that is raised from the method level to the class level: 
+                  				A super-team may already refer to the constructor of an abstract role class, 
+                  				only the sub-team will provide the concrete role class to fill the hook with the necessary implementation.
+                  			
+               </div>
+            </div>
+            <div class="subsect depth3" id="s2.5.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Relevant roles</span></h4>
+               <p>A team must be marked <code>abstract</code> if one of its <strong>relevant roles</strong> is abstract.
+                  		<br />
+                  		A role is relevant in this sense if
+                  			
+               </p>
+               <ul>
+                  <li>the role class is public <em>or if</em></li>
+                  <li>an explicit <code>new</code> expression
+                     				would require to create instances of the role class, <em>or if</em></li>
+                  <li>any of the lifting methods of the enclosing team
+                     			    would require to create instances of the role class.<br />
+                     			    A role is irrelevant with respect to lifting
+                     			    if either of the following holds:
+                     			    	
+                     <ul>
+                        <li>It is not bound to a base class, neither directly nor
+                           					by an inherited <code>playedBy</code> clause.
+                        </li>
+                        <li>It has a sub-role without a <code>playedBy</code> clause.
+                        </li>
+                        <li>It is bound to an abstract base class, and for all concrete
+                           					sub-classes of the base class, a binding to a more specific role class exists.
+                        </li>
+                     </ul>
+                  </li>
+               </ul>
+               <p>If neither property, relevance nor irrelevance, can be shown for an abstract role,
+                  			a warning is given in case the enclosing team is not abstract.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.4.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4&nbsp;Explicit role creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.html" rel="next">&sect;2.6&nbsp;Explicit base references&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.a.html
new file mode 100644
index 0000000..0120cc2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.a.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.b.html" rel="next">&sect;2.6.(b)&nbsp;Explicit base object creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.a">
+            <h4 class="subsect">&sect;2.6.(a)&nbsp;<span class="title">Externalized roles of a base team</span></h4>
+            <p>If the base class of a role <code>T1.R1</code> is again a team
+               <code>T2</code>, roles of that team <code>T2</code> can be
+               externalized (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>)
+               using <code>base</code> as their type anchor. Given that
+               <code>R2</code> is a role of <code>T2</code>, one could write:
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> T1 {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>protected</b> <b>class</b> R1 <em><b>playedBy</b> T2</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>protected</b> <em>R2&lt;@base&gt;</em> aRoleOfMyBase;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>This syntax is only legal within the body of the role <code>T1.R1</code> which is bound 
+               		to the team <code>T2</code> containing role <code>R2</code>.
+               A static type prefix can be used to disambiguate a base anchor, so the explicit variant 
+               of the above type would be <code>R2&lt;@<strong>R1</strong>.base&gt;</code>.
+               <br />
+               It is not legal to use a type anchor containing <code>base</code> as an element in a path 
+               of references like <code>&lt;@base.<span class="error">field</span>&gt;</code> 
+               or <code>&lt;@<span class="error">field</span>.base&gt;</code>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.b.html" rel="next">&sect;2.6.(b)&nbsp;Explicit base object creation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.b.html
new file mode 100644
index 0000000..e58193f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.b.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(a)&nbsp;Externalized roles of a base team</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.c.html" rel="next">&sect;2.6.(c)&nbsp;Base call in callin method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.b">
+            <h4 class="subsect">&sect;2.6.(b)&nbsp;<span class="title">Explicit base object creation</span></h4>
+            <p>Within a role constructor (which is not the lifting constructor)
+               the syntax <code>base(<em>arguments</em>)</code> causes an instance
+               of the bound base class to be created and linked (see <a href="s2.4.2.html"
+                  title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                  class="sect">&sect;2.4.2</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(a)&nbsp;Externalized roles of a base team</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.c.html" rel="next">&sect;2.6.(c)&nbsp;Base call in callin method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.c.html
new file mode 100644
index 0000000..9261213
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.c.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(b)&nbsp;Explicit base object creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.d.html" rel="next">&sect;2.6.(d)&nbsp;Base guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.c">
+            <h4 class="subsect">&sect;2.6.(c)&nbsp;<span class="title">Base call in callin method</span></h4>
+            <p>Within a <a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">callin method (&sect;4.2.(d))</a>
+               an expression <code>base.m(<em>args</em>)</code> is used to invoke the
+               originally called method (see <a href="s4.3.html" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(b)&nbsp;Explicit base object creation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.d.html" rel="next">&sect;2.6.(d)&nbsp;Base guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.d.html
new file mode 100644
index 0000000..a0f90c6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.d.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(c)&nbsp;Base call in callin method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.e.html" rel="next">&sect;2.6.(e)&nbsp;Parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.d">
+            <h4 class="subsect">&sect;2.6.(d)&nbsp;<span class="title">Base guard predicates</span></h4>
+            <p><a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">Guard predicates (&sect;5.4)</a> can
+               be specified to act on the base side using the <code><strong>base when</strong></code> keywords. 
+               Within such a base guard predicate <code>base</code> is interpreted as a special identifier
+               holding a reference to the base object that is about to be lifted
+               for the sake of a callin method interception (see <a href="s5.4.2.a.html" title="&sect;5.4.2.(a)&nbsp;Base object reference"
+                  class="sect">&sect;5.4.2.(a)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(c)&nbsp;Base call in callin method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.e.html" rel="next">&sect;2.6.(e)&nbsp;Parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.e.html
new file mode 100644
index 0000000..94da4c0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.e.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(d)&nbsp;Base guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.f.html" rel="next">&sect;2.6.(f)&nbsp;Inhibition of modification&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.e">
+            <h4 class="subsect">&sect;2.6.(e)&nbsp;<span class="title">Parameter mappings</span></h4>
+            <p>An expression at the right-hand side of a parameter mapping 
+               		(parameter in a callin binding (<a href="s4.4.html" title="&sect;4.4&nbsp;Callin parameter mapping"
+                  class="sect">&sect;4.4</a>) or 
+               		result in a callout binding  (<a href="s3.2.c.html" title="&sect;3.2.(c)&nbsp;Result mapping" class="sect">&sect;3.2.(c)</a>) ) may use the keyword <code>base</code> 
+               		to refer to the bound base instance. Such usage requires the role method bound in this method binding to be non-static.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.d.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(d)&nbsp;Base guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.f.html" rel="next">&sect;2.6.(f)&nbsp;Inhibition of modification&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.f.html
new file mode 100644
index 0000000..5a0ed12
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.f.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(e)&nbsp;Parameter mappings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.g.html" rel="next">&sect;2.6.(g)&nbsp;Decapsulation via base reference&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.f">
+            <h4 class="subsect">&sect;2.6.(f)&nbsp;<span class="title">Inhibition of modification</span></h4>
+            <p>In all cases, the <code>base</code> reference is immutable,
+               i.e., <code>base</code> can never appear as the left-hand-side of an assignment.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.e.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(e)&nbsp;Parameter mappings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.6.g.html" rel="next">&sect;2.6.(g)&nbsp;Decapsulation via base reference&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.g.html
new file mode 100644
index 0000000..ef072f3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.g.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.f.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(f)&nbsp;Inhibition of modification</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+         <div class="subsect depth3" id="s2.6.g">
+            <h4 class="subsect">&sect;2.6.(g)&nbsp;<span class="title">Decapsulation via base reference</span></h4>
+            <p>In cases <a href="s2.6.d.html" title="&sect;2.6.(d)&nbsp;Base guard predicates"
+                  class="sect">&sect;2.6.(d)</a> and <a href="s2.6.e.html" title="&sect;2.6.(e)&nbsp;Parameter mappings"
+                  class="sect">&sect;2.6.(e)</a> above, members of the base
+               			   object may be accessed that would not be visible under Java's visibility rules.
+               			   Such references are treated as decapsulation in accordance with <a href="s3.4.a.html"
+                  title="&sect;3.4.(a)&nbsp;Callout to inaccessible base method"
+                  class="sect">&sect;3.4.(a)</a> and <a href="s3.5.e.html" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>.<br />
+               			   Note that accessing a base field via <code>base</code> only gives reading access to this field.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.f.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6.(f)&nbsp;Inhibition of modification</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.6.html" rel="section">&sect;2.6&nbsp;Explicit base references</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.html
new file mode 100644
index 0000000..e3bf3c5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.6.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.5.html" rel="prev">&lt;&lt;&nbsp;&sect;2.5&nbsp;Abstract Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.html" rel="next">&sect;2.7&nbsp;Advanced structures&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.6">
+            <h2 class="sect">&sect;2.6&nbsp;Explicit base references</h2>
+            <p>The role-base link is not meant to be accessed explicitly from programs,
+               but it is fully under the control of compiler and runtime environment.
+               Accessing features of a role's base object is done by
+               <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout bindings (&sect;3)</a>.
+               Yet, a keyword <code>base</code> exists, which can be used in the following
+               contexts:
+               		
+            </p>
+            <div class="subsect depth3" id="s2.6.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Externalized roles of a base team</span></h4>
+               <p>If the base class of a role <code>T1.R1</code> is again a team
+                  <code>T2</code>, roles of that team <code>T2</code> can be
+                  externalized (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>)
+                  using <code>base</code> as their type anchor. Given that
+                  <code>R2</code> is a role of <code>T2</code>, one could write:
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> T1 {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>protected</b> <b>class</b> R1 <em><b>playedBy</b> T2</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>protected</b> <em>R2&lt;@base&gt;</em> aRoleOfMyBase;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>This syntax is only legal within the body of the role <code>T1.R1</code> which is bound 
+                  		to the team <code>T2</code> containing role <code>R2</code>.
+                  A static type prefix can be used to disambiguate a base anchor, so the explicit variant 
+                  of the above type would be <code>R2&lt;@<strong>R1</strong>.base&gt;</code>.
+                  <br />
+                  It is not legal to use a type anchor containing <code>base</code> as an element in a path 
+                  of references like <code>&lt;@base.<span class="error">field</span>&gt;</code> 
+                  or <code>&lt;@<span class="error">field</span>.base&gt;</code>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Explicit base object creation</span></h4>
+               <p>Within a role constructor (which is not the lifting constructor)
+                  the syntax <code>base(<em>arguments</em>)</code> causes an instance
+                  of the bound base class to be created and linked (see <a href="s2.4.2.html"
+                     title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                     class="sect">&sect;2.4.2</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Base call in callin method</span></h4>
+               <p>Within a <a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">callin method (&sect;4.2.(d))</a>
+                  an expression <code>base.m(<em>args</em>)</code> is used to invoke the
+                  originally called method (see <a href="s4.3.html" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Base guard predicates</span></h4>
+               <p><a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">Guard predicates (&sect;5.4)</a> can
+                  be specified to act on the base side using the <code><strong>base when</strong></code> keywords. 
+                  Within such a base guard predicate <code>base</code> is interpreted as a special identifier
+                  holding a reference to the base object that is about to be lifted
+                  for the sake of a callin method interception (see <a href="s5.4.2.a.html" title="&sect;5.4.2.(a)&nbsp;Base object reference"
+                     class="sect">&sect;5.4.2.(a)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Parameter mappings</span></h4>
+               <p>An expression at the right-hand side of a parameter mapping 
+                  		(parameter in a callin binding (<a href="s4.4.html" title="&sect;4.4&nbsp;Callin parameter mapping"
+                     class="sect">&sect;4.4</a>) or 
+                  		result in a callout binding  (<a href="s3.2.c.html" title="&sect;3.2.(c)&nbsp;Result mapping" class="sect">&sect;3.2.(c)</a>) ) may use the keyword <code>base</code> 
+                  		to refer to the bound base instance. Such usage requires the role method bound in this method binding to be non-static.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Inhibition of modification</span></h4>
+               <p>In all cases, the <code>base</code> reference is immutable,
+                  i.e., <code>base</code> can never appear as the left-hand-side of an assignment.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.6.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Decapsulation via base reference</span></h4>
+               <p>In cases <a href="#s2.6.d" title="&sect;2.6.(d)&nbsp;Base guard predicates"
+                     class="sect">&sect;2.6.(d)</a> and <a href="#s2.6.e" title="&sect;2.6.(e)&nbsp;Parameter mappings" class="sect">&sect;2.6.(e)</a> above, members of the base
+                  			   object may be accessed that would not be visible under Java's visibility rules.
+                  			   Such references are treated as decapsulation in accordance with <a href="s3.4.a.html"
+                     title="&sect;3.4.(a)&nbsp;Callout to inaccessible base method"
+                     class="sect">&sect;3.4.(a)</a> and <a href="s3.5.e.html" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>.<br />
+                  			   Note that accessing a base field via <code>base</code> only gives reading access to this field.
+                  			
+               </p>
+            </div>
+            <div class="newpage"></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.5.html" rel="prev">&lt;&lt;&nbsp;&sect;2.5&nbsp;Abstract Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.html" rel="next">&sect;2.7&nbsp;Advanced structures&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.a.html
new file mode 100644
index 0000000..7b49e16
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.b.html" rel="next">&sect;2.7.(b)&nbsp;Stacking&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="subsect depth3" id="s2.7.a">
+            <h4 class="subsect">&sect;2.7.(a)&nbsp;<span class="title">Nesting</span></h4>
+            <p>If a role (contained in a team) is also a team (marked with the <code>team</code> modifier) 
+               		it is a <strong>nested team</strong>. The depth of nesting is not restricted.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.b.html" rel="next">&sect;2.7.(b)&nbsp;Stacking&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.b.html
new file mode 100644
index 0000000..fbe11c3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.b.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.7.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(a)&nbsp;Nesting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.c.html" rel="next">&sect;2.7.(c)&nbsp;Layering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="subsect depth3" id="s2.7.b">
+            <h4 class="subsect">&sect;2.7.(b)&nbsp;<span class="title">Stacking</span></h4>
+            <p>If the base class to which a role is bound using <code>playedBy</code> is a team, 
+               		the role is said to be <strong>stacked</strong> on the base team.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.7.a.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(a)&nbsp;Nesting</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.c.html" rel="next">&sect;2.7.(c)&nbsp;Layering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.c.html
new file mode 100644
index 0000000..bed96f4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.c.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.7.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(b)&nbsp;Stacking</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.d.html" rel="next">&sect;2.7.(d)&nbsp;Implicit playedBy specialization&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="subsect depth3" id="s2.7.c">
+            <h4 class="subsect">&sect;2.7.(c)&nbsp;<span class="title">Layering</span></h4>
+            <p>If roles of a team <code>Secondary</code> are played by roles of another team <code>Primary</code> 
+               		(i.e., base classes are roles), the team <code>Secondary</code> defines a <strong>layer</strong> over the team <code>Primary</code>.
+               		Such layering requires a final reference <code>anchor</code> from <code>Secondary</code> to an instance of <code>Primary</code>. 
+               		All playedBy declarations within <code>Secondary</code> specify their base classes anchored to that final link <code>anchor</code>.
+               			
+            </p><img src="../images/Layering.png" alt="Team layering example" /><p>Due to the anchored base types, layered teams implicitly support the following guarantee: 
+               			all base objects of roles of <code>Secondary</code> are contained within the team instance specified by the link <code>anchor</code>. 
+               			If roles of <code>Secondary</code> contain any callin bindings to non-static base methods, these will be triggered only 
+               			when a base method is invoked on a base instance contained in the team specified by <code>anchor</code>.
+               			<br />
+               In accordance with <a href="s2.6.a.html"
+                  title="&sect;2.6.(a)&nbsp;Externalized roles of a base team"
+                  class="sect">&sect;2.6.(a)</a> the anchor in such anchored playedBy declarations 
+               		could also be the pseudo identifier <code>base</code>, provided that <code>Secondary</code> is a nested team, 
+               		which has a playedBy binding to <code>Primary</code> as its base class.
+               This situation is part of the second example <a href="s2.7.d.html"
+                  title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                  class="sect">below (&sect;2.7.(d))</a> (see <code>T1 playedBy TB1</code>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.7.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(b)&nbsp;Stacking</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s2.7.d.html" rel="next">&sect;2.7.(d)&nbsp;Implicit playedBy specialization&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.d.html
new file mode 100644
index 0000000..e9b0174
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.d.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.7.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(c)&nbsp;Layering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+         <div class="subsect depth3" id="s2.7.d">
+            <h4 class="subsect">&sect;2.7.(d)&nbsp;<span class="title">Implicit playedBy specialization</span></h4>
+            <p>According to <a href="s2.1.d.html" title="&sect;2.1.(d)&nbsp;No-variance" class="sect">&sect;2.1.(d)</a> an implicit sub-role may <em>implicitly</em> specialize an existing <code>playedBy</code> relation.
+               		This requires the base class to be specified relative to some implicit (<code>OuterTeam.this</code>) or explicit (<code>OuterTeam.base</code>) team anchor. 
+               		Specializing that team anchor automatically specializes the playedBy declaration, too.
+               		This rule never requires any action from a programmer but only explains the interpretation of a playedBy declaration in
+               complex situations.
+               			
+            </p>
+            <h5>Two advanced examples demonstrating the above are:</h5>
+            <table border="0">
+               <colgroup span="1">
+                  <col align="left" span="1" />
+                  <col align="left" span="1" />
+               </colgroup>
+               <tr>
+                  <td rowspan="1" colspan="1">
+                     <ul>
+                        <li>If a role <code>TOuter1.T.R</code> of a <strong>nested team </strong><code>TOuter1.T</code> is played by 
+                           					another role of the outer enclosing team <code>TOuter1.B</code>, subclassing the outer team <code>TOuter1</code> to <code>TOuter2</code> 
+                           					will produce a new role <code>TOuter2.T.R</code> which is automatically played by <code>TOuter2.B</code>, 
+                           					an implicit sub class of the original base class <code>TOuter1.B</code>.
+                        </li>
+                     </ul>
+                  </td>
+                  <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby.png"
+                          alt="Implicitly overriding playedBy" /></td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1">
+                     <ul>
+                        <li>Consider the case where a <strong>nested </strong><code>T1</code> as a role of <code>TOuter</code> is <strong>stacked</strong> 
+                           		  				on a base team <code>TB1</code>. Also, <code>T1</code> is a <strong>layered team</strong> over <code>TB1</code> 
+                           		  				because its role <code>R</code> adapts role <code>TB1.B</code>.
+                           		  				<br />
+                           		  				In this situation the playedBy relation of role <code>TOuter.T1.R</code> is given by a base-anchored type <code>B&lt;@T1.base&gt;</code>. 
+                           		  				If furthermore <code>TOuter.T1</code> is subclassed to <code>TOuter.T2</code> which covariantly refines the inherited 
+                           		  				playedBy declaration to <code>TB2</code>, then <code>TOuter.T2.R</code> will automatically refine the inherited playedBy relation 
+                           		  				to <code>TB2.B</code> to follow the new interpretation of the <code>base</code> anchor.
+                        </li>
+                     </ul>
+                  </td>
+                  <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby_base.png"
+                          alt="Implicitly overriding playedBy base" /></td>
+               </tr>
+            </table>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.7.c.html" rel="prev">&lt;&lt;&nbsp;&sect;2.7.(c)&nbsp;Layering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.7.html" rel="section">&sect;2.7&nbsp;Advanced structures</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.html
new file mode 100644
index 0000000..1890bce
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.7.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.6.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6&nbsp;Explicit base references</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+         <div class="sect depth2" id="s2.7">
+            <h2 class="sect">&sect;2.7&nbsp;Advanced structures</h2>
+            <p>This section discusses how role containment and the playedBy relationship can be combined. 
+               	It does not define new rules, but illustrates rules defined above. The central idea is that any class 
+               	can have more than one of the three flavors <em>team, role, </em>and<em> base</em>.
+               		
+            </p>
+            <div class="subsect depth3" id="s2.7.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Nesting</span></h4>
+               <p>If a role (contained in a team) is also a team (marked with the <code>team</code> modifier) 
+                  		it is a <strong>nested team</strong>. The depth of nesting is not restricted.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.7.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Stacking</span></h4>
+               <p>If the base class to which a role is bound using <code>playedBy</code> is a team, 
+                  		the role is said to be <strong>stacked</strong> on the base team.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s2.7.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Layering</span></h4>
+               <p>If roles of a team <code>Secondary</code> are played by roles of another team <code>Primary</code> 
+                  		(i.e., base classes are roles), the team <code>Secondary</code> defines a <strong>layer</strong> over the team <code>Primary</code>.
+                  		Such layering requires a final reference <code>anchor</code> from <code>Secondary</code> to an instance of <code>Primary</code>. 
+                  		All playedBy declarations within <code>Secondary</code> specify their base classes anchored to that final link <code>anchor</code>.
+                  			
+               </p><img src="../images/Layering.png" alt="Team layering example" /><p>Due to the anchored base types, layered teams implicitly support the following guarantee: 
+                  			all base objects of roles of <code>Secondary</code> are contained within the team instance specified by the link <code>anchor</code>. 
+                  			If roles of <code>Secondary</code> contain any callin bindings to non-static base methods, these will be triggered only 
+                  			when a base method is invoked on a base instance contained in the team specified by <code>anchor</code>.
+                  			<br />
+                  In accordance with <a href="s2.6.a.html"
+                     title="&sect;2.6.(a)&nbsp;Externalized roles of a base team"
+                     class="sect">&sect;2.6.(a)</a> the anchor in such anchored playedBy declarations 
+                  		could also be the pseudo identifier <code>base</code>, provided that <code>Secondary</code> is a nested team, 
+                  		which has a playedBy binding to <code>Primary</code> as its base class.
+                  This situation is part of the second example <a href="#s2.7.d" title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                     class="sect">below (&sect;2.7.(d))</a> (see <code>T1 playedBy TB1</code>).
+                  			
+               </p>
+            </div>
+            <div class="newpage"></div>
+            <div class="subsect depth3" id="s2.7.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Implicit playedBy specialization</span></h4>
+               <p>According to <a href="s2.1.d.html" title="&sect;2.1.(d)&nbsp;No-variance" class="sect">&sect;2.1.(d)</a> an implicit sub-role may <em>implicitly</em> specialize an existing <code>playedBy</code> relation.
+                  		This requires the base class to be specified relative to some implicit (<code>OuterTeam.this</code>) or explicit (<code>OuterTeam.base</code>) team anchor. 
+                  		Specializing that team anchor automatically specializes the playedBy declaration, too.
+                  		This rule never requires any action from a programmer but only explains the interpretation of a playedBy declaration in
+                  complex situations.
+                  			
+               </p>
+               <h5>Two advanced examples demonstrating the above are:</h5>
+               <table border="0">
+                  <colgroup span="1">
+                     <col align="left" span="1" />
+                     <col align="left" span="1" />
+                  </colgroup>
+                  <tr>
+                     <td rowspan="1" colspan="1">
+                        <ul>
+                           <li>If a role <code>TOuter1.T.R</code> of a <strong>nested team </strong><code>TOuter1.T</code> is played by 
+                              					another role of the outer enclosing team <code>TOuter1.B</code>, subclassing the outer team <code>TOuter1</code> to <code>TOuter2</code> 
+                              					will produce a new role <code>TOuter2.T.R</code> which is automatically played by <code>TOuter2.B</code>, 
+                              					an implicit sub class of the original base class <code>TOuter1.B</code>.
+                           </li>
+                        </ul>
+                     </td>
+                     <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby.png"
+                             alt="Implicitly overriding playedBy" /></td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1">
+                        <ul>
+                           <li>Consider the case where a <strong>nested </strong><code>T1</code> as a role of <code>TOuter</code> is <strong>stacked</strong> 
+                              		  				on a base team <code>TB1</code>. Also, <code>T1</code> is a <strong>layered team</strong> over <code>TB1</code> 
+                              		  				because its role <code>R</code> adapts role <code>TB1.B</code>.
+                              		  				<br />
+                              		  				In this situation the playedBy relation of role <code>TOuter.T1.R</code> is given by a base-anchored type <code>B&lt;@T1.base&gt;</code>. 
+                              		  				If furthermore <code>TOuter.T1</code> is subclassed to <code>TOuter.T2</code> which covariantly refines the inherited 
+                              		  				playedBy declaration to <code>TB2</code>, then <code>TOuter.T2.R</code> will automatically refine the inherited playedBy relation 
+                              		  				to <code>TB2.B</code> to follow the new interpretation of the <code>base</code> anchor.
+                           </li>
+                        </ul>
+                     </td>
+                     <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby_base.png"
+                             alt="Implicitly overriding playedBy base" /></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.6.html" rel="prev">&lt;&lt;&nbsp;&sect;2.6&nbsp;Explicit base references</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.html
new file mode 100644
index 0000000..c40aa22
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s2.html
@@ -0,0 +1,1864 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s1.html" rel="prev">&lt;&lt;&nbsp;&sect;1&nbsp;Teams and Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.html" rel="next">&sect;3&nbsp;Callout Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s2">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;2&nbsp;Role Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s2.html">&sect;2&nbsp;Role Binding</a></li>
+                  <li><a href="#s2.1">&sect;2.1&nbsp;playedBy relation</a></li>
+                  <li><a href="#s2.2">&sect;2.2&nbsp;Lowering</a></li>
+                  <li><a href="#s2.3">&sect;2.3&nbsp;Lifting</a></li>
+                  <li><a href="#s2.4">&sect;2.4&nbsp;Explicit role creation</a></li>
+                  <li><a href="#s2.5">&sect;2.5&nbsp;Abstract Roles</a></li>
+                  <li><a href="#s2.6">&sect;2.6&nbsp;Explicit base references</a></li>
+                  <li><a href="#s2.7">&sect;2.7&nbsp;Advanced structures</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Roles and base classes</h3>
+               <div class="line"></div>
+               <div class="term">playedBy relation</div>
+               <div class="termdesc">A role can be bound to a class outside the team by a <code>playedBy</code>
+                  		relation, which declares that each role instances is associated to a
+                  		base instances.
+               </div>
+               <div class="line"></div>
+               <div class="term">Base class</div>
+               <div class="termdesc">The class to which a role is bound (using <code>playedBy</code>) is called
+                  		its <strong>base class</strong>. Role instances may inherit and override
+                  		features from their base instance, which is declared using <strong>callout</strong>
+                  		(<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>)
+                  		and <strong>callin</strong> (<a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>) method bindings.
+               </div>
+               <div class="line"></div>
+               <div class="term">Bound role</div>
+               <div class="termdesc">Each role class that declares a <code>playedBy</code> relation
+                  		is called a <strong>bound role</strong>. The term bound role may also be
+                  		used for the instances of such a class.
+               </div>
+               <div class="line"></div>
+               <div class="term">Lifting / lowering</div>
+               <div class="termdesc">Translations between a role and its base are called
+                  		<strong>lifting</strong> (base to role) (<a href="#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                  	    and <strong>lowering</strong> (role to base) (<a href="#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Translation polymorphism</div>
+               <div class="termdesc">Conformance between a role and a base is governed by <strong>translation polymorphism</strong>,
+                  	    which refers to a substitutability that is achieved using either lifting or lowering.
+               </div>
+               <div class="line"></div>
+               <div class="term">Declared lifting</div>
+               <div class="termdesc">Generally, lifting happens implicitly at data flows between
+                  		a role object and its base. Team level methods provide additional
+                  		data flows, where lifting may be declared explicitly.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s2.1">
+               <h2 class="sect">&sect;2.1&nbsp;playedBy relation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.1.1</a></div>
+               <div class="subsect depth3" id="s2.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Role-base binding</span></h4>
+                  <p>Roles are bound to a base class by the <code>playedBy</code> keyword.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    ...</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Inheritance</span></h4>
+                  <p>The <code>playedBy</code> relation is inherited along
+                     		explicit and implicit (<a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>)
+                     	    role inheritance.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Covariant refinement</span></h4>
+                  <p>An <em>explicit</em> sub-role (sub-class using <code>extends</code>) 
+                     		can refine the <code>playedBy</code> relation to a more 
+                     		specific base class (this is the basis for 
+                     		<a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">smart lifting (&sect;2.3.3)</a>).<br />
+                     		If a role class inherits several <code>playedBy</code> relations from
+                     		its super-class and its super-interfaces, there must be a most specific
+                     		base-class among these relations, which is conform to all other base-classes.
+                     		This most specific base-class is the base-class of the current role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">No-variance</span></h4>
+                  <p>An <em>implicit</em> sub-role (according to <a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>)
+                     		may only add a <code>playedBy</code> relation but never change an existing one.<br />
+                     		Note however, that implicit inheritance may implicitly specialize an existing <code>playedBy</code> 
+                     		relation (this advanced situation is illustrated in <a href="#s2.7.d" title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                        class="sect">&sect;2.7.(d)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Use of playedBy bindings</span></h4>
+                  <p>The <code>playedBy</code> relation by itself has no effect
+                     	    on the behavior of role and base objects.
+                     	    It is, however, the precondition for translation polymorphism
+                     	    (lowering: <a href="#s2.2" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and lifting: <a href="#s2.3" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                     	    and for method bindings (callout: <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a> and callin: <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Effect on garbage collection</span></h4>
+                  <p>A role and its base object form one conceptual entity. The garbage collector will see a role
+                     and its base object as linked in a bidirectional manner. As a result, a role cannot be
+                     garbage collected if its base is still reachable and vice versa.
+                     <br />
+                     Internally a team manages its roles and corresponding bases using weak references.
+                     When using one of the <code>getAllRoles(..)</code>
+                     methods (see <a href="s6.1.a.html"
+                        title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                        class="sect">&sect;6.1.(a)</a>),
+                     the result may be non-deterministic because these internal structures
+                     may hold weak references to objects that will be collected by the next run of the
+                     garbage collector. We advise clients of <code>getAllRoles(..)</code> to call
+                     <code>System.gc()</code> prior to calling <code>getAllRoles(..)</code> in order
+                     to ensure deterministic results.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s2.1.1">
+                  <h3 class="sect">&sect;2.1.1&nbsp;Binding interfaces<span class="toplink"><a href="#s2.1">&uarr;&nbsp;&sect;2.1</a></span></h3>
+                  <p>Role base bindings may involve classes and/or interfaces.
+                     	An interface defined as a member of a team is a role interface and may therefore
+                     	have a <code>playedBy</code> clause. Also the type mentioned after the
+                     	<code>playedBy</code> keyword may be an interface.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Implementation limitation:</h5>
+                     				The language implementation as of OTDT version 1.0.<i>X</i> cannot yet bind 
+                     				a role class to a base interface, but this restriction will go in the future.
+                     			
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.1.2">
+                  <h3 class="sect">&sect;2.1.2&nbsp;Legal base classes<span class="toplink"><a href="#s2.1">&uarr;&nbsp;&sect;2.1</a></span></h3>
+                  <p>Generally, the base class mentioned after <code>playedBy</code> must be
+                     		visible in the enclosing scope (see <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">below (&sect;2.1.2.(c))</a> for an exception).
+                     Normally, this scope is defined just by the imports of the enclosing team.
+                     For role files (<a href="s1.2.5.b.html" title="&sect;1.2.5.(b)&nbsp;Role files" class="sect">&sect;1.2.5.(b)</a>)
+                     also additional imports in the role file are considered.
+                     <br /><a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a> below defines how imports can be constrained so that certain types 
+                     can be used as base types, only.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.1.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">No role of the same team</span></h4>
+                     <p>The base class of any role class must not be a role of the same team.
+                        			<br />
+                        			It is also not allowed to declare a role class of the same name
+                        			as a base class bound to this or another role of the enclosing team,
+                        			if that base class is given with its simple name and resolved using a regular import.
+                        			Put differently, a base class mentioned after <code>playedBy</code>
+                        			may not be <em>shadowed</em> by any role class of the enclosing team.
+                        			<br /><em>Base imports</em> as defined below (<a href="#s2.1.2.d" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>) relax this rule by 
+                        			allowing to import a class as a base class only. In that case no shadowing occurs since the scopes for 
+                        			base classes and roles are disjoint.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">No cycles</span></h4>
+                     <p>The base class mentioned after <code>playedBy</code> may not be
+                        an enclosing type (at any depth) of the role class being defined.
+                        <br />
+                        This rule prohibits the creation of cycles where the base instance of
+                        a given role <code>R</code> contains roles of the same type <code>R</code>.
+                        <br />
+                        More generally any sequence of classes <code>C<sub>1</sub>, C<sub>2</sub>, .. C<sub>n</sub></code>
+                        were each <code>C<sub>i+1</sub></code> is either a member or the base class of 
+                        <code>C<sub>i</sub></code> and <code>C<sub>n</sub> = C<sub>1</sub></code> is forbidden.
+                        <br />
+                        Conversely, it is also prohibited to bind a role class to its own inner class.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Base class decapsulation</span></h4>
+                     <p>If a base class referenced after <code>playedBy</code> exists but is not visible under normal visibility rules of Java, 
+                        				this restriction may be overridden. This concept is called <strong>decapsulation</strong>, i.e., the opposite of encapsulation 
+                        				(see also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                           class="sect">&sect;3.4</a>). A compiler should signal any occurrence of base class decapsulation. If a compiler supports to 
+                        				configure warnings this may be used to let the user choose to (a) ignore base class decapsulation, (b) treat it as a warning
+                        or even 
+                        				(c) treat it as an error.
+                        
+                     </p>
+                     <p>
+                        Binding to a <code>final</code> base class is also considered as decapsulation, since a <code>playedBy</code> relationship has
+                        powers similar to an <code>extends</code> relationship, which is prohibited by marking a class as <code>final</code>.
+                        
+                     </p>
+                     <p>
+                        Decapsulation is not allowed if the base class is a confined role (see <a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a>).
+                        
+                     </p>
+                     <p>
+                        Within the current role a decapsulated base class can be mentioned in the right-hand-side of any method binding 
+                        (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout (&sect;3)</a> or <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">callin (&sect;4)</a>). Also arguments in these positions are allowed to mention the decapsulated base class:
+                        
+                     </p>
+                     <ul>
+                        <li>the first argument of one of the role's constructors (see <a href="#s2.4.1"
+                              title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                              class="sect">lifting constructor (&sect;2.4.1)</a>).
+                        </li>
+                        <li>the base side of an argument with declared lifting (see <a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">declared lifting (&sect;2.3.2)</a>).
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Base imports</span></h4>
+                     <p>If the main type in a file denotes a team, the modifier <code>base</code> can be applied to an import in order to specify that this type 
+                        					should be imported for application as a base type only. Example:
+                        				
+                     </p>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><em><b>import</b> base</em> some.pack.MyBase;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <span class="comment">// simple name resolves to imported class:</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>protected</b> <b>class</b> MyRole <em><b>playedBy</b> MyBase</em> { } </pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  <span class="error"><em>MyBase</em> illegalDeclaration;</span> <span class="comment">// base import does not apply for this position</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <p>Types imported by a base import can only be used in the same positions where also base class decapsulation (<a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a>) 
+                        			is applicable.<br />
+                        			It is recommended that a type mentioned after the keyword <code>playedBy</code> is always imported with the <code>base</code> modifier, otherwise the compiler 
+                        			will give a warning.<br />
+                        	Base imports create a scope that is disjoint from the normal scope. Thus, names that are imported as base will never clash
+                        with normally visible names 
+                        	(in contrast to <a href="s1.4.html" title="&sect;1.4&nbsp;Name clashes" class="sect">&sect;1.4</a>). More specifically, it is not a problem to use a base class's name also for its role if a base import is used.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.1.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">No free type parameters</span></h4>
+                     <p>
+                        				Neither the role class nor the base class in a playedBy binding must have any <em>free type parameters</em>.
+                        				If both classes are specified with a type parameter of the same name, both parameters are identified
+                        				and are not considered as <em>free</em>.
+                        				
+                     </p>
+                     <p>
+                        				From this follows that a role class cannot have more type parameters than its base.
+                        				Conversely, only one situation exists where a base class can have more type parameters than a role class
+                        				bound to it: if the role class has no type parameters a generic base class can be bound using
+                        				the base class's raw type, i.e., without specifying type arguments.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					The information from the <code>playedBy</code> declaration is used at run-time 
+                        					to associate role instances to base instances.
+                        					Specifying a base class with free type parameters would imply that only such base instances
+                        					are decorated by a role whose type is conform to the specified parameterized class.
+                        					However, type arguments are not available at run-time, thus the run-time environment
+                        					is not able to decide which base instances should have a role and which should not.
+                        					This is due to the design of generics in Java which are realized by erasure.
+                        				
+                     </div>
+                     <p>The following example shows how generics can be used in various positions. Note, that some of the concepts used in the example
+                        will be explained in later sections.
+                     </p>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>public</b> <b>class</b> ValueTrafo<em>&lt;T&gt;</em> {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <em>T</em> transform(<em>T</em> val) throws Exception { /* ... */ }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> TransformTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>    <b>protected</b> <b>class</b> SafeTrafo<em>&lt;U&gt;</em> <b>playedBy</b> ValueTrafo<em>&lt;U&gt;</em> {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>        <em>U</em> transform(<em>U</em> v) <b>-&gt;</b> <em>U</em> transform(<em>U</em> val); </pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>        <b>protected</b> <em>U</em> safeTransform(<em>U</em> v) {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>            <b>try</b> {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>            	<b>return</b> transform(v);</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>            } <b>catch</b> (Exception e) {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>            	<b>return</b> v;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>            }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre>        }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">15</td>
+                              <td><pre>    <em>&lt;V&gt; V</em> perform(ValueTrafo<em>&lt;V&gt;</em> <b>as</b> SafeTrafo<em>&lt;V&gt;</em> trafo, <em>V</em> value) {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">16</td>
+                              <td><pre>        <b>return</b> trafo.safeTransform(value);</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">17</td>
+                              <td><pre>    } </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">18</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">19</td>
+                              <td><pre>...</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">20</td>
+                              <td><pre>ValueTrafo<em>&lt;String&gt;</em> trafo = <b>new</b> ValueTrafo<em>&lt;String&gt;</em>();</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">21</td>
+                              <td><pre>TransformTeam safeTrafo = <b>new</b> TransformTeam();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">22</td>
+                              <td><pre>String s = safeTrafo.perform(trafo, "Testing");</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">23</td>
+                              <td><pre></pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <div class="codecomment">
+                        <h5>Explanation</h5>
+                        <ul>
+                           <li>Line 5 shows a role with type parameter <code>U</code> where the type parameter is identified with the
+                              					    corresponding type parameter of the role's base class (which is originally declared as <code>T</code> in line 1.
+                           </li>
+                           <li>Line 6 shows a callout binding (<a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>) which mappes a base method to a corresponding role method
+                              						while maintaining the flexible typing.
+                           </li>
+                           <li>The regular method in lines 7-13 just passes values of type <code>U</code> around.
+                           </li>
+                           <li>The generic method in line 15 ff. uses declared lifting (<a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) to obtain a role for a given base object.
+                              						The method has no knowledge about the concrete type arguments of either role nor base, but works under the guarantee
+                              						that both type arguments will be the same for any single invocation.
+                           </li>
+                           <li>Lines 20 ff. finally create instances of base and team and invoke the behavior thereby instantiating type parameters to <code>String</code>.
+                           </li>
+                        </ul>
+                     </div>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.2">
+               <h2 class="sect">&sect;2.2&nbsp;Lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Each instance of a bound role class internally stores a reference to its
+                  	base object. The reference is guaranteed to exist for each bound role
+                  	instance, and cannot be changed during its lifetime.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lowering</span></h4>
+                  <p>Retrieving the base object from a role object is called <strong>lowering</strong>.
+                     		No other means exists for accessing the base reference.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Places of lowering</span></h4>
+                  <p>The lowering translation is not meant to be invoked
+                     		by client code, but <strong>implicit translations</strong> are inserted by
+                     		the compiler at all places where a role type is provided while the
+                     		corresponding base type (or a super type) was expected.<br />
+                     		In other words: lowering translations are inserted by the compiler at
+                     		all places in a program which would otherwise not be type correct
+                     		and which using	lowering are statically type correct.
+                     		This may concern:
+                     			
+                  </p>
+                  <ul>
+                     <li>the right hand side of an assignment wrt. the static type of the left hand side,</li>
+                     <li>the argument values of a method or constructor call wrt. the static type of the corresponding formal parameter,</li>
+                     <li>the return value of a method compared to the declared return type of the method.</li>
+                     <li>a role parameter in a callout binding (<a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                     </li>
+                     <li>or the return value in a callin binding (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                     </li>
+                  </ul>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> <em>MyRole <b>playedBy</b> MyBase</em> { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>void</b> useMyBase(<em>MyBase</em> myb) {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <em>MyRole</em> returnMyRole() {...}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <em>MyRole r</em> = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <em>MyBase b</em> = <em>r</em>;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    useMyBase(<em>r</em>);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <em>MyBase b2</em> = returnMyRole();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <p>An instance of type <code>MyRole</code> is lowered to type <code>MyBase</code> when
+                     </p>
+                     <ul>
+                        <li>assigning it to <code>b</code> (line 7)
+                        </li>
+                        <li>passing it as argument to a method with formal parameter of type <code>MyBase</code> (line 8)
+                        </li>
+                        <li>assigning the return value to a variable of type <code>MyBase</code> (line 9)
+                        </li>
+                     </ul>
+                     <p><em>Note</em>: The constructor call in line 6 uses the <em>lifting constructor</em> as defined in <a href="#s2.4.1"
+                           title="&sect;2.4.1&nbsp;Role creation via a lifting constructor"
+                           class="sect">&sect;2.4.1</a></p>
+                  </div>
+                  <p>Lowering translations are <span class="underline">not</span> inserted for
+                     			
+                  </p>
+                  <ul>
+                     <li>reference comparison (using <code>==</code> or <code>!=</code>)
+                     </li>
+                     <li><code>instanceof</code> checks
+                     </li>
+                     <li>cast expressions</li>
+                     <li>return values in callout bindings <a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>)
+                     </li>
+                     <li>parameters in callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>)
+                     </li>
+                  </ul>
+                  <p>For cases where lowering shall be <em>forced</em> see <a href="#s2.2.d" title="&sect;2.2.(d)&nbsp;Explicit lowering" class="sect">&sect;2.2.(d)</a> below.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+                  <p>The static type of an implicit lowering translation is the base class
+                     		declared using <code>playedBy</code> in the respective role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Explicit lowering</span></h4>
+                  <p>If a base type is also the super type of its role,
+                     		which frequently happens, if a base reference is known only by
+                     		the type <code>Object</code>, lowering cannot be deduced automatically,
+                     		since a type could be interpreted both as a role type and a base type.
+                     		These cases may need <strong>explicit lowering</strong>.
+                     		For this purpose the role class must declare to implement the interface
+                     		<strong><code>ILowerable</code></strong> (from <code>org.objectteams.ITeam</code>).
+                     		This will cause the compiler to generate a method
+                  </p>
+                  <div class="listing plain"><pre><b>public</b> Object lower()</pre></div>
+                  <p>for the given role class. Client code may use this method to
+                     		explicitly request the base object of a given role object.
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <em><b>implements</b> ILowerable</em> <b>playedBy</b> MyBase { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>void</b> doSomething() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    MyRole r = <b>new</b> MyRole(<b>new</b> MyBase());</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    Object oMyRole = r;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    Object oMyBase = r.<em>lower()</em>;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Lowering of arrays</span></h4>
+                  <p>Lowering also works for arrays of role objects.
+                     		In order to lower an array of role objects,
+                     		a new array is created and filled with base objects, one for each
+                     		role object in the original array. The array may have any number
+                     		of dimensions at any shape. The lowered array will have exactly the
+                     		same shape.<br />
+                     		Note, that each lowering translation will create a new array.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.2.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Ambiguous lowering</span></h4>
+                  <p>When assigning a value of a bound role type to a variable or argument of type <code>java.lang.Object</code>
+                     			this situation is considered as ambiguous lowering because the assignment could apply either (a) a direct upcast to <code>Object</code>
+                     			or (b) lowering and then upcasting.
+                     			In such situations the compiler will <em>not</em> insert a lowering translation, but a configurable warning will be issued.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.3">
+               <h2 class="sect">&sect;2.3&nbsp;Lifting<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Lifting is the reverse translation of lowering. However, lifting is
+                  	a bit more demanding, since a given base object may have zero to
+                  	many role objects bound to it. Therefor, the lifting translation
+                  	requires more context information and may require to create role
+                  	objects on demand.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Definition of lifting</span></h4>
+                  <p>Retrieving a role for a given base object is called <strong>lifting</strong>.
+                     	    Lifting is guaranteed to yield the same role object for subsequent
+                     	    calls regarding the same base object, the same team instance and
+                     	    the same role class (see <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a>
+                     		for cases of ambiguity that are signaled by compiler warnings
+                     		and possibly runtime exceptions).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Places of lifting</span></h4>
+                  <p>The lifting translation is not meant to be invoked
+                     		by client code, but translations are inserted by the compiler
+                     		at the following locations:
+                     			
+                  </p>
+                  <ul>
+                     <li><a href="s3.3.c.html" title="&sect;3.3.(c)&nbsp;Result translation"
+                           class="sect">Callout bindings (&sect;3.3.(c))</a> (result)
+                     </li>
+                     <li><a href="s4.5.a.html" title="&sect;4.5.(a)&nbsp;Call target translation"
+                           class="sect">Callin bindings (&sect;4.5.(a))</a> (call target and parameters)
+                     </li>
+                     <li><a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">Declared lifting (&sect;2.3.2)</a></li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s2.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Typing</span></h4>
+                  <p>A lifting translation statically expects a specific role class.
+                     		This expected role class must have a <code>playedBy</code> clause
+                     		(either directly, or inherited (explicitly or implicitly)
+                     		from a super role), to which the given base type is conform.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Lifting of arrays</span></h4>
+                  <p>Lifting also works for arrays of role objects.
+                     		For lifting an array of base objects
+                     		a new array is created and filled with role objects, one for each
+                     		base object in the original array. In contrast to the role objects
+                     		themselves,	lifted arrays are never reused for subsequent lifting
+                     		invocations.
+                     			
+                  </p>
+               </div>
+               <p id="s2.3.transpol">The term <strong>translation polymorphism</strong>
+                  		describes the fact that at certain points values can be passed which are not
+                  		conform to the respective declared type considering only regular
+                  		inheritance (<code>extends</code>). With translation polymorphism
+                  		it suffices that a value can be translated using lifting or lowering.
+                  		
+               </p>
+               <div class="sect depth3" id="s2.3.1">
+                  <h3 class="sect">&sect;2.3.1&nbsp;Implicit role creation<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>Lifting tries to reuse existing role objects so that role state persists across
+                     	lifting and lowering. If no suitable role instance is found during lifting,
+                     	a new role is created.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Reuse of existing role objects</span></h4>
+                     <p>A role object is considered suitable for reuse during lifting, if
+                        		these three items are identical:
+                        				
+                     </p>
+                     <ol>
+                        <li>the given base object</li>
+                        <li>the given team object</li>
+                        <li>the statically required role type</li>
+                     </ol>
+                     <p>For the relation between the statically required role type and
+                        			the actual type of the role object see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">"smart lifting" (&sect;2.3.3)</a>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Default lifting constructor</span></h4>
+                     <p>Lifting uses a default constructor which takes exactly one argument of the type
+                        			of the declared base class (after <code>playedBy</code>).
+                        			By default the compiler generates such a constructor for each bound role.
+                        			On the other hand, default constructors that take no arguments
+                        			(as in <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#16823"
+                           class="ext">JLS &sect;8.8.7</a>) are never generated for bound roles.
+                        			<br />
+                        			The super-constructor to be invoked by a default lifting constructor
+                        			depends on whether the role's super class is a bound role or not.
+                        				
+                     </p>
+                     <ul>
+                        <li>If the super-class is a bound role, the default lifting constructor will invoke the default lifting constructor of the super-class.</li>
+                        <li>If the super-class is not a bound role, the default lifting constructor will invoke the normal argumentless default constructor
+                           of the super-class.
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Custom lifting constructor</span></h4>
+                     <p>If a role class declares a custom constructor with the same signature
+                        			as the default lifting constructor, this constructor is used during lifting.
+                        			This custom constructor may pre-assume that the role has been setup
+                        			properly regarding its base-link and registered in the team's internal map of roles.
+                        			<br />
+                        			If a bound role has an unbound super-class without an argumentless
+                        			constructor, providing a custom lifting constructor is obligatory,
+                        			because no legal default lifting constructor can be generated.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.2">
+                  <h3 class="sect">&sect;2.3.2&nbsp;Declared lifting<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <div class="syntaxlink"><a href="sA.html#sA.6.2" title="&sect;A.6.2&nbsp;LiftingType" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.6.2</a></div>
+                  <div class="subsect depth4" id="s2.3.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Parameters with declared lifting</span></h4>
+                     <p>A non-static team-level method or constructor may declare a parameter with two types 
+                        			in order to explicitly denote a place of <strong>lifting</strong>. Using the syntax
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <em>as</em> RoleClass param) { <i>stmts</i> }</pre></div>
+                     <p>a liftable parameter can be declared, provided the second type 
+                        			(<code>RoleClass</code>) is a role of (<code>playedBy</code>) the first type (<code>BaseClass</code>). 
+                        			Furthermore, the role type must be a role of the enclosing team class defining the given method. 
+                        			The role type must be given by its simple (i.e., unqualified) name.
+                        			<br />
+                        			Such a signature requires the caller to provide a base object (here <code>BaseClass</code>), but 
+                        			the callee receives a role object (here <code>RoleClass</code>). 
+                        			In fact, the client sees a signature in which the "<code>as RoleClass</code>" part is omitted.
+                        			<br />
+                        			Compatibility between caller and callee sides is achieved by an implicitly inserted lifting translation. 
+                        			A signature using declared lifting is only valid, if the requested lifting is possible 
+                        			(see <a href="#s2.3.3" title="&sect;2.3.3&nbsp;Smart lifting" class="sect">&sect;2.3.3</a> and <a href="#s2.3.4" title="&sect;2.3.4&nbsp;Binding ambiguities" class="sect">&sect;2.3.4</a> for details).
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Super in the context of declared lifting</span></h4>
+                     <p>Calling <code>super</code> or <code>tsuper</code> in a method or constructor which 
+                        			declares lifting for one or more parameters refers to a method or constructor with role type parameters, 
+                        			i.e., lifting takes place <em>before</em> super invocation. Nevertheless, the super method may also 
+                        			have a declared lifting signature. It will then see the same role instance(s) as the current method.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Declared lifting of arrays</span></h4>
+                     <p>If a parameter involving explicit lifting should be of an <strong>array</strong> type, the syntax is
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>public</b> <b>void</b> m (BaseClass <b>as</b> RoleClass param[]) ...</pre></div>
+                     <p>Here the brackets denoting the array apply to both types, <code>BaseClass</code> 
+                        			and <code>RoleClass</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Declared lifting for catch blocks</span></h4>
+                     <p>Also the argument of a catch block may apply declared lifting like in:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>catch</b> (BaseException <b>as</b> RoleClass param) { <i>stmts</i> }</pre></div>
+                     <p>This syntax is only valid in a non-static scope of a team (directly or nested). 
+                        			In the given example, <code>RoleClass</code> must be played by <code>BaseException</code>. 
+                        			Note, that <code>RoleClass</code> itself need not be a throwable. 
+                        			As the effect of this declaration the catch block will catch any exception of type <code>BaseException</code> 
+                        			and provides it wrapped with a <code>RoleClass</code> instance to the subsequent block.
+                        			<br />
+                        			Also note, that re-throwing the given instance <code>param</code> has the semantics of implicitly lowering 
+                        			the role to its base exception before throwing, because the role  conforms to the required type 
+                        			<code>Throwable</code> only via lowering.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Generic declared lifting</span></h4>
+                     <p>A method with declared lifting may introduce a type parameter that is bounded relative to a given role type.
+                        					Such bound is declared as:
+                        				
+                     </p>
+                     <div class="listing plain"><pre>&lt;AnyBase <b>base</b> SuperRole&gt;
+<b>void</b> teamMethod(AnyBase <b>as</b> SuperRole arg) {
+   <span class="comment">// body using arg as of type SuperRole</span>
+}</pre></div>
+                     <p>This means that <code>AnyBase</code> is a type parameter whose instantiations must all be liftable to role <code>SuperRole</code>.
+                        				
+                     </p>
+                     <p>
+                        					The given type bound requires the call site to supply an argument that is compatible to any base class
+                        					for which the current team contains a bound role that is a sub class of <code>SuperRole</code>, including <code>SuperRole</code> itself.
+                        					However, <code>SuperRole</code> itself need not be bound to any base class.
+                        					On the other hand, different valid substitutions for <code>AnyBase</code> need not be related by inheritance.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					This feature supports generalized treatment of otherwise unrelated base classes.
+                        					This is done by defining one bound role for each base under consideration and by
+                        					having all these roles extend a common unbound role.
+                        				
+                     </div>
+                  </div>
+                  <h5 class="listing">Example code (Declared Lifting):</h5>
+                  <div class="listing example frame" id="l2.3.2">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Super {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> MyRole <b>playedBy</b> MyBase { ... }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>void</b> m (MyRole o) { ... };</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre><b>team</b> <b>class</b> Sub <b>extends</b> Super {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>void</b> m (<em>MyBase <b>as</b> MyRole o</em>) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <span class="comment">// inside this method o is of type MyRole</span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    super.m(o);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>Sub s_<b>team</b> = <b>new</b> Sub();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>s_team.m(b); <span class="comment">// clients see a parameter "MyBase o"</span></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li>Clients use method <code>m</code> with a base instance (type <code>MyBase</code>) as its argument (line 13).
+                        </li>
+                        <li>Before executing the body of <code>m</code>, the argument is lifted such that the method body receives 
+                           						the argument as of type <code>MyRole</code> (line 8).
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.3">
+                  <h3 class="sect">&sect;2.3.3&nbsp;Smart lifting<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>In situations where role and base classes are part of some inheritance
+                     		hierarchies (<code>extends</code>), choosing the appropriate role class during
+                     		lifting involves the following rules:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Static adjustment</span></h4>
+                     <p>If a base class <code>B</code> shall be lifted to a role class
+                        			<code>R</code> that is not bound to (<code>playedBy</code>)
+                        			<code>B</code>, but if a subclass of <code>R</code>
+			&mdash; say <code>R2</code> &mdash;
+			is bound to <code>B</code>, lifting is statically setup to use
+                        			<code>R2</code>, the most general subclass of <code>R</code> that
+                        			is bound to <code>B</code> or one of its super-types.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Restriction:</h5>
+                        					This step is not applicable for parameter mappings of <code>replace</code>
+                        					callin bindings (<a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>).
+                        				
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Dynamic selection of a role class</span></h4>
+                     <p>At runtime also the dynamic type of a base object is considered:
+			Lifting always tries to use a role class that is bound to the
+			exact class of the base object. Lifting considers all role&ndash;base
+			pairs bound by <code>playedBy</code> such that the role class is a
+                        			sub-class of the required (statically declared) role type
+                        			and the base class is a super-class of the
+                        			dynamic type of the base object.
+                        			<br />
+                        			From those possible pairs the most specific base class is chosen.
+                        			If multiple role classes are bound to this base class the most
+                        			specific of these classes is chosen.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Team as closed world</span></h4>
+                     <p>In the above analysis gathering all role-base pairs is performed at
+                        			compile-time. From this follows, that a team class can only be
+                        			compiled when all its contained role classes are known and a role class
+                        			can never be compiled without its team.
+                        			<br />
+                        			The analysis includes all roles and their bindings that are inherited
+                        			from the super-team.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.3.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Selection regardless of abstractness</span></h4>
+                     <p>Smart lifting is not affected by abstractness of role classes.
+                        			For the effect of abstract role classes see <a href="#s2.5" title="&sect;2.5&nbsp;Abstract Roles" class="sect">&sect;2.5</a>.
+                        				
+                     </p>
+                  </div>
+                  <h5>Complex Example:</h5>
+                  <p><img src="../images/smart_lifting_small.png" alt="smart lifting example" /></p>
+                  <table border="2" width="80%">
+                     <colgroup span="1">
+                        <col align="left" span="1" />
+                        <col align="left" span="1" />
+                     </colgroup>
+                     <tr>
+                        <th rowspan="1" colspan="1">role class</th>
+                        <th rowspan="1" colspan="1">base class</th>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R1</td>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R2 extends R1 playedBy B2</td>
+                        <td rowspan="1" colspan="1">class B2</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R3 extends R2 <em>/* inherited: playedBy B2 */ </em></td>
+                        <td rowspan="1" colspan="1">class B3 extends B2</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R4 extends R3 playedBy B4</td>
+                        <td rowspan="1" colspan="1">class B4 extends B3</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R5 extends R4 <em>/* inherited: playedBy B4 */</em></td>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">&nbsp;</td>
+                        <td rowspan="1" colspan="1">class B6 extends B4</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">class R7 extends R5 playedBy B7</td>
+                        <td rowspan="1" colspan="1">class B7 extends B6</td>
+                     </tr>
+                  </table>
+                  <div class="codecomment">
+                     <ul>
+                        <li>If declarations require lifting <code>B3</code> to <code>R1</code>
+                           			this is statically refined to use <code>R2</code> instead, because this
+			is the most general class declaring a binding to a super&ndash;class
+			of <code>B3</code>.
+                           					
+                        </li>
+                        <li>If the dynamic base type in the same situation is <code>B6</code>,
+                           			three steps select the appropriate role:
+                           						
+                           <ol>
+                              <li>By searching all <code>playedBy</code> clauses (including those
+			that are inherited) the following role&ndash;base pairs are
+			candidates:<br /><code>(R2,B2), (R3,B2), (R4,B4)</code> and <code>(R5,B4)</code>.
+                              </li>
+                              <li>From these pairs the two containing the most specific base class
+                                 		<code>B4</code> are chosen.
+                              </li>
+                              <li>This makes <code>R4</code> and <code>R5</code> role candidates,
+                                 		from which the most specific <code>R5</code> is finally chosen.
+                              </li>
+                           </ol>
+                        </li>
+                     </ul>
+                  </div>
+                  <p>If the inheritance hierarchies of the involved base and role classes are given (like in the figure above) 
+                     			the smart lifting algorithm can be rephrased to the following "graphical" rule:<br /></p>
+                  <div class="note">
+                     				Starting with the dynamic base type (<code>B6</code> in the example) move upwards the the inheritance 
+				relation until you reach a base class bound to a role class indicated by a &laquo;playedBy&raquo; 
+				arrow pointing to the base class (<code>B4</code>). This role class must be conform to the requested role type. 
+                     				Switch to the role side along this arrow (<code>R4</code>). Now move downwards the role inheritance hierarchy 
+				as long as the subrole does not refine the playedBy relationship (indicated by another &laquo;playedBy&raquo; arrow). 
+				The bottom role you reach this way (<code>R5</code>) is the role type selected by smart lifting.
+                     			
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.3.4">
+                  <h3 class="sect">&sect;2.3.4&nbsp;Binding ambiguities<span class="toplink"><a href="#s2.3">&uarr;&nbsp;&sect;2.3</a></span></h3>
+                  <p>While all examples so far have only shown 1-to-1 class bindings,
+                     	    several cases of multiple bindings are allowable. Ambiguities may be
+                     	    detected at compile time and/or at runtime.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.3.4.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Potential ambiguity</span></h4>
+                     <p>A <strong>potential ambiguity</strong> is given,
+                        				if two role classes <code>R1</code> and <code>R2</code>
+                        				exist such that
+                        				
+                     </p>
+                     <ul>
+                        <li><code>R1</code> and <code>R2</code> are played by the
+                           					same base class <code>B</code>, and
+                        </li>
+                        <li><code>R1</code> and <code>R2</code> have a common
+                           					super role <code>R0</code>,
+                           					which is also bound to a base class <code>B0</code>, and
+                        </li>
+                        <li>neither role class <code>R1</code> nor
+                           					<code>R2</code> is a (indirect) sub-class of the other.
+                        </li>
+                     </ul>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        					According to <a href="#s2.1.c" title="&sect;2.1.(c)&nbsp;Covariant refinement" class="sect">&sect;2.1.(c)</a>, if <code>B</code> is distinct from <code>B0</code> 
+                        					it has to be a sub-class of <code>B0</code>.
+                        				
+                     </div>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					In this case the compiler issues a warning, stating that the <code>B</code><em> may not be liftable,</em> because both role classes <code>R1</code> 
+                        					and <code>R2</code> are candidates and there is no reason to prefer one over the other.
+                        					<br /><strong>If no potential ambiguity is detected, lifting will always be unambiguous.</strong></div>
+                     <p>In the above situation, trying to lift an instance of type <code>B</code> to the role type 
+                        			<code>R0</code> is an <strong>illegal lifting request</strong>. If <code>R0</code> is bound 
+                        			to the same base class <code>B</code> as its sub-roles <code>R1</code> and <code>R2</code> are, 
+                        			role <code>R0</code> is <strong>unliftable</strong>, meaning that no instance of <code>R0</code> 
+                        			can ever by obtained by lifting.
+                        				
+                     </p>
+                     <h5 class="listing">Example code (Potential Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Definite ambiguity</span></h4>
+                     <p>A <strong>definite ambiguity</strong> is given if
+                        				
+                     </p>
+                     <ul>
+                        <li>the situation of potential ambiguity according to (a)
+                           				above is given and
+                        </li>
+                        <li>lifting is requested (either by method binding or explicitly
+                           				(<a href="#s2.3.2" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>)) from the shared base class <code>B</code> to any role
+                           				class <code>R0</code> that is a common super role for <code>R1</code> and <code>R2</code>.
+                        </li>
+                     </ul>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					Definite ambiguity is a compile time error.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Definite Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useSuperRole(SubBase <b>as</b> SuperRole r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Actual ambiguity</span></h4>
+                     <p>At runtime <strong>actual ambiguity</strong> may occur if for the
+                        			<em>dynamic type</em> of a base to be lifted the conditions of (b)
+                        			above hold accordingly. Actual ambiguity is only possible in cases
+                        			reported by the compiler as potential ambiguity.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					An actual ambiguity is reported at runtime by throwing a
+                        					<code>org.objectteams.LiftingFailedException</code>.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Actual Ambiguity):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole <b>playedBy</b> SubBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useSuperRole(MyBase <b>as</b> SuperRole r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>mt.useSuperRole(<b>new</b> SubBase());</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s2.3.4.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Mismatching role</span></h4>
+                     <p>In cases of potential ambiguity another runtime error may occur:
+                        			a <strong>mismatching role</strong> is encountered when a role is found
+                        			in the cache, which is not conform to the required type.
+                        			This happens, if the base object has previously been lifted
+                        			to a type that is incompatible with the currently requested type.
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Effect:</h5>
+                        					This is reported by throwing a <code>org.objectteams.WrongRoleException</code>.
+                        				
+                     </div>
+                     <h5 class="listing">Example code (Mismatching Role):</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>  <b>public</b> <b>class</b> SuperRole <b>playedBy</b> MyBase {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleA <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>  <b>public</b> <b>class</b> SubRoleB <b>extends</b> SuperRole {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre>  </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>  <b>public</b> <b>void</b> useRoleA(MyBase <b>as</b> SubRoleA r) {...}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>  <b>public</b> <b>void</b> useRoleB(MyBase <b>as</b> SubRoleB r) {...}</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>MyTeam mt = <b>new</b> MyTeam();</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>MyBase b = <b>new</b> MyBase();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>mt.useRoleA(b); <span class="comment">// creates a SubRoleA for b</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre>mt.useRoleB(b); <span class="comment">// finds the SubRoleA which is not compatible</span></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre>                <span class="comment">// to the expected type SubRoleB.</span></pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <p>From the second item of <a href="#s2.3.4.a" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                           class="sect">&sect;2.3.4.(a)</a> follows, that for binding ambiguities different
+                        	role hierarchies are analyzed in isolation.
+                        	For this analysis only those role classes are considered that are bound to a
+                        	base class (directly using <code>playedBy</code> or by inheriting this relation
+                        from another role class).
+                        	I.e., two role classes that have no common bound super role will never cause
+                        any ambiguity.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.4">
+               <h2 class="sect">&sect;2.4&nbsp;Explicit role creation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Lifting is the normal technique by which role objects are created implicitly.
+                  This section defines under which conditions a role can also be created explicitly.
+                  		
+               </p>
+               <div class="sect depth3" id="s2.4.1">
+                  <h3 class="sect">&sect;2.4.1&nbsp;Role creation via a lifting constructor<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Lifting uses the default constructor for roles (see <a href="#s2.3.1" title="&sect;2.3.1&nbsp;Implicit role creation" class="sect">&sect;2.3.1</a>).
+                     This constructor can be invoked from client code, if the following rules are respected.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s2.4.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Team context</span></h4>
+                     <p>The lifting constructor can be used only within the enclosing team of
+                        		the role to be instantiated. Thus, qualified allocation expressions
+                        		(<code>someTeam.new SomeRole(..)</code>) may never use the lifting constructor.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Fresh base object</span></h4>
+                     <p>If the argument to a lifting constructor invocation is a <code>new</code>
+                        		expression, creating a fresh base object, the use of the lifting constructor
+                        		is safe. Otherwise the rules of (c) below apply.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate role runtime check</span></h4>
+                     <p>If it cannot be syntactically derived, that the argument to a lifting
+                        		constructor is a freshly created base object (b), a compile time warning will
+                        		signal that an additional runtime check is needed: It must be prevented that
+                        		a new role is created for a base object, which already has a role of the
+                        		required type in the given team. It is not possible to replace an existing
+                        		role by use of the lifting constructor. At runtime, any attempt to do so
+                        		will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
+                        		This exception can only occur in situations where the mentioned compile
+                        		time warning had been issued.
+                        		<br /><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
+                        which can be used to manually prevent errors like a duplicate role.
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s2.4.2">
+                  <h3 class="sect">&sect;2.4.2&nbsp;Role creation via a regular constructor<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Roles may also be created explicitly using a custom constructor with arbitrary signature
+                     other than the signature of the lifting constructor.<br />
+                     	Within role constructors, four kinds of self-calls are possible:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>base(..)</code></dt>
+                     <dd>A constructor of the corresponding base class (<a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="sect">&sect;A.5.3</a>(c)).
+                     </dd>
+                     <dt><code>this(..)</code></dt>
+                     <dd>Another constructor of the same class.</dd>
+                     <dt><code>super(..)</code></dt>
+                     <dd>A constructor of the super-class (normal <code>extends</code>), <span class="underline">unless</span> the super-class is bound to a different base class, in which case calling <code>super(..)</code> is not legal.
+                     </dd>
+                     <dt><code>tsuper(..)</code></dt>
+                     <dd>A constructor of the corresponding role of the super-team (<a href="sA.html#sA.5.4" title="&sect;A.5.4&nbsp;TSuperCall" class="sect">&sect;A.5.4</a>(e)). Also see the constraint in <a href="s1.3.2.c.html"
+                           title="&sect;1.3.2.(c)&nbsp;Constructors and overridden 'extends' "
+                           class="sect">&sect;1.3.2.(c)</a>.
+                     </dd>
+                  </dl>
+                  <div class="subsect depth4" id="s2.4.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Unbound roles</span></h4>
+                     <p>Each constructor of a role that is <strong>not bound</strong> to a base class must use
+                        		one of <code>this(..)</code>, <code>super(..)</code> or <code>tsuper(..)</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Bound roles</span></h4>
+                     <p>Each constructor of a <strong>bound role</strong> must directly or indirectly invoke either 
+                        		a <code>base(..)</code> constructor or a lifting constructor (see <a href="#s2.3.1" title="&sect;2.3.1&nbsp;Implicit role creation" class="sect">&sect;2.3.1</a>). 
+                        		Indirect calls to the base constructor or lifting constructor may use any of <code>this(..)</code>, <code>super(..)</code> 
+                        		or <code>tsuper(..)</code>, which simply delegates the obligation to the called constructor.
+                        		<br />
+                        		If a constructor referenced by <code>base(..)</code> is not visible according to the
+                        		regular rules of Java, it may still be called using <b>decapsulation</b> (see
+                        		also <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                           class="sect">&sect;3.4</a>, <a href="#s2.1.2.c" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a>).
+                        <br />
+                        Note, that if the super or tsuper role is not bound, delegating the obligation to that unbound role will not work.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s2.4.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Super-call for bound roles</span></h4>
+                     <p>Instead of or prior to calling <code>base(..)</code> a constructor of a bound role explicitly or implicitly calls a super constructor.
+                        Which constructor is applicable depends on the super role and its <code>playedBy</code> clause.
+                        				
+                     </p>
+                     <ul>
+                        <li>If the super role is bound to the same base class as the current role is,
+                           			
+                           <ul>
+                              <li>not writing a super-call causes the lifting constructor of the super role to be invoked.</li>
+                              <li>explicitly calling a super constructor requires the super constructor to <i>either</i><ol>
+                                    <li>create a role instance using a base constructor call (directly or indirectly), <i>or</i></li>
+                                    <li>be a lifting constructor receiving a base instance, which the current  role must provide as the argument.</li>
+                                 </ol>
+                              </li>
+                           </ul>
+                        </li>
+                        <li>If the super role is bound but the current role refines the <code>playedBy</code> 
+                           					relationship (cf. <a href="#s2.1.c" title="&sect;2.1.(c)&nbsp;Covariant refinement" class="sect">&sect;2.1.(c)</a>),
+                           			
+                           <ul>
+                              <li>a lifting constructor must be called explicitly passing a base object as the argument.</li>
+                           </ul>
+                        </li>
+                        <li>If the role has an explicit or implicit super role which is unbound the constructor may optionally 
+                           					call a super constructor (using <code>super(..)</code> or <code>tsuper(..)</code>) prior to calling 
+                           					<code>base(..)</code>. Otherwise the default constructor is implicitly invoked.
+                           					
+                        </li>
+                     </ul>
+                     <p>When invoking a lifting constructor of a super role the base object can optionally be obtained by using a base constructor
+                        call as an expression:
+                        			
+                     </p>
+                     <div class="listing plain"><pre>super(base(<i>&lt;args&gt;</i>));</pre></div>
+                  </div>
+                  <p>The language system evaluates the base constructor by creating an
+                     instance of the appropriate base class using a constructor with matching
+                     signature. Also the internal links are setup that are needed for accessing the
+                     base object from the role and for lifting the base object to the new role
+                     in the future.
+                     			
+                  </p>
+                  <p>The syntax for base constructors follows the rule that role implementations
+                     never directly refer to any names of base classes or their features.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s2.4.3">
+                  <h3 class="sect">&sect;2.4.3&nbsp;Role creation in the presence of smart lifting<span class="toplink"><a href="#s2.4">&uarr;&nbsp;&sect;2.4</a></span></h3>
+                  <p>Explicitly instantiating a role <code>R1</code> bound to a base <code>B</code> where smart lifting of <code>B</code> to <code>R1</code> would actually 
+                     	provide a subrole <code>R2</code> is dangerous: Instantiation enters the <code>R1</code> into the team's internal cache. If at any time later lifting 
+                     	this <code>B</code> to <code>R2</code> is requested, which is a legal request, the runtime system will answer by throwing a <code>org.objectteams.WrongRoleException</code> 
+                     	because it finds the <code>R1</code> instead of the required <code>R2</code>.
+                     	For this reason, in this specific situation the explicit instantiation <code>new R1(..)</code> will be flagged by a warning. 
+                     	The problem can be avoided by using <code>R2</code> in the instantiation expression.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (WrongRoleException):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> B { <b>void</b> bm() {} }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R1 <b>playedBy</b> B {...}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R2 <b>extends</b> R1 { <span class="comment">// inherits the binding to B</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>    <b>void</b> rm() { <span class="comment">/* body omitted */</span> }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>  <b>public</b> B getDecoratedB() {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    <b>return</b> <em><b>new</b> R1</em>(<b>new</b> B()); <span class="comment">// <span class="error">compile-time warning!</span></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>  <b>public</b> <b>void</b> requestLifting(B <b>as</b> R2 r) {}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre><span class="comment">// plus these calls:</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre>T t = <b>new</b> T();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre>B b = t.getDecoratedB(); <span class="comment">// creates an R1 for b</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>t.requestLifting(b); <span class="comment">// =&gt; <span class="error"><code>org.objectteams.WrongRoleException!</code></span></span></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <ul>
+                        <li>A note on line 8: this line passes a fresh instance of <code>B</code> to the lifting constructor of <code>R1</code> 
+                           					(see <a href="#s2.4.1.b" title="&sect;2.4.1.(b)&nbsp;Fresh base object"
+                              class="sect">&sect;2.4.1.(b)</a>). In order to return this <code>B</code> instance lowering is implicitly used for the return statement.
+                        </li>
+                        <li>When line 15 is executed, a lifting of <code>b</code> to <code>R2</code> is requested but due to line 8 an <code>R1</code> is found in the internal cache.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.5">
+               <h2 class="sect">&sect;2.5&nbsp;Abstract Roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>Overriding of role classes and dynamic binding of role types (<a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                     class="sect">&sect;1.3.1.(e)</a>)
+                  	adds new cases to <strong>creation</strong> with respect to abstract classes.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Using abstract classes for creation</span></h4>
+                  <p>Abstract role classes can indeed be used for object creation.
+                     			The effect of such a statement is that the team must be
+                     			marked <code>abstract</code>. Only those sub-teams are concrete
+                     			that provide concrete versions for all role classes used in
+                     			creation expressions.<br />
+                     				This includes the case, where a
+                     			super-team has a concrete role class and creates
+                     			instances of this role class and only the sub-team changes
+                     			the status of this role class to abstract. Also here
+                     			the sub-team must be marked abstract, because it contains
+                     			an abstract role class that is used in creation expressions.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Interpretation:</h5>
+                     				Since the type in a role creation expression is late-bound relative to the enclosing team instance, abstract role classes
+                     can be seen 
+                     				as the hook in a <strong>template&amp;hook pattern</strong> that is raised from the method level to the class level: 
+                     				A super-team may already refer to the constructor of an abstract role class, 
+                     				only the sub-team will provide the concrete role class to fill the hook with the necessary implementation.
+                     			
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s2.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Relevant roles</span></h4>
+                  <p>A team must be marked <code>abstract</code> if one of its <strong>relevant roles</strong> is abstract.
+                     		<br />
+                     		A role is relevant in this sense if
+                     			
+                  </p>
+                  <ul>
+                     <li>the role class is public <em>or if</em></li>
+                     <li>an explicit <code>new</code> expression
+                        				would require to create instances of the role class, <em>or if</em></li>
+                     <li>any of the lifting methods of the enclosing team
+                        			    would require to create instances of the role class.<br />
+                        			    A role is irrelevant with respect to lifting
+                        			    if either of the following holds:
+                        			    	
+                        <ul>
+                           <li>It is not bound to a base class, neither directly nor
+                              					by an inherited <code>playedBy</code> clause.
+                           </li>
+                           <li>It has a sub-role without a <code>playedBy</code> clause.
+                           </li>
+                           <li>It is bound to an abstract base class, and for all concrete
+                              					sub-classes of the base class, a binding to a more specific role class exists.
+                           </li>
+                        </ul>
+                     </li>
+                  </ul>
+                  <p>If neither property, relevance nor irrelevance, can be shown for an abstract role,
+                     			a warning is given in case the enclosing team is not abstract.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s2.6">
+               <h2 class="sect">&sect;2.6&nbsp;Explicit base references<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>The role-base link is not meant to be accessed explicitly from programs,
+                  but it is fully under the control of compiler and runtime environment.
+                  Accessing features of a role's base object is done by
+                  <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">callout bindings (&sect;3)</a>.
+                  Yet, a keyword <code>base</code> exists, which can be used in the following
+                  contexts:
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.6.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Externalized roles of a base team</span></h4>
+                  <p>If the base class of a role <code>T1.R1</code> is again a team
+                     <code>T2</code>, roles of that team <code>T2</code> can be
+                     externalized (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>)
+                     using <code>base</code> as their type anchor. Given that
+                     <code>R2</code> is a role of <code>T2</code>, one could write:
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> T1 {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> R1 <em><b>playedBy</b> T2</em> {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>protected</b> <em>R2&lt;@base&gt;</em> aRoleOfMyBase;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>This syntax is only legal within the body of the role <code>T1.R1</code> which is bound 
+                     		to the team <code>T2</code> containing role <code>R2</code>.
+                     A static type prefix can be used to disambiguate a base anchor, so the explicit variant 
+                     of the above type would be <code>R2&lt;@<strong>R1</strong>.base&gt;</code>.
+                     <br />
+                     It is not legal to use a type anchor containing <code>base</code> as an element in a path 
+                     of references like <code>&lt;@base.<span class="error">field</span>&gt;</code> 
+                     or <code>&lt;@<span class="error">field</span>.base&gt;</code>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Explicit base object creation</span></h4>
+                  <p>Within a role constructor (which is not the lifting constructor)
+                     the syntax <code>base(<em>arguments</em>)</code> causes an instance
+                     of the bound base class to be created and linked (see <a href="#s2.4.2"
+                        title="&sect;2.4.2&nbsp;Role creation via a regular constructor"
+                        class="sect">&sect;2.4.2</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Base call in callin method</span></h4>
+                  <p>Within a <a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">callin method (&sect;4.2.(d))</a>
+                     an expression <code>base.m(<em>args</em>)</code> is used to invoke the
+                     originally called method (see <a href="s4.3.html" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Base guard predicates</span></h4>
+                  <p><a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">Guard predicates (&sect;5.4)</a> can
+                     be specified to act on the base side using the <code><strong>base when</strong></code> keywords. 
+                     Within such a base guard predicate <code>base</code> is interpreted as a special identifier
+                     holding a reference to the base object that is about to be lifted
+                     for the sake of a callin method interception (see <a href="s5.4.2.a.html" title="&sect;5.4.2.(a)&nbsp;Base object reference"
+                        class="sect">&sect;5.4.2.(a)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Parameter mappings</span></h4>
+                  <p>An expression at the right-hand side of a parameter mapping 
+                     		(parameter in a callin binding (<a href="s4.4.html" title="&sect;4.4&nbsp;Callin parameter mapping"
+                        class="sect">&sect;4.4</a>) or 
+                     		result in a callout binding  (<a href="s3.2.c.html" title="&sect;3.2.(c)&nbsp;Result mapping" class="sect">&sect;3.2.(c)</a>) ) may use the keyword <code>base</code> 
+                     		to refer to the bound base instance. Such usage requires the role method bound in this method binding to be non-static.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Inhibition of modification</span></h4>
+                  <p>In all cases, the <code>base</code> reference is immutable,
+                     i.e., <code>base</code> can never appear as the left-hand-side of an assignment.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.6.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Decapsulation via base reference</span></h4>
+                  <p>In cases <a href="#s2.6.d" title="&sect;2.6.(d)&nbsp;Base guard predicates"
+                        class="sect">&sect;2.6.(d)</a> and <a href="#s2.6.e" title="&sect;2.6.(e)&nbsp;Parameter mappings" class="sect">&sect;2.6.(e)</a> above, members of the base
+                     			   object may be accessed that would not be visible under Java's visibility rules.
+                     			   Such references are treated as decapsulation in accordance with <a href="s3.4.a.html"
+                        title="&sect;3.4.(a)&nbsp;Callout to inaccessible base method"
+                        class="sect">&sect;3.4.(a)</a> and <a href="s3.5.e.html" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>.<br />
+                     			   Note that accessing a base field via <code>base</code> only gives reading access to this field.
+                     			
+                  </p>
+               </div>
+               <div class="newpage"></div>
+            </div>
+            <div class="sect depth2" id="s2.7">
+               <h2 class="sect">&sect;2.7&nbsp;Advanced structures<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;2</a></span></h2>
+               <p>This section discusses how role containment and the playedBy relationship can be combined. 
+                  	It does not define new rules, but illustrates rules defined above. The central idea is that any class 
+                  	can have more than one of the three flavors <em>team, role, </em>and<em> base</em>.
+                  		
+               </p>
+               <div class="subsect depth3" id="s2.7.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Nesting</span></h4>
+                  <p>If a role (contained in a team) is also a team (marked with the <code>team</code> modifier) 
+                     		it is a <strong>nested team</strong>. The depth of nesting is not restricted.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.7.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Stacking</span></h4>
+                  <p>If the base class to which a role is bound using <code>playedBy</code> is a team, 
+                     		the role is said to be <strong>stacked</strong> on the base team.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s2.7.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Layering</span></h4>
+                  <p>If roles of a team <code>Secondary</code> are played by roles of another team <code>Primary</code> 
+                     		(i.e., base classes are roles), the team <code>Secondary</code> defines a <strong>layer</strong> over the team <code>Primary</code>.
+                     		Such layering requires a final reference <code>anchor</code> from <code>Secondary</code> to an instance of <code>Primary</code>. 
+                     		All playedBy declarations within <code>Secondary</code> specify their base classes anchored to that final link <code>anchor</code>.
+                     			
+                  </p><img src="../images/Layering.png" alt="Team layering example" /><p>Due to the anchored base types, layered teams implicitly support the following guarantee: 
+                     			all base objects of roles of <code>Secondary</code> are contained within the team instance specified by the link <code>anchor</code>. 
+                     			If roles of <code>Secondary</code> contain any callin bindings to non-static base methods, these will be triggered only 
+                     			when a base method is invoked on a base instance contained in the team specified by <code>anchor</code>.
+                     			<br />
+                     In accordance with <a href="#s2.6.a" title="&sect;2.6.(a)&nbsp;Externalized roles of a base team"
+                        class="sect">&sect;2.6.(a)</a> the anchor in such anchored playedBy declarations 
+                     		could also be the pseudo identifier <code>base</code>, provided that <code>Secondary</code> is a nested team, 
+                     		which has a playedBy binding to <code>Primary</code> as its base class.
+                     This situation is part of the second example <a href="#s2.7.d" title="&sect;2.7.(d)&nbsp;Implicit playedBy specialization"
+                        class="sect">below (&sect;2.7.(d))</a> (see <code>T1 playedBy TB1</code>).
+                     			
+                  </p>
+               </div>
+               <div class="newpage"></div>
+               <div class="subsect depth3" id="s2.7.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Implicit playedBy specialization</span></h4>
+                  <p>According to <a href="#s2.1.d" title="&sect;2.1.(d)&nbsp;No-variance" class="sect">&sect;2.1.(d)</a> an implicit sub-role may <em>implicitly</em> specialize an existing <code>playedBy</code> relation.
+                     		This requires the base class to be specified relative to some implicit (<code>OuterTeam.this</code>) or explicit (<code>OuterTeam.base</code>) team anchor. 
+                     		Specializing that team anchor automatically specializes the playedBy declaration, too.
+                     		This rule never requires any action from a programmer but only explains the interpretation of a playedBy declaration in
+                     complex situations.
+                     			
+                  </p>
+                  <h5>Two advanced examples demonstrating the above are:</h5>
+                  <table border="0">
+                     <colgroup span="1">
+                        <col align="left" span="1" />
+                        <col align="left" span="1" />
+                     </colgroup>
+                     <tr>
+                        <td rowspan="1" colspan="1">
+                           <ul>
+                              <li>If a role <code>TOuter1.T.R</code> of a <strong>nested team </strong><code>TOuter1.T</code> is played by 
+                                 					another role of the outer enclosing team <code>TOuter1.B</code>, subclassing the outer team <code>TOuter1</code> to <code>TOuter2</code> 
+                                 					will produce a new role <code>TOuter2.T.R</code> which is automatically played by <code>TOuter2.B</code>, 
+                                 					an implicit sub class of the original base class <code>TOuter1.B</code>.
+                              </li>
+                           </ul>
+                        </td>
+                        <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby.png"
+                                alt="Implicitly overriding playedBy" /></td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1">
+                           <ul>
+                              <li>Consider the case where a <strong>nested </strong><code>T1</code> as a role of <code>TOuter</code> is <strong>stacked</strong> 
+                                 		  				on a base team <code>TB1</code>. Also, <code>T1</code> is a <strong>layered team</strong> over <code>TB1</code> 
+                                 		  				because its role <code>R</code> adapts role <code>TB1.B</code>.
+                                 		  				<br />
+                                 		  				In this situation the playedBy relation of role <code>TOuter.T1.R</code> is given by a base-anchored type <code>B&lt;@T1.base&gt;</code>. 
+                                 		  				If furthermore <code>TOuter.T1</code> is subclassed to <code>TOuter.T2</code> which covariantly refines the inherited 
+                                 		  				playedBy declaration to <code>TB2</code>, then <code>TOuter.T2.R</code> will automatically refine the inherited playedBy relation 
+                                 		  				to <code>TB2.B</code> to follow the new interpretation of the <code>base</code> anchor.
+                              </li>
+                           </ul>
+                        </td>
+                        <td rowspan="1" colspan="1"><img src="../images/implicitly_overriding_playedby_base.png"
+                                alt="Implicitly overriding playedBy base" /></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s1.html" rel="prev">&lt;&lt;&nbsp;&sect;1&nbsp;Teams and Roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.html" rel="next">&sect;3&nbsp;Callout Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.a.html
new file mode 100644
index 0000000..c7895a0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.b.html" rel="next">&sect;3.1.(b)&nbsp;Definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.a">
+            <h4 class="subsect">&sect;3.1.(a)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+            <p>A callout binding requires the enclosing class to be a role class
+               	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.b.html" rel="next">&sect;3.1.(b)&nbsp;Definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.b.html
new file mode 100644
index 0000000..be6f1f9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.b.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(a)&nbsp;Prerequisite: Class binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.c.html" rel="next">&sect;3.1.(c)&nbsp;Kinds of method designators&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.b">
+            <h4 class="subsect">&sect;3.1.(b)&nbsp;<span class="title">Definition</span></h4>
+            <p>A callout binding maps an abstract role method ("expected method")
+               	    to a concrete base method ("provided method").
+               	    It may appear within the role class at any place where feature
+               	    declarations are allowed. It is denoted by
+               			
+            </p>
+            <div class="listing plain"><pre><i>expected_method_designator</i> <b>-&gt;</b> <i>provided_method_designator;</i></pre></div>
+            <p>The effect is that any call to the role method will be forwarded to the
+               	    associated base object using the provided base method.
+               			
+            </p>
+            <h5 class="listing">Example code (Callout):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>abstract</b> String getIdentification();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <span class="comment">// callout binding see below...</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(a)&nbsp;Prerequisite: Class binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.c.html" rel="next">&sect;3.1.(c)&nbsp;Kinds of method designators&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.c.html
new file mode 100644
index 0000000..d709d94
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.c.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(b)&nbsp;Definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.d.html" rel="next">&sect;3.1.(d)&nbsp;Inheritance of role method declarations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.c">
+            <h4 class="subsect">&sect;3.1.(c)&nbsp;<span class="title">Kinds of method designators</span></h4>
+            <p>A method designator may either be a method name
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">4</td>
+                     <td><pre>getIdentification <em>-&gt;</em> getName;</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p><strong>or</strong>
+               	    a complete method signature including parameter declarations and
+               	    return type declaration, but excluding any modifiers and declared exceptions.
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">4</td>
+                     <td><pre>String getIdentification() <em>-&gt;</em> String getName();</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li> Line 4 declares a callout binding for the role method <code>getIdentification()</code>, 
+                     							 providing an implementation for the abstract method defined in line 3.
+                  </li>
+                  <li> In combination with the role binding in line 2 this has the following effect:</li>
+                  <li> Any call to <code>Employee.getIdentification</code> 
+                     							 is forwarded to the method <code>Person.getName</code>.
+                  </li>
+               </ul>
+            </div>
+            <p>Both sides of a callout binding must use the same kind of
+               	    designators, i.e., designators with and without signature may not be mixed.
+               	    <br />
+               	    Each method designator must uniquely select one method.
+               If a method designator contains a signature this signature must match exactly with the signature 
+               of an existing method, i.e., no implicit conversions are applied for this matching.
+               	    If overloading is involved, signatures <em>must</em> be used to disambiguate.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(b)&nbsp;Definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.d.html" rel="next">&sect;3.1.(d)&nbsp;Inheritance of role method declarations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.d.html
new file mode 100644
index 0000000..cb52118
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.d.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(c)&nbsp;Kinds of method designators</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.e.html" rel="next">&sect;3.1.(e)&nbsp;Callout override&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.d">
+            <h4 class="subsect">&sect;3.1.(d)&nbsp;<span class="title">Inheritance of role method declarations</span></h4>
+            <p>The role method being bound by a callout may be declared in the same
+               	    class as the binding or it may be inherited from a super class or
+               	    super interface.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(c)&nbsp;Kinds of method designators</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.e.html" rel="next">&sect;3.1.(e)&nbsp;Callout override&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.e.html
new file mode 100644
index 0000000..1a6bd12
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.e.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(d)&nbsp;Inheritance of role method declarations</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.f.html" rel="next">&sect;3.1.(f)&nbsp;Inheritance of callout bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.e">
+            <h4 class="subsect">&sect;3.1.(e)&nbsp;<span class="title">Callout override</span></h4>
+            <p>If an inherited role method is concrete, callout binding regarding this
+               	    method must use the token "<code>=&gt;</code>" instead of "<code>-&gt;</code>"
+               	    in order to declare that this binding overrides an existing implementation.
+               	    <br />
+               				
+               		Using the "<code>=&gt;</code>" operator for an abstract method is an error.
+               		<br />
+               	    It is also an error (and not useful anyway) to callout-bind a method that is
+               	    implemented in the same class as the binding.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(d)&nbsp;Inheritance of role method declarations</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.f.html" rel="next">&sect;3.1.(f)&nbsp;Inheritance of callout bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.f.html
new file mode 100644
index 0000000..158cb02
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.f.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(e)&nbsp;Callout override</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.g.html" rel="next">&sect;3.1.(g)&nbsp;Duplicate bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.f">
+            <h4 class="subsect">&sect;3.1.(f)&nbsp;<span class="title">Inheritance of callout bindings</span></h4>
+            <p> Callout bindings are inherited along explicit and implicit inheritance.
+               	    Inherited callout bindings can be overridden using "<code>=&gt;</code>".
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(e)&nbsp;Callout override</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.g.html" rel="next">&sect;3.1.(g)&nbsp;Duplicate bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.g.html
new file mode 100644
index 0000000..49f21d6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.g.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(f)&nbsp;Inheritance of callout bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.h.html" rel="next">&sect;3.1.(h)&nbsp;Declared exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.g">
+            <h4 class="subsect">&sect;3.1.(g)&nbsp;<span class="title">Duplicate bindings</span></h4>
+            <p>It is an error if a role class has multiple callout bindings for the
+               	    same role method.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(f)&nbsp;Inheritance of callout bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.h.html" rel="next">&sect;3.1.(h)&nbsp;Declared exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.h.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.h.html
new file mode 100644
index 0000000..c0548e0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.h.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(g)&nbsp;Duplicate bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.i.html" rel="next">&sect;3.1.(i)&nbsp;Shorthand definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.h">
+            <h4 class="subsect">&sect;3.1.(h)&nbsp;<span class="title">Declared exceptions</span></h4>
+            <p>It is an error if a base method to be bound by <strong>callout</strong>
+               	    declares in its <code>throws</code> clause any exceptions that
+               	    are not declared by the corresponding role method.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(g)&nbsp;Duplicate bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.i.html" rel="next">&sect;3.1.(i)&nbsp;Shorthand definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.html
new file mode 100644
index 0000000..3ba2079
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.html
@@ -0,0 +1,282 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.html" rel="next">&sect;3.2&nbsp;Callout parameter mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="sect depth2" id="s3.1">
+            <h2 class="sect">&sect;3.1&nbsp;Callout method binding</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.2</a></div>
+            <p>A role class may acquire the implementation for any of its
+               	(expected) methods by declaring a <strong>callout</strong> binding.
+               		
+            </p>
+            <div class="subsect depth3" id="s3.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+               <p>A callout binding requires the enclosing class to be a role class
+                  	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Definition</span></h4>
+               <p>A callout binding maps an abstract role method ("expected method")
+                  	    to a concrete base method ("provided method").
+                  	    It may appear within the role class at any place where feature
+                  	    declarations are allowed. It is denoted by
+                  			
+               </p>
+               <div class="listing plain"><pre><i>expected_method_designator</i> <b>-&gt;</b> <i>provided_method_designator;</i></pre></div>
+               <p>The effect is that any call to the role method will be forwarded to the
+                  	    associated base object using the provided base method.
+                  			
+               </p>
+               <h5 class="listing">Example code (Callout):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>abstract</b> String getIdentification();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <span class="comment">// callout binding see below...</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s3.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Kinds of method designators</span></h4>
+               <p>A method designator may either be a method name
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">4</td>
+                        <td><pre>getIdentification <em>-&gt;</em> getName;</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p><strong>or</strong>
+                  	    a complete method signature including parameter declarations and
+                  	    return type declaration, but excluding any modifiers and declared exceptions.
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">4</td>
+                        <td><pre>String getIdentification() <em>-&gt;</em> String getName();</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li> Line 4 declares a callout binding for the role method <code>getIdentification()</code>, 
+                        							 providing an implementation for the abstract method defined in line 3.
+                     </li>
+                     <li> In combination with the role binding in line 2 this has the following effect:</li>
+                     <li> Any call to <code>Employee.getIdentification</code> 
+                        							 is forwarded to the method <code>Person.getName</code>.
+                     </li>
+                  </ul>
+               </div>
+               <p>Both sides of a callout binding must use the same kind of
+                  	    designators, i.e., designators with and without signature may not be mixed.
+                  	    <br />
+                  	    Each method designator must uniquely select one method.
+                  If a method designator contains a signature this signature must match exactly with the signature 
+                  of an existing method, i.e., no implicit conversions are applied for this matching.
+                  	    If overloading is involved, signatures <em>must</em> be used to disambiguate.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Inheritance of role method declarations</span></h4>
+               <p>The role method being bound by a callout may be declared in the same
+                  	    class as the binding or it may be inherited from a super class or
+                  	    super interface.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Callout override</span></h4>
+               <p>If an inherited role method is concrete, callout binding regarding this
+                  	    method must use the token "<code>=&gt;</code>" instead of "<code>-&gt;</code>"
+                  	    in order to declare that this binding overrides an existing implementation.
+                  	    <br />
+                  				
+                  		Using the "<code>=&gt;</code>" operator for an abstract method is an error.
+                  		<br />
+                  	    It is also an error (and not useful anyway) to callout-bind a method that is
+                  	    implemented in the same class as the binding.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Inheritance of callout bindings</span></h4>
+               <p> Callout bindings are inherited along explicit and implicit inheritance.
+                  	    Inherited callout bindings can be overridden using "<code>=&gt;</code>".
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Duplicate bindings</span></h4>
+               <p>It is an error if a role class has multiple callout bindings for the
+                  	    same role method.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.h">
+               <h4 class="subsect">(h)&nbsp;<span class="title">Declared exceptions</span></h4>
+               <p>It is an error if a base method to be bound by <strong>callout</strong>
+                  	    declares in its <code>throws</code> clause any exceptions that
+                  	    are not declared by the corresponding role method.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.i">
+               <h4 class="subsect">(i)&nbsp;<span class="title">Shorthand definition</span></h4>
+               <p> A callout binding whose method designators specify
+                  full method signatures does not require an existing role method.
+                  If no role method is found matching the expected method of
+                  such a callout binding, a new method is implicitly generated.
+                  The new method is static iff the bound base method is static,
+                  and it declares the same exceptions as the bound base method.
+                  			
+               </p>
+               <p>
+                  		A shorthand callout may optionally declare a <strong>visibility modifier</strong>,
+                  		otherwise the generated method inherits the visibility modifier of the bound base method.
+                  		No further modifiers are set.
+                  		If a callout overrides an inherited method or callout, 
+                  		it must not reduce the visibility of the inherited method/callout.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.j">
+               <h4 class="subsect">(j)&nbsp;<span class="title">Inferred callout</span></h4>
+               <p> If a non-abstract role class inherits an abstract method the compiler 
+                  				tries to infer a callout binding for implementing the abstract method.
+                  				Similarly, if a self-call in a role class cannot be resolved, the compiler
+                  				tries to infer a callout to resolve the self-call.<br />
+                  Inference searches for a method in the bound base class such that
+                  
+               </p>
+               <ol>
+                  <li>both methods have the same name</li>
+                  <li>both methods have the same number of arguments</li>
+                  <li>each argument of the abstract role method is compatible to the 
+                     corresponding argument of the base method directly, or using 
+                     boxing/unboxing or lowering.
+                  </li>
+               </ol>
+               <p>
+                  Callouts inferred from an interface have <code>public</code> visibility,
+                  callouts inferred from a self-call have <code>private</code> visibility. 
+                  
+               </p>
+               <p>
+                  Per default inferred callout bindings are disabled, i.e., a compiler 
+                  must report these as an error. However, a compiler should allow to 
+                  configure reporting to produce a warning only (which can be suppressed 
+                  using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                  or to completely ignore the diagnostic.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.1.k">
+               <h4 class="subsect">(k)&nbsp;<span class="title">Callout to generic method</span></h4>
+               <p>When referring to a generic base method</p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre>&lt;T&gt; T bm(T a)</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>a callout binding may either propagate the method's genericity as in</p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">2</td>
+                        <td><pre>&lt;T&gt; T rm(T a) <b>-&gt;</b> T bm(T a);</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>or it may supply a valid substitution for the type parameter as in</p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">2</td>
+                        <td><pre>String rm(String a) <b>-&gt;</b> String bm(String a);</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <p>A callout binding either attaches an implementation to a previously declared method 
+               		or adds (<a href="#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition" class="sect">&sect;3.1.(i)</a> above) a forwarding method to a role class.
+               Apart from this implementation, callout-bound methods do not differ from regular methods.
+               		
+            </p>
+            <p>When we say, a callout binding defines <strong>forwarding</strong> this means that
+               		control is passed to the base object. In contrast, by a <strong>delegation</strong>
+               		semantics control <em>would</em> remain at the role object, such that self-calls
+               		would again be dispatched starting at the role. Callout bindings on
+               		their own do not support delegation. However, in conjunction with method
+               		overriding by means of callin bindings (see <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>)
+               		the effect of delegation can easily be achieved.
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.html" rel="next">&sect;3.2&nbsp;Callout parameter mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.i.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.i.html
new file mode 100644
index 0000000..635101d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.i.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.h.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(h)&nbsp;Declared exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.j.html" rel="next">&sect;3.1.(j)&nbsp;Inferred callout&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.i">
+            <h4 class="subsect">&sect;3.1.(i)&nbsp;<span class="title">Shorthand definition</span></h4>
+            <p> A callout binding whose method designators specify
+               full method signatures does not require an existing role method.
+               If no role method is found matching the expected method of
+               such a callout binding, a new method is implicitly generated.
+               The new method is static iff the bound base method is static,
+               and it declares the same exceptions as the bound base method.
+               			
+            </p>
+            <p>
+               		A shorthand callout may optionally declare a <strong>visibility modifier</strong>,
+               		otherwise the generated method inherits the visibility modifier of the bound base method.
+               		No further modifiers are set.
+               		If a callout overrides an inherited method or callout, 
+               		it must not reduce the visibility of the inherited method/callout.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.h.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(h)&nbsp;Declared exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.j.html" rel="next">&sect;3.1.(j)&nbsp;Inferred callout&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.j.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.j.html
new file mode 100644
index 0000000..1b44762
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.j.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.i.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(i)&nbsp;Shorthand definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.k.html" rel="next">&sect;3.1.(k)&nbsp;Callout to generic method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.j">
+            <h4 class="subsect">&sect;3.1.(j)&nbsp;<span class="title">Inferred callout</span></h4>
+            <p> If a non-abstract role class inherits an abstract method the compiler 
+               				tries to infer a callout binding for implementing the abstract method.
+               				Similarly, if a self-call in a role class cannot be resolved, the compiler
+               				tries to infer a callout to resolve the self-call.<br />
+               Inference searches for a method in the bound base class such that
+               
+            </p>
+            <ol>
+               <li>both methods have the same name</li>
+               <li>both methods have the same number of arguments</li>
+               <li>each argument of the abstract role method is compatible to the 
+                  corresponding argument of the base method directly, or using 
+                  boxing/unboxing or lowering.
+               </li>
+            </ol>
+            <p>
+               Callouts inferred from an interface have <code>public</code> visibility,
+               callouts inferred from a self-call have <code>private</code> visibility. 
+               
+            </p>
+            <p>
+               Per default inferred callout bindings are disabled, i.e., a compiler 
+               must report these as an error. However, a compiler should allow to 
+               configure reporting to produce a warning only (which can be suppressed 
+               using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+               or to completely ignore the diagnostic.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.i.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(i)&nbsp;Shorthand definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.1.k.html" rel="next">&sect;3.1.(k)&nbsp;Callout to generic method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.k.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.k.html
new file mode 100644
index 0000000..e489871
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.1.k.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.j.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(j)&nbsp;Inferred callout</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+         <div class="subsect depth3" id="s3.1.k">
+            <h4 class="subsect">&sect;3.1.(k)&nbsp;<span class="title">Callout to generic method</span></h4>
+            <p>When referring to a generic base method</p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre>&lt;T&gt; T bm(T a)</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>a callout binding may either propagate the method's genericity as in</p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">2</td>
+                     <td><pre>&lt;T&gt; T rm(T a) <b>-&gt;</b> T bm(T a);</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>or it may supply a valid substitution for the type parameter as in</p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">2</td>
+                     <td><pre>String rm(String a) <b>-&gt;</b> String bm(String a);</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.j.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1.(j)&nbsp;Inferred callout</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.1.html" rel="section">&sect;3.1&nbsp;Callout method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.a.html
new file mode 100644
index 0000000..83f0556
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.a.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.b.html" rel="next">&sect;3.2.(b)&nbsp;Mapping one parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="subsect depth3" id="s3.2.a">
+            <h4 class="subsect">&sect;3.2.(a)&nbsp;<span class="title">with clause</span></h4>
+            <p> If the method designators in a callout binding are signatures
+               	    (not just method names), parameters and return value may
+               	    be mapped by a <code>with{...}</code> sub-clause. Parameter mappings may only occur if the enclosing role is a class, not an interface.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.b.html" rel="next">&sect;3.2.(b)&nbsp;Mapping one parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.b.html
new file mode 100644
index 0000000..792addb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.b.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(a)&nbsp;with clause</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.c.html" rel="next">&sect;3.2.(c)&nbsp;Result mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="subsect depth3" id="s3.2.b">
+            <h4 class="subsect">&sect;3.2.(b)&nbsp;<span class="title">Mapping one parameter</span></h4>
+            <p> For each parameter of the provided base method, exactly one parameter
+               	    mapping defines, which value will actually be passed to
+               	    the base method. Callout parameter mappings have this form:
+               			
+            </p>
+            <div class="listing plain"><pre><i>expression</i> <b>-&gt;</b> <i>base_method_parameter_name</i></pre></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(a)&nbsp;with clause</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.c.html" rel="next">&sect;3.2.(c)&nbsp;Result mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.c.html
new file mode 100644
index 0000000..550973b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.c.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(b)&nbsp;Mapping one parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.d.html" rel="next">&sect;3.2.(d)&nbsp;Visible names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="subsect depth3" id="s3.2.c">
+            <h4 class="subsect">&sect;3.2.(c)&nbsp;<span class="title">Result mapping</span></h4>
+            <p>The return value of a callout method may be provided by a result mapping:
+               			
+            </p>
+            <div class="listing plain"><pre>result <b>&lt;-</b> <i>expression</i></pre></div>
+            <p>The right hand side expression of a result mapping may use the special identifier 
+               		<code>result</code> to refer to the value returned by the base method.
+               		<br />
+               		In a method binding with parameter mappings, it is an error to use 
+               		<code>result</code> as the name of a regular method argument.
+               			
+            </p>
+            <h5 class="listing">Example code (Callout Parameter Mapping):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre>Integer absoluteValue(Integer integer) <b>-&gt;</b> <b>int</b> abs(<b>int</b> i) <em><b>with</b> {</em></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  integer.intValue() <b>-&gt;</b> i,</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <em>result</em> <b>&lt;-</b> <b>new</b> Integer(<em>result</em>)</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre><em>}</em></pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(b)&nbsp;Mapping one parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.d.html" rel="next">&sect;3.2.(d)&nbsp;Visible names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.d.html
new file mode 100644
index 0000000..3b14056
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.d.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(c)&nbsp;Result mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.e.html" rel="next">&sect;3.2.(e)&nbsp;Implicit parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="subsect depth3" id="s3.2.d">
+            <h4 class="subsect">&sect;3.2.(d)&nbsp;<span class="title">Visible names</span></h4>
+            <p>Each identifier that appears within the expressions of a parameter
+               	    mapping must be either:
+               			
+            </p>
+            <ul>
+               <li>a feature visible in the scope of the role instance.</li>
+               <li>a parameter of the role method (for parameter mappings).</li>
+               <li>the special name <code>result</code> (for result mappings).
+               </li>
+               <li>in a result mapping also the special name <code>base</code> can be used 
+                  					    in order to refer to the bound base instance (provided the method being 
+                  					    bound is not static).
+               </li>
+            </ul>
+            <p>The names of base method arguments (i.e., names after mapping) are only
+               	  legal in the position given in <a href="s3.2.b.html" title="&sect;3.2.(b)&nbsp;Mapping one parameter"
+                  class="sect">&sect;3.2.(b)</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(c)&nbsp;Result mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.2.e.html" rel="next">&sect;3.2.(e)&nbsp;Implicit parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.e.html
new file mode 100644
index 0000000..ae92c77
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.e.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(d)&nbsp;Visible names</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+         <div class="subsect depth3" id="s3.2.e">
+            <h4 class="subsect">&sect;3.2.(e)&nbsp;<span class="title">Implicit parameter mappings</span></h4>
+            <p>If parameter mappings should be omitted the following conditions must hold:
+               			
+            </p>
+            <ol>
+               <li>each method parameter of the role method must conform to the
+                  			corresponding parameter of the base method,  <em>and</em></li>
+               <li>the result type of the base method must conform to the result type
+                  			of the role method.
+               </li>
+            </ol>
+            <p>Here conformance includes translation polymorphism (cf. <a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>).
+               		<br />
+               	    Parameter correspondence without parameter mapping is determined by declaration order not by names.
+               	    <br />
+               	    Two adjustments can, however, be performed implicitly:
+               			
+            </p>
+            <ul>
+               <li>If the role method has more parameters than the base method,
+                  		unused trailing parameters may be silently ignored.
+               </li>
+               <li>If the role method returns <code>void</code>, any result from
+                  		the base method may be silently ignored.
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2.(d)&nbsp;Visible names</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.2.html" rel="section">&sect;3.2&nbsp;Callout parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.html
new file mode 100644
index 0000000..2f21ccb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.2.html
@@ -0,0 +1,308 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1&nbsp;Callout method binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.html" rel="next">&sect;3.3&nbsp;Lifting and lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="sect depth2" id="s3.2">
+            <h2 class="sect">&sect;3.2&nbsp;Callout parameter mapping</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.4.1" title="&sect;A.4.1&nbsp;CalloutParameterMappings"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.4.1</a></div>
+            <div class="subsect depth3" id="s3.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">with clause</span></h4>
+               <p> If the method designators in a callout binding are signatures
+                  	    (not just method names), parameters and return value may
+                  	    be mapped by a <code>with{...}</code> sub-clause. Parameter mappings may only occur if the enclosing role is a class, not an interface.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Mapping one parameter</span></h4>
+               <p> For each parameter of the provided base method, exactly one parameter
+                  	    mapping defines, which value will actually be passed to
+                  	    the base method. Callout parameter mappings have this form:
+                  			
+               </p>
+               <div class="listing plain"><pre><i>expression</i> <b>-&gt;</b> <i>base_method_parameter_name</i></pre></div>
+            </div>
+            <div class="subsect depth3" id="s3.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Result mapping</span></h4>
+               <p>The return value of a callout method may be provided by a result mapping:
+                  			
+               </p>
+               <div class="listing plain"><pre>result <b>&lt;-</b> <i>expression</i></pre></div>
+               <p>The right hand side expression of a result mapping may use the special identifier 
+                  		<code>result</code> to refer to the value returned by the base method.
+                  		<br />
+                  		In a method binding with parameter mappings, it is an error to use 
+                  		<code>result</code> as the name of a regular method argument.
+                  			
+               </p>
+               <h5 class="listing">Example code (Callout Parameter Mapping):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre>Integer absoluteValue(Integer integer) <b>-&gt;</b> <b>int</b> abs(<b>int</b> i) <em><b>with</b> {</em></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  integer.intValue() <b>-&gt;</b> i,</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <em>result</em> <b>&lt;-</b> <b>new</b> Integer(<em>result</em>)</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre><em>}</em></pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s3.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Visible names</span></h4>
+               <p>Each identifier that appears within the expressions of a parameter
+                  	    mapping must be either:
+                  			
+               </p>
+               <ul>
+                  <li>a feature visible in the scope of the role instance.</li>
+                  <li>a parameter of the role method (for parameter mappings).</li>
+                  <li>the special name <code>result</code> (for result mappings).
+                  </li>
+                  <li>in a result mapping also the special name <code>base</code> can be used 
+                     					    in order to refer to the bound base instance (provided the method being 
+                     					    bound is not static).
+                  </li>
+               </ul>
+               <p>The names of base method arguments (i.e., names after mapping) are only
+                  	  legal in the position given in <a href="#s3.2.b" title="&sect;3.2.(b)&nbsp;Mapping one parameter"
+                     class="sect">&sect;3.2.(b)</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Implicit parameter mappings</span></h4>
+               <p>If parameter mappings should be omitted the following conditions must hold:
+                  			
+               </p>
+               <ol>
+                  <li>each method parameter of the role method must conform to the
+                     			corresponding parameter of the base method,  <em>and</em></li>
+                  <li>the result type of the base method must conform to the result type
+                     			of the role method.
+                  </li>
+               </ol>
+               <p>Here conformance includes translation polymorphism (cf. <a href="s3.3.d.html" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>).
+                  		<br />
+                  	    Parameter correspondence without parameter mapping is determined by declaration order not by names.
+                  	    <br />
+                  	    Two adjustments can, however, be performed implicitly:
+                  			
+               </p>
+               <ul>
+                  <li>If the role method has more parameters than the base method,
+                     		unused trailing parameters may be silently ignored.
+                  </li>
+                  <li>If the role method returns <code>void</code>, any result from
+                     		the base method may be silently ignored.
+                  </li>
+               </ul>
+            </div>
+            <h5 class="listing">Example code (Callout with Parameter Mapping):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>abstract</b> <b>class</b> Role1 {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>abstract</b> <b>void</b> payEuro(float euro);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <b>abstract</b> float earnEuro();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    <b>void</b> idle(<b>int</b> seconds) { <span class="comment">/* do nothing */</span> };</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  Role1 boss, worker = <span class="comment">// initialization omitted</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  <b>public</b> <b>void</b> transaction () {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    boss.payEuro(worker.earnEuro());</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>    boss.idle(123);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre><b>public</b> <b>class</b> Staff { <span class="comment">// a base class </span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>  <b>public</b> <b>void</b> payDM (float dm) { … };</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>  <b>public</b> float earnDM () { … };</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>  <b>public</b> <b>int</b> doze() { … };</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>  <span class="comment">// other methods omitted</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>  <b>public</b> <b>class</b> Role1 <b>playedBy</b> Staff {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">21</td>
+                     <td><pre>    <b>void</b> payEuro(float euro) <b>-&gt;</b> <b>void</b> payDM(float dm) <b>with</b> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">22</td>
+                     <td><pre>      euro * 1.95583f <b>-&gt;</b> dm</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">23</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">24</td>
+                     <td><pre>    float earnEuro() <b>-&gt;</b> float earnDM () <b>with</b> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">25</td>
+                     <td><pre>      result <b>&lt;-</b> result / 1.95583f</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">26</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">27</td>
+                     <td><pre>    idle <b>=&gt;</b> doze; <span class="comment">// override existing implementation of idle()</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">28</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">29</td>
+                     <td><pre>  <b>void</b> doit() {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">30</td>
+                     <td><pre>    transaction();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">31</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">32</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>Class <code>MyTeamA</code> is declaratively complete and can be
+                     	type checked because it only uses methods that are visible or declared within this
+                     	context. <code>MyTeamA.Role1</code> can, however, not be instantiated, because it is
+                     	abstract.
+                  </li>
+                  <li>Line 30 has the normal effect of invoking <code>transaction</code>.
+                  </li>
+                  <li>When executing <code>transaction</code>, the call of <code>worker.earnEuro()</code>
+                     	is forwarded to the corresponding base object using method <code>earnDM()</code>
+                     	(binding declaration in line 24).
+                     	The result is converted by "<code>result / 1.95583f</code>" (line 25).
+                  </li>
+                  <li>Within the same execution of <code>transaction</code>, the call of
+                     	<code>boss.payEuro()</code>
+                     	is forwarded to the corresponding base object using method <code>payDM()</code>
+                     	(binding declaration in line 21).
+                     	The parameter <code>euro</code> is converted by "<code>euro * 1.95583f</code>"
+                     	(line 22).
+                  </li>
+                  <li>Method <code>idle</code> is forwarded to <code>doze</code> without any
+                     	parameter mapping. This requires <code>doze</code> to have a signature
+                     	that is conformable to the signature of <code>idle</code>.
+                     	In this case a role parameter and a base result are ignored.<br />
+                     	Using the <code>=&gt;</code> operator, this binding overrides the existing
+                     	implementation of <code>idle</code>.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.1.html" rel="prev">&lt;&lt;&nbsp;&sect;3.1&nbsp;Callout method binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.html" rel="next">&sect;3.3&nbsp;Lifting and lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.a.html
new file mode 100644
index 0000000..e3e30b3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.b.html" rel="next">&sect;3.3.(b)&nbsp;Parameter translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s3.3.a">
+            <h4 class="subsect">&sect;3.3.(a)&nbsp;<span class="title">Call target translation</span></h4>
+            <p>Invoking a base method due to a callout binding first
+               	    <strong>lowers</strong> the role object in order to obtain the effective call target.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.b.html" rel="next">&sect;3.3.(b)&nbsp;Parameter translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.b.html
new file mode 100644
index 0000000..c53fbca
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.b.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(a)&nbsp;Call target translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.c.html" rel="next">&sect;3.3.(c)&nbsp;Result translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s3.3.b">
+            <h4 class="subsect">&sect;3.3.(b)&nbsp;<span class="title">Parameter translation</span></h4>
+            <p>Passing a role object as parameter to a callout method implicitly <strong>lowers</strong>
+               	    this parameter, if the base method declares a corresponding base type parameter.
+               	    <br />
+               Lifting of callout parameters is not possible.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(a)&nbsp;Call target translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.c.html" rel="next">&sect;3.3.(c)&nbsp;Result translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.c.html
new file mode 100644
index 0000000..2b45bb4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.c.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(b)&nbsp;Parameter translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.d.html" rel="next">&sect;3.3.(d)&nbsp;Typing rules&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s3.3.c">
+            <h4 class="subsect">&sect;3.3.(c)&nbsp;<span class="title">Result translation</span></h4>
+            <p> When returning a base object from a callout method where the role
+               	    method declares the result to be of a role class,
+               	    this object is implicitly <strong>lifted</strong> to the appropriate role.
+               	    <br />
+               Lowering the result of a callout binding is not possible.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(b)&nbsp;Parameter translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.d.html" rel="next">&sect;3.3.(d)&nbsp;Typing rules&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.d.html
new file mode 100644
index 0000000..bfe5d28
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.d.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(c)&nbsp;Result translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.e.html" rel="next">&sect;3.3.(e)&nbsp;Role arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s3.3.d">
+            <h4 class="subsect">&sect;3.3.(d)&nbsp;<span class="title">Typing rules</span></h4>
+            <p>A parameter mapping (implicit by parameter position or explicit
+               		by a <code>with</code> clause) is <strong>well typed</strong> if
+               		the left hand side conforms to the right hand side, either by
+               			
+            </p>
+            <ul>
+               <li>type equality</li>
+               <li>implicit primitive type conversion</li>
+               <li>subtype polymorphism</li>
+               <li>translation polymorphism, here: <em>lowering</em>, 
+               </li>
+               <li><em>or</em> by a combination of the above.
+               </li>
+            </ul>
+            <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+               		is well typed, if the value at the right hand side conforms to the
+               		left hand side according to the rules given above, except that
+               		translation polymorphism here applies <em>lifting</em> instead of
+               		lowering.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(c)&nbsp;Result translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.3.e.html" rel="next">&sect;3.3.(e)&nbsp;Role arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.e.html
new file mode 100644
index 0000000..49d74b6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.e.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(d)&nbsp;Typing rules</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s3.3.e">
+            <h4 class="subsect">&sect;3.3.(e)&nbsp;<span class="title">Role arrays</span></h4>
+            <p>For arrays of roles as parameters <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                  class="sect">&sect;2.2.(e)</a> applies accordingly.
+               		For arrays as a return value <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                  class="sect">&sect;2.3.(d)</a> applies.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3.(d)&nbsp;Typing rules</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.3.html" rel="section">&sect;3.3&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.html
new file mode 100644
index 0000000..dfdc8ff
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.3.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.2.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2&nbsp;Callout parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.html" rel="next">&sect;3.4&nbsp;Overriding access restrictions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="sect depth2" id="s3.3">
+            <h2 class="sect">&sect;3.3&nbsp;Lifting and lowering</h2>
+            <p> (For basic definitions see <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+               		
+            </p>
+            <div class="subsect depth3" id="s3.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+               <p>Invoking a base method due to a callout binding first
+                  	    <strong>lowers</strong> the role object in order to obtain the effective call target.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+               <p>Passing a role object as parameter to a callout method implicitly <strong>lowers</strong>
+                  	    this parameter, if the base method declares a corresponding base type parameter.
+                  	    <br />
+                  Lifting of callout parameters is not possible.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+               <p> When returning a base object from a callout method where the role
+                  	    method declares the result to be of a role class,
+                  	    this object is implicitly <strong>lifted</strong> to the appropriate role.
+                  	    <br />
+                  Lowering the result of a callout binding is not possible.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+               <p>A parameter mapping (implicit by parameter position or explicit
+                  		by a <code>with</code> clause) is <strong>well typed</strong> if
+                  		the left hand side conforms to the right hand side, either by
+                  			
+               </p>
+               <ul>
+                  <li>type equality</li>
+                  <li>implicit primitive type conversion</li>
+                  <li>subtype polymorphism</li>
+                  <li>translation polymorphism, here: <em>lowering</em>, 
+                  </li>
+                  <li><em>or</em> by a combination of the above.
+                  </li>
+               </ul>
+               <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                  		is well typed, if the value at the right hand side conforms to the
+                  		left hand side according to the rules given above, except that
+                  		translation polymorphism here applies <em>lifting</em> instead of
+                  		lowering.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.3.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+               <p>For arrays of roles as parameters <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                     class="sect">&sect;2.2.(e)</a> applies accordingly.
+                  		For arrays as a return value <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                     class="sect">&sect;2.3.(d)</a> applies.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.2.html" rel="prev">&lt;&lt;&nbsp;&sect;3.2&nbsp;Callout parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.html" rel="next">&sect;3.4&nbsp;Overriding access restrictions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.a.html
new file mode 100644
index 0000000..3be1b29
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.a.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.b.html" rel="next">&sect;3.4.(b)&nbsp;Sealing against decapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="subsect depth3" id="s3.4.a">
+            <h4 class="subsect">&sect;3.4.(a)&nbsp;<span class="title">Callout to inaccessible base method</span></h4>
+            <p>By means of <strong>callout</strong> bindings it is possible to access
+               methods of a base class regardless of their access modifiers.
+               	  Method bindings are the only place in a program which may mention otherwise
+               inaccessible methods.
+               	  Access to the callout method at the role side is controlled by regular mechanisms,
+               	  based on the declaration of the role method.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.b.html" rel="next">&sect;3.4.(b)&nbsp;Sealing against decapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.b.html
new file mode 100644
index 0000000..876d011
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(a)&nbsp;Callout to inaccessible base method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.c.html" rel="next">&sect;3.4.(c)&nbsp;Warning levels&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="subsect depth3" id="s3.4.b">
+            <h4 class="subsect">&sect;3.4.(b)&nbsp;<span class="title">Sealing against decapsulation</span></h4>
+            <p>A base package may be "sealed" which re-establishes the standard Java visibility rules.
+               		<br />
+               		Sealing is achieved by the corresponding capability of Jar files.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(a)&nbsp;Callout to inaccessible base method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.c.html" rel="next">&sect;3.4.(c)&nbsp;Warning levels&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.c.html
new file mode 100644
index 0000000..871d48e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.c.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(b)&nbsp;Sealing against decapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.d.html" rel="next">&sect;3.4.(d)&nbsp;Private methods from super classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="subsect depth3" id="s3.4.c">
+            <h4 class="subsect">&sect;3.4.(c)&nbsp;<span class="title">Warning levels</span></h4>
+            <p>A compiler should signal any occurrence of decapsulation. 
+               		If a compiler supports to configure warnings this may be used to let the user choose to 
+               		(a) ignore base class decapsulation, (b) treat it as a warning or even 
+               		(c) treat it as an error (cf. <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                  class="sect">&sect;2.1.2.(c)</a>).
+               		<br />
+               		Optionally, a batch compiler may support three levels of verbosity with respect to decapsulation:
+               			
+            </p>
+            <table border="1">
+               <tr>
+                  <td rowspan="1" colspan="1"><tt>-nodecapsulation</tt></td>
+                  <td rowspan="1" colspan="1">No warnings.</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1"><em>default</em></td>
+                  <td rowspan="1" colspan="1">Warn only if/that access restrictions are overridden.</td>
+               </tr>
+               <tr>
+                  <td rowspan="1" colspan="1"><tt>-decapsulation</tt></td>
+                  <td rowspan="1" colspan="1">Detailed messages containing the binding and the hidden base method.</td>
+               </tr>
+            </table>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(b)&nbsp;Sealing against decapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.4.d.html" rel="next">&sect;3.4.(d)&nbsp;Private methods from super classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.d.html
new file mode 100644
index 0000000..61d36b3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.d.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(c)&nbsp;Warning levels</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+         <div class="subsect depth3" id="s3.4.d">
+            <h4 class="subsect">&sect;3.4.(d)&nbsp;<span class="title">Private methods from super classes</span></h4>
+            <p>If a callout binding shall bind to a private base method, that method
+               must be defined in the exact base class to which the current role
+               class is bound using <code>playedBy</code>. I.e., for private methods
+               <a href="s3.1.d.html"
+                  title="&sect;3.1.(d)&nbsp;Inheritance of role method declarations"
+                  class="sect">&sect;3.1.(d)</a> does not hold.
+               <br />
+               The same holds for private base fields (see below).
+               <br />
+               If a private base feature must indeed be callout-bound, a role class
+               must be defined that is played by the exact base class defining the
+               private feature. Another role bound to a sub-base-class can then
+               be defined as a sub class of the first role. It will inherit the
+               callout binding and through this it can access the desired feature.
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <em><b>private</b> <b>int</b> secret;</em></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase  { <span class="comment">/* details omitted */</span> }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  <b>protected</b> <b>class</b> SuperRole <b>playedBy</b> SuperBase {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="green"><strong>OK</strong></span></span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>  <b>protected</b> <b>class</b> SubRole <b>extends</b> SuperRole <b>playedBy</b> SubBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="error"><strong>illegal!</strong></span></span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4.(c)&nbsp;Warning levels</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.4.html" rel="section">&sect;3.4&nbsp;Overriding access restrictions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.html
new file mode 100644
index 0000000..4955848
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.4.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.3.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3&nbsp;Lifting and lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.html" rel="next">&sect;3.5&nbsp;Callout to field&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="sect depth2" id="s3.4">
+            <h2 class="sect">&sect;3.4&nbsp;Overriding access restrictions</h2>
+            <p>In contrast to normal access restrictions, method bindings
+               may refer to hidden base methods.
+               This concept is the inverse of encapsulation, hence it is called
+               <strong>decapsulation</strong>.
+               <br />
+               Decapsulation may occur in these positions:
+               		
+            </p>
+            <ul>
+               <li><code>playedBy</code> declaration (see <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">&sect;2.1.2.(c)</a>)
+               </li>
+               <li>base constructor call (see <a href="s2.4.2.b.html" title="&sect;2.4.2.(b)&nbsp;Bound roles" class="sect">&sect;2.4.2.(b)</a>).
+               </li>
+               <li>callout bindings (see next)</li>
+               <li>callout to field (see <a href="s3.5.e.html" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>)
+               </li>
+               <li>base call within a callin method (see <a href="s4.6.html" title="&sect;4.6&nbsp;Overriding access restrictions"
+                     class="sect">&sect;4.6</a>)
+               </li>
+            </ul>
+            <div class="subsect depth3" id="s3.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Callout to inaccessible base method</span></h4>
+               <p>By means of <strong>callout</strong> bindings it is possible to access
+                  methods of a base class regardless of their access modifiers.
+                  	  Method bindings are the only place in a program which may mention otherwise
+                  inaccessible methods.
+                  	  Access to the callout method at the role side is controlled by regular mechanisms,
+                  	  based on the declaration of the role method.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Sealing against decapsulation</span></h4>
+               <p>A base package may be "sealed" which re-establishes the standard Java visibility rules.
+                  		<br />
+                  		Sealing is achieved by the corresponding capability of Jar files.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.4.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Warning levels</span></h4>
+               <p>A compiler should signal any occurrence of decapsulation. 
+                  		If a compiler supports to configure warnings this may be used to let the user choose to 
+                  		(a) ignore base class decapsulation, (b) treat it as a warning or even 
+                  		(c) treat it as an error (cf. <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">&sect;2.1.2.(c)</a>).
+                  		<br />
+                  		Optionally, a batch compiler may support three levels of verbosity with respect to decapsulation:
+                  			
+               </p>
+               <table border="1">
+                  <tr>
+                     <td rowspan="1" colspan="1"><tt>-nodecapsulation</tt></td>
+                     <td rowspan="1" colspan="1">No warnings.</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1"><em>default</em></td>
+                     <td rowspan="1" colspan="1">Warn only if/that access restrictions are overridden.</td>
+                  </tr>
+                  <tr>
+                     <td rowspan="1" colspan="1"><tt>-decapsulation</tt></td>
+                     <td rowspan="1" colspan="1">Detailed messages containing the binding and the hidden base method.</td>
+                  </tr>
+               </table>
+            </div>
+            <div class="subsect depth3" id="s3.4.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Private methods from super classes</span></h4>
+               <p>If a callout binding shall bind to a private base method, that method
+                  must be defined in the exact base class to which the current role
+                  class is bound using <code>playedBy</code>. I.e., for private methods
+                  <a href="s3.1.d.html"
+                     title="&sect;3.1.(d)&nbsp;Inheritance of role method declarations"
+                     class="sect">&sect;3.1.(d)</a> does not hold.
+                  <br />
+                  The same holds for private base fields (see below).
+                  <br />
+                  If a private base feature must indeed be callout-bound, a role class
+                  must be defined that is played by the exact base class defining the
+                  private feature. Another role bound to a sub-base-class can then
+                  be defined as a sub class of the first role. It will inherit the
+                  callout binding and through this it can access the desired feature.
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <em><b>private</b> <b>int</b> secret;</em></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase  { <span class="comment">/* details omitted */</span> }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  <b>protected</b> <b>class</b> SuperRole <b>playedBy</b> SuperBase {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="green"><strong>OK</strong></span></span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>  <b>protected</b> <b>class</b> SubRole <b>extends</b> SuperRole <b>playedBy</b> SubBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="error"><strong>illegal!</strong></span></span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.3.html" rel="prev">&lt;&lt;&nbsp;&sect;3.3&nbsp;Lifting and lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.html" rel="next">&sect;3.5&nbsp;Callout to field&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.a.html
new file mode 100644
index 0000000..e3bd073
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.a.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.b.html" rel="next">&sect;3.5.(b)&nbsp;Compatibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.a">
+            <h4 class="subsect">&sect;3.5.(a)&nbsp;<span class="title">Syntax</span></h4>
+            <p>Using one of the callout modifiers <code>get</code> or <code>set</code> a role method
+               	    can be bound to a field of the role's base class:
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre>getValue <b>-&gt;</b> <em>get</em> value;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>setValue <b>-&gt;</b> <em>set</em> value;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre><b>int</b> getValue() <b>-&gt;</b> <em>get</em> <b>int</b> value;</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <p>where <code>getValue</code>, <code>setValue</code> are abstract role methods of
+               	    appropriate signatures and <code>value</code> is a field of the bound base class.
+               	    <br />
+               	    A longer syntax is available, too (see line 3 above), which uses complete signatures.
+               	    For the left hand side <a href="s3.1.c.html" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                  class="sect">&sect;3.1.(c)</a> applies, for the
+               	    right hand side, this longer version prepends the field type to the field name.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.b.html" rel="next">&sect;3.5.(b)&nbsp;Compatibility&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.b.html
new file mode 100644
index 0000000..2eba6dd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.b.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(a)&nbsp;Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.c.html" rel="next">&sect;3.5.(c)&nbsp;Value mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.b">
+            <h4 class="subsect">&sect;3.5.(b)&nbsp;<span class="title">Compatibility</span></h4>
+            <p>A role method bound with the modifier <code>get</code>
+               should have no arguments
+               (it <em>may</em> have arbitrary arguments, which are silently ignored)
+               and should have a return type to which the base field is compatible.
+               A role method returning void will ignore the given value and thus has
+               no effect at all, which will be signaled by a compiler warning.
+               <br />
+               A role method bound with the modifier <code>set</code> must have a first argument
+               that is compatible to the base field's type (additional arguments - if present -
+               are silently ignored) and must not declare a return type.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(a)&nbsp;Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.c.html" rel="next">&sect;3.5.(c)&nbsp;Value mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.c.html
new file mode 100644
index 0000000..7617cc6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.c.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(b)&nbsp;Compatibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.d.html" rel="next">&sect;3.5.(d)&nbsp;Effect&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.c">
+            <h4 class="subsect">&sect;3.5.(c)&nbsp;<span class="title">Value mapping</span></h4>
+            <p>Values can be mapped similar to parameter mappings in pure method bindings 
+               		(<a href="s3.2.html" title="&sect;3.2&nbsp;Callout parameter mapping"
+                  class="sect">&sect;3.2</a>). Such mappings can be used to establish compatibility as required above.
+               		<br />
+               		In both <code>get</code> and <code>set</code> bindings, the base side value is denoted 
+               		by the field's name (lines 2 and 4 below).
+               			
+            </p>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre>Integer getValue()       -&gt;	<em>get</em> <b>int</b> val</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <em>with</em> { result           &lt;-	<b>new</b> Integer(val) }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre><b>void</b> setValue(Integer i) -&gt;	<em>set</em> <b>int</b> val</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <em>with</em> { i.intValue()     -&gt;	val }</pre></td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(b)&nbsp;Compatibility</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.d.html" rel="next">&sect;3.5.(d)&nbsp;Effect&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.d.html
new file mode 100644
index 0000000..55ec94c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.d.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(c)&nbsp;Value mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.e.html" rel="next">&sect;3.5.(e)&nbsp;Access control&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.d">
+            <h4 class="subsect">&sect;3.5.(d)&nbsp;<span class="title">Effect</span></h4>
+            <p>Callout-binding a role method to a base field generates an implementation for 
+               		this role method, by which it acts as a getter or setter for the given 
+               		field of the associated base object.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(c)&nbsp;Value mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.e.html" rel="next">&sect;3.5.(e)&nbsp;Access control&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.e.html
new file mode 100644
index 0000000..f485a82
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.e.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(d)&nbsp;Effect</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.f.html" rel="next">&sect;3.5.(f)&nbsp;Shorthand definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.e">
+            <h4 class="subsect">&sect;3.5.(e)&nbsp;<span class="title">Access control</span></h4>
+            <p>For accessing an otherwise invisible field, the rules for 
+               		<a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                  class="sect">decapsulation (&sect;3.4)</a> apply accordingly.
+               		<br />
+               		Recall, that according to 
+               		<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                  class="ext">JLS &sect;8.3</a> 
+               		fields may be hidden in sub-classes of a given base class. Therefore, it is relevant to know that a callout to 
+               		a field will always access the field that is visible in the exact base 
+               		class of the role class defining the callout. This is especially relevant 
+               		for accessing private fields.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(d)&nbsp;Effect</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.f.html" rel="next">&sect;3.5.(f)&nbsp;Shorthand definition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.f.html
new file mode 100644
index 0000000..5257de6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.f.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(e)&nbsp;Access control</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.g.html" rel="next">&sect;3.5.(g)&nbsp;Callout override&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.f">
+            <h4 class="subsect">&sect;3.5.(f)&nbsp;<span class="title">Shorthand definition</span></h4>
+            <p>Just as in <a href="s3.1.i.html" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                  class="sect">&sect;3.1.(i)</a> a shorthand definition allows to introduce 
+               		a callout field access method without prior abstract declaration. 
+               		This requires the callout field binding to specify types as in line 3 of <a href="s3.5.a.html" title="&sect;3.5.(a)&nbsp;Syntax" class="sect">&sect;3.5.(a)</a> above.
+               		The generated access method is static iff the bound base field is static.
+               			
+            </p>
+            <p>
+               		A shorthand callout to field may optionally declare a <strong>visibility modifier</strong>,
+               		otherwise the generated method inherits the visibility modifier of the bound base field.
+               		No further modifiers are set.
+               		If a callout to field overrides an inherited method or callout, 
+               		it must not reduce the visibility of the inherited method/callout.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(e)&nbsp;Access control</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.g.html" rel="next">&sect;3.5.(g)&nbsp;Callout override&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.g.html
new file mode 100644
index 0000000..8439765
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.g.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.f.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(f)&nbsp;Shorthand definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.h.html" rel="next">&sect;3.5.(h)&nbsp;Inferred callout&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.g">
+            <h4 class="subsect">&sect;3.5.(g)&nbsp;<span class="title">Callout override</span></h4>
+            <p>Similar to method callouts a callout to field may override an existing role 
+               		method if and only if the token <code>=&gt;</code> is used instead of <code>-&gt;</code> 
+               		(see <a href="s3.1.e.html" title="&sect;3.1.(e)&nbsp;Callout override" class="sect">&sect;3.1.(e)</a> and <a href="s3.1.f.html"
+                  title="&sect;3.1.(f)&nbsp;Inheritance of callout bindings"
+                  class="sect">&sect;3.1.(f)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.f.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(f)&nbsp;Shorthand definition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s3.5.h.html" rel="next">&sect;3.5.(h)&nbsp;Inferred callout&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.h.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.h.html
new file mode 100644
index 0000000..dca3ed9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.h.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.5.g.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(g)&nbsp;Callout override</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+         <div class="subsect depth3" id="s3.5.h">
+            <h4 class="subsect">&sect;3.5.(h)&nbsp;<span class="title">Inferred callout</span></h4>
+            <p> If a statement or expression within the body of a bound role class 
+               				uses a simple name or a name qualified by <code>this</code>
+               			    which can not be resolved using normal rules, 
+               			    the compiler may infer to use a callout to field instead,
+               			    given that a field of the required name can be found in the role's declared baseclass.
+               
+            </p>
+            <p> If a callout to field has explicitly been declared it is used for the otherwise
+               	unresolved name, if and only if:
+               
+            </p>
+            <ul>
+               <li>the callout declares a role method name the is constructed from the token "set" for 
+                  			a setter or "get" for a getter plus the field name with capital first letter,
+               </li>
+               <li>the base field referenced by the callout has exactly the required name, and</li>
+               <li>the callout kind (set/get) matches the application of the unresolved name as either
+                  			the left-hand side of an assignment (set) or as an expression (get).
+               </li>
+            </ul>
+            <p>
+               	If a matching callout to field is not found, the compiler generates one automatically,
+               	which has <code>private</code> visibility.
+               
+            </p>
+            <p>
+               	If a callout to field has been inferred it is an error to directly invoke the
+               	implicitly generated callout accessor that is formed according to the above rules.
+               
+            </p>
+            <p>
+               Per default inferred callout bindings are disabled, i.e., a compiler 
+               must report these as an error. However, a compiler should allow to 
+               configure reporting to produce a warning only (which can be suppressed 
+               using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+               or to completely ignore the diagnostic. See also <a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a>.
+               
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.5.g.html" rel="prev">&lt;&lt;&nbsp;&sect;3.5.(g)&nbsp;Callout override</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s3.5.html" rel="section">&sect;3.5&nbsp;Callout to field</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.html
new file mode 100644
index 0000000..a1fcf7c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.5.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.4.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4&nbsp;Overriding access restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+         <div class="sect depth2" id="s3.5">
+            <h2 class="sect">&sect;3.5&nbsp;Callout to field</h2>
+            <p>Also fields of a base class can be made accessible using a callout binding.
+               		
+            </p>
+            <div class="subsect depth3" id="s3.5.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+               <p>Using one of the callout modifiers <code>get</code> or <code>set</code> a role method
+                  	    can be bound to a field of the role's base class:
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre>getValue <b>-&gt;</b> <em>get</em> value;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>setValue <b>-&gt;</b> <em>set</em> value;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre><b>int</b> getValue() <b>-&gt;</b> <em>get</em> <b>int</b> value;</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <p>where <code>getValue</code>, <code>setValue</code> are abstract role methods of
+                  	    appropriate signatures and <code>value</code> is a field of the bound base class.
+                  	    <br />
+                  	    A longer syntax is available, too (see line 3 above), which uses complete signatures.
+                  	    For the left hand side <a href="s3.1.c.html" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                     class="sect">&sect;3.1.(c)</a> applies, for the
+                  	    right hand side, this longer version prepends the field type to the field name.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Compatibility</span></h4>
+               <p>A role method bound with the modifier <code>get</code>
+                  should have no arguments
+                  (it <em>may</em> have arbitrary arguments, which are silently ignored)
+                  and should have a return type to which the base field is compatible.
+                  A role method returning void will ignore the given value and thus has
+                  no effect at all, which will be signaled by a compiler warning.
+                  <br />
+                  A role method bound with the modifier <code>set</code> must have a first argument
+                  that is compatible to the base field's type (additional arguments - if present -
+                  are silently ignored) and must not declare a return type.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Value mapping</span></h4>
+               <p>Values can be mapped similar to parameter mappings in pure method bindings 
+                  		(<a href="s3.2.html" title="&sect;3.2&nbsp;Callout parameter mapping"
+                     class="sect">&sect;3.2</a>). Such mappings can be used to establish compatibility as required above.
+                  		<br />
+                  		In both <code>get</code> and <code>set</code> bindings, the base side value is denoted 
+                  		by the field's name (lines 2 and 4 below).
+                  			
+               </p>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre>Integer getValue()       -&gt;	<em>get</em> <b>int</b> val</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <em>with</em> { result           &lt;-	<b>new</b> Integer(val) }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre><b>void</b> setValue(Integer i) -&gt;	<em>set</em> <b>int</b> val</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <em>with</em> { i.intValue()     -&gt;	val }</pre></td>
+                     </tr>
+                  </table>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s3.5.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Effect</span></h4>
+               <p>Callout-binding a role method to a base field generates an implementation for 
+                  		this role method, by which it acts as a getter or setter for the given 
+                  		field of the associated base object.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Access control</span></h4>
+               <p>For accessing an otherwise invisible field, the rules for 
+                  		<a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">decapsulation (&sect;3.4)</a> apply accordingly.
+                  		<br />
+                  		Recall, that according to 
+                  		<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                     class="ext">JLS &sect;8.3</a> 
+                  		fields may be hidden in sub-classes of a given base class. Therefore, it is relevant to know that a callout to 
+                  		a field will always access the field that is visible in the exact base 
+                  		class of the role class defining the callout. This is especially relevant 
+                  		for accessing private fields.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Shorthand definition</span></h4>
+               <p>Just as in <a href="s3.1.i.html" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                     class="sect">&sect;3.1.(i)</a> a shorthand definition allows to introduce 
+                  		a callout field access method without prior abstract declaration. 
+                  		This requires the callout field binding to specify types as in line 3 of <a href="#s3.5.a" title="&sect;3.5.(a)&nbsp;Syntax" class="sect">&sect;3.5.(a)</a> above.
+                  		The generated access method is static iff the bound base field is static.
+                  			
+               </p>
+               <p>
+                  		A shorthand callout to field may optionally declare a <strong>visibility modifier</strong>,
+                  		otherwise the generated method inherits the visibility modifier of the bound base field.
+                  		No further modifiers are set.
+                  		If a callout to field overrides an inherited method or callout, 
+                  		it must not reduce the visibility of the inherited method/callout.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Callout override</span></h4>
+               <p>Similar to method callouts a callout to field may override an existing role 
+                  		method if and only if the token <code>=&gt;</code> is used instead of <code>-&gt;</code> 
+                  		(see <a href="s3.1.e.html" title="&sect;3.1.(e)&nbsp;Callout override" class="sect">&sect;3.1.(e)</a> and <a href="s3.1.f.html"
+                     title="&sect;3.1.(f)&nbsp;Inheritance of callout bindings"
+                     class="sect">&sect;3.1.(f)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s3.5.h">
+               <h4 class="subsect">(h)&nbsp;<span class="title">Inferred callout</span></h4>
+               <p> If a statement or expression within the body of a bound role class 
+                  				uses a simple name or a name qualified by <code>this</code>
+                  			    which can not be resolved using normal rules, 
+                  			    the compiler may infer to use a callout to field instead,
+                  			    given that a field of the required name can be found in the role's declared baseclass.
+                  
+               </p>
+               <p> If a callout to field has explicitly been declared it is used for the otherwise
+                  	unresolved name, if and only if:
+                  
+               </p>
+               <ul>
+                  <li>the callout declares a role method name the is constructed from the token "set" for 
+                     			a setter or "get" for a getter plus the field name with capital first letter,
+                  </li>
+                  <li>the base field referenced by the callout has exactly the required name, and</li>
+                  <li>the callout kind (set/get) matches the application of the unresolved name as either
+                     			the left-hand side of an assignment (set) or as an expression (get).
+                  </li>
+               </ul>
+               <p>
+                  	If a matching callout to field is not found, the compiler generates one automatically,
+                  	which has <code>private</code> visibility.
+                  
+               </p>
+               <p>
+                  	If a callout to field has been inferred it is an error to directly invoke the
+                  	implicitly generated callout accessor that is formed according to the above rules.
+                  
+               </p>
+               <p>
+                  Per default inferred callout bindings are disabled, i.e., a compiler 
+                  must report these as an error. However, a compiler should allow to 
+                  configure reporting to produce a warning only (which can be suppressed 
+                  using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                  or to completely ignore the diagnostic. See also <a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a>.
+                  
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.4.html" rel="prev">&lt;&lt;&nbsp;&sect;3.4&nbsp;Overriding access restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s3.html" rel="section">&sect;3&nbsp;Callout Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.html
new file mode 100644
index 0000000..95f1f27
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s3.html
@@ -0,0 +1,972 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s2.html" rel="prev">&lt;&lt;&nbsp;&sect;2&nbsp;Role Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.html" rel="next">&sect;4&nbsp;Callin Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s3">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;3&nbsp;Callout Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s3.html">&sect;3&nbsp;Callout Binding</a></li>
+                  <li><a href="#s3.1">&sect;3.1&nbsp;Callout method binding</a></li>
+                  <li><a href="#s3.2">&sect;3.2&nbsp;Callout parameter mapping</a></li>
+                  <li><a href="#s3.3">&sect;3.3&nbsp;Lifting and lowering</a></li>
+                  <li><a href="#s3.4">&sect;3.4&nbsp;Overriding access restrictions</a></li>
+                  <li><a href="#s3.5">&sect;3.5&nbsp;Callout to field</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notion of callout binding</h3>
+               <div class="line"></div>
+               <div class="term">callout binding</div>
+               <div class="termdesc">A callout binding declares that a method call to a role
+                  	    object may be <strong>forwarded</strong> to a base method of the associated
+                  	    base object <em>(the role object "calls out" to the base)</em>.
+               </div>
+               <div class="line"></div>
+               <div class="term">declarative completeness</div>
+               <div class="termdesc"> Even if a role class does not implement all needed methods,
+                  	    but forwards some to its base, also these methods must be declared
+                  	    within the role.
+                  	    Secondly, no forwarding occurs, unless explicitly declared by a callout binding.
+               </div>
+               <div class="line"></div>
+               <div class="term">expected/provided</div>
+               <div class="termdesc"> A callout binding binds an <strong>expected</strong> method of the role
+                  	    class (needed but not implemented here) to a <strong>provided</strong>
+                  	    method of the base class.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s3.1">
+               <h2 class="sect">&sect;3.1&nbsp;Callout method binding<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.2</a></div>
+               <p>A role class may acquire the implementation for any of its
+                  	(expected) methods by declaring a <strong>callout</strong> binding.
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+                  <p>A callout binding requires the enclosing class to be a role class
+                     	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Definition</span></h4>
+                  <p>A callout binding maps an abstract role method ("expected method")
+                     	    to a concrete base method ("provided method").
+                     	    It may appear within the role class at any place where feature
+                     	    declarations are allowed. It is denoted by
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>expected_method_designator</i> <b>-&gt;</b> <i>provided_method_designator;</i></pre></div>
+                  <p>The effect is that any call to the role method will be forwarded to the
+                     	    associated base object using the provided base method.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callout):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>abstract</b> String getIdentification();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <span class="comment">// callout binding see below...</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Kinds of method designators</span></h4>
+                  <p>A method designator may either be a method name
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">4</td>
+                           <td><pre>getIdentification <em>-&gt;</em> getName;</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p><strong>or</strong>
+                     	    a complete method signature including parameter declarations and
+                     	    return type declaration, but excluding any modifiers and declared exceptions.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">4</td>
+                           <td><pre>String getIdentification() <em>-&gt;</em> String getName();</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     <ul>
+                        <li> Line 4 declares a callout binding for the role method <code>getIdentification()</code>, 
+                           							 providing an implementation for the abstract method defined in line 3.
+                        </li>
+                        <li> In combination with the role binding in line 2 this has the following effect:</li>
+                        <li> Any call to <code>Employee.getIdentification</code> 
+                           							 is forwarded to the method <code>Person.getName</code>.
+                        </li>
+                     </ul>
+                  </div>
+                  <p>Both sides of a callout binding must use the same kind of
+                     	    designators, i.e., designators with and without signature may not be mixed.
+                     	    <br />
+                     	    Each method designator must uniquely select one method.
+                     If a method designator contains a signature this signature must match exactly with the signature 
+                     of an existing method, i.e., no implicit conversions are applied for this matching.
+                     	    If overloading is involved, signatures <em>must</em> be used to disambiguate.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Inheritance of role method declarations</span></h4>
+                  <p>The role method being bound by a callout may be declared in the same
+                     	    class as the binding or it may be inherited from a super class or
+                     	    super interface.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Callout override</span></h4>
+                  <p>If an inherited role method is concrete, callout binding regarding this
+                     	    method must use the token "<code>=&gt;</code>" instead of "<code>-&gt;</code>"
+                     	    in order to declare that this binding overrides an existing implementation.
+                     	    <br />
+                     				
+                     		Using the "<code>=&gt;</code>" operator for an abstract method is an error.
+                     		<br />
+                     	    It is also an error (and not useful anyway) to callout-bind a method that is
+                     	    implemented in the same class as the binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Inheritance of callout bindings</span></h4>
+                  <p> Callout bindings are inherited along explicit and implicit inheritance.
+                     	    Inherited callout bindings can be overridden using "<code>=&gt;</code>".
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Duplicate bindings</span></h4>
+                  <p>It is an error if a role class has multiple callout bindings for the
+                     	    same role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Declared exceptions</span></h4>
+                  <p>It is an error if a base method to be bound by <strong>callout</strong>
+                     	    declares in its <code>throws</code> clause any exceptions that
+                     	    are not declared by the corresponding role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.i">
+                  <h4 class="subsect">(i)&nbsp;<span class="title">Shorthand definition</span></h4>
+                  <p> A callout binding whose method designators specify
+                     full method signatures does not require an existing role method.
+                     If no role method is found matching the expected method of
+                     such a callout binding, a new method is implicitly generated.
+                     The new method is static iff the bound base method is static,
+                     and it declares the same exceptions as the bound base method.
+                     			
+                  </p>
+                  <p>
+                     		A shorthand callout may optionally declare a <strong>visibility modifier</strong>,
+                     		otherwise the generated method inherits the visibility modifier of the bound base method.
+                     		No further modifiers are set.
+                     		If a callout overrides an inherited method or callout, 
+                     		it must not reduce the visibility of the inherited method/callout.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.j">
+                  <h4 class="subsect">(j)&nbsp;<span class="title">Inferred callout</span></h4>
+                  <p> If a non-abstract role class inherits an abstract method the compiler 
+                     				tries to infer a callout binding for implementing the abstract method.
+                     				Similarly, if a self-call in a role class cannot be resolved, the compiler
+                     				tries to infer a callout to resolve the self-call.<br />
+                     Inference searches for a method in the bound base class such that
+                     
+                  </p>
+                  <ol>
+                     <li>both methods have the same name</li>
+                     <li>both methods have the same number of arguments</li>
+                     <li>each argument of the abstract role method is compatible to the 
+                        corresponding argument of the base method directly, or using 
+                        boxing/unboxing or lowering.
+                     </li>
+                  </ol>
+                  <p>
+                     Callouts inferred from an interface have <code>public</code> visibility,
+                     callouts inferred from a self-call have <code>private</code> visibility. 
+                     
+                  </p>
+                  <p>
+                     Per default inferred callout bindings are disabled, i.e., a compiler 
+                     must report these as an error. However, a compiler should allow to 
+                     configure reporting to produce a warning only (which can be suppressed 
+                     using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                     or to completely ignore the diagnostic.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.1.k">
+                  <h4 class="subsect">(k)&nbsp;<span class="title">Callout to generic method</span></h4>
+                  <p>When referring to a generic base method</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>&lt;T&gt; T bm(T a)</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>a callout binding may either propagate the method's genericity as in</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">2</td>
+                           <td><pre>&lt;T&gt; T rm(T a) <b>-&gt;</b> T bm(T a);</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>or it may supply a valid substitution for the type parameter as in</p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">2</td>
+                           <td><pre>String rm(String a) <b>-&gt;</b> String bm(String a);</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <p>A callout binding either attaches an implementation to a previously declared method 
+                  		or adds (<a href="#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition" class="sect">&sect;3.1.(i)</a> above) a forwarding method to a role class.
+                  Apart from this implementation, callout-bound methods do not differ from regular methods.
+                  		
+               </p>
+               <p>When we say, a callout binding defines <strong>forwarding</strong> this means that
+                  		control is passed to the base object. In contrast, by a <strong>delegation</strong>
+                  		semantics control <em>would</em> remain at the role object, such that self-calls
+                  		would again be dispatched starting at the role. Callout bindings on
+                  		their own do not support delegation. However, in conjunction with method
+                  		overriding by means of callin bindings (see <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a>)
+                  		the effect of delegation can easily be achieved.
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s3.2">
+               <h2 class="sect">&sect;3.2&nbsp;Callout parameter mapping<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.4.1" title="&sect;A.4.1&nbsp;CalloutParameterMappings"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.4.1</a></div>
+               <div class="subsect depth3" id="s3.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">with clause</span></h4>
+                  <p> If the method designators in a callout binding are signatures
+                     	    (not just method names), parameters and return value may
+                     	    be mapped by a <code>with{...}</code> sub-clause. Parameter mappings may only occur if the enclosing role is a class, not an interface.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Mapping one parameter</span></h4>
+                  <p> For each parameter of the provided base method, exactly one parameter
+                     	    mapping defines, which value will actually be passed to
+                     	    the base method. Callout parameter mappings have this form:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>expression</i> <b>-&gt;</b> <i>base_method_parameter_name</i></pre></div>
+               </div>
+               <div class="subsect depth3" id="s3.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result mapping</span></h4>
+                  <p>The return value of a callout method may be provided by a result mapping:
+                     			
+                  </p>
+                  <div class="listing plain"><pre>result <b>&lt;-</b> <i>expression</i></pre></div>
+                  <p>The right hand side expression of a result mapping may use the special identifier 
+                     		<code>result</code> to refer to the value returned by the base method.
+                     		<br />
+                     		In a method binding with parameter mappings, it is an error to use 
+                     		<code>result</code> as the name of a regular method argument.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callout Parameter Mapping):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>Integer absoluteValue(Integer integer) <b>-&gt;</b> <b>int</b> abs(<b>int</b> i) <em><b>with</b> {</em></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  integer.intValue() <b>-&gt;</b> i,</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <em>result</em> <b>&lt;-</b> <b>new</b> Integer(<em>result</em>)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><em>}</em></pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Visible names</span></h4>
+                  <p>Each identifier that appears within the expressions of a parameter
+                     	    mapping must be either:
+                     			
+                  </p>
+                  <ul>
+                     <li>a feature visible in the scope of the role instance.</li>
+                     <li>a parameter of the role method (for parameter mappings).</li>
+                     <li>the special name <code>result</code> (for result mappings).
+                     </li>
+                     <li>in a result mapping also the special name <code>base</code> can be used 
+                        					    in order to refer to the bound base instance (provided the method being 
+                        					    bound is not static).
+                     </li>
+                  </ul>
+                  <p>The names of base method arguments (i.e., names after mapping) are only
+                     	  legal in the position given in <a href="#s3.2.b" title="&sect;3.2.(b)&nbsp;Mapping one parameter"
+                        class="sect">&sect;3.2.(b)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Implicit parameter mappings</span></h4>
+                  <p>If parameter mappings should be omitted the following conditions must hold:
+                     			
+                  </p>
+                  <ol>
+                     <li>each method parameter of the role method must conform to the
+                        			corresponding parameter of the base method,  <em>and</em></li>
+                     <li>the result type of the base method must conform to the result type
+                        			of the role method.
+                     </li>
+                  </ol>
+                  <p>Here conformance includes translation polymorphism (cf. <a href="#s3.3.d" title="&sect;3.3.(d)&nbsp;Typing rules" class="sect">&sect;3.3.(d)</a>).
+                     		<br />
+                     	    Parameter correspondence without parameter mapping is determined by declaration order not by names.
+                     	    <br />
+                     	    Two adjustments can, however, be performed implicitly:
+                     			
+                  </p>
+                  <ul>
+                     <li>If the role method has more parameters than the base method,
+                        		unused trailing parameters may be silently ignored.
+                     </li>
+                     <li>If the role method returns <code>void</code>, any result from
+                        		the base method may be silently ignored.
+                     </li>
+                  </ul>
+               </div>
+               <h5 class="listing">Example code (Callout with Parameter Mapping):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>abstract</b> <b>class</b> Role1 {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>abstract</b> <b>void</b> payEuro(float euro);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>abstract</b> float earnEuro();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>void</b> idle(<b>int</b> seconds) { <span class="comment">/* do nothing */</span> };</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  Role1 boss, worker = <span class="comment">// initialization omitted</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  <b>public</b> <b>void</b> transaction () {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    boss.payEuro(worker.earnEuro());</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>    boss.idle(123);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre><b>public</b> <b>class</b> Staff { <span class="comment">// a base class </span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>  <b>public</b> <b>void</b> payDM (float dm) { … };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>  <b>public</b> float earnDM () { … };</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>  <b>public</b> <b>int</b> doze() { … };</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>  <span class="comment">// other methods omitted</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MySubTeam <b>extends</b> MyTeamA {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>  <b>public</b> <b>class</b> Role1 <b>playedBy</b> Staff {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>    <b>void</b> payEuro(float euro) <b>-&gt;</b> <b>void</b> payDM(float dm) <b>with</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>      euro * 1.95583f <b>-&gt;</b> dm</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">24</td>
+                        <td><pre>    float earnEuro() <b>-&gt;</b> float earnDM () <b>with</b> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">25</td>
+                        <td><pre>      result <b>&lt;-</b> result / 1.95583f</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">26</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">27</td>
+                        <td><pre>    idle <b>=&gt;</b> doze; <span class="comment">// override existing implementation of idle()</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">28</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">29</td>
+                        <td><pre>  <b>void</b> doit() {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">30</td>
+                        <td><pre>    transaction();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">31</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">32</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Class <code>MyTeamA</code> is declaratively complete and can be
+                        	type checked because it only uses methods that are visible or declared within this
+                        	context. <code>MyTeamA.Role1</code> can, however, not be instantiated, because it is
+                        	abstract.
+                     </li>
+                     <li>Line 30 has the normal effect of invoking <code>transaction</code>.
+                     </li>
+                     <li>When executing <code>transaction</code>, the call of <code>worker.earnEuro()</code>
+                        	is forwarded to the corresponding base object using method <code>earnDM()</code>
+                        	(binding declaration in line 24).
+                        	The result is converted by "<code>result / 1.95583f</code>" (line 25).
+                     </li>
+                     <li>Within the same execution of <code>transaction</code>, the call of
+                        	<code>boss.payEuro()</code>
+                        	is forwarded to the corresponding base object using method <code>payDM()</code>
+                        	(binding declaration in line 21).
+                        	The parameter <code>euro</code> is converted by "<code>euro * 1.95583f</code>"
+                        	(line 22).
+                     </li>
+                     <li>Method <code>idle</code> is forwarded to <code>doze</code> without any
+                        	parameter mapping. This requires <code>doze</code> to have a signature
+                        	that is conformable to the signature of <code>idle</code>.
+                        	In this case a role parameter and a base result are ignored.<br />
+                        	Using the <code>=&gt;</code> operator, this binding overrides the existing
+                        	implementation of <code>idle</code>.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.3">
+               <h2 class="sect">&sect;3.3&nbsp;Lifting and lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p> (For basic definitions see <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a> and <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>)
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+                  <p>Invoking a base method due to a callout binding first
+                     	    <strong>lowers</strong> the role object in order to obtain the effective call target.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+                  <p>Passing a role object as parameter to a callout method implicitly <strong>lowers</strong>
+                     	    this parameter, if the base method declares a corresponding base type parameter.
+                     	    <br />
+                     Lifting of callout parameters is not possible.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+                  <p> When returning a base object from a callout method where the role
+                     	    method declares the result to be of a role class,
+                     	    this object is implicitly <strong>lifted</strong> to the appropriate role.
+                     	    <br />
+                     Lowering the result of a callout binding is not possible.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+                  <p>A parameter mapping (implicit by parameter position or explicit
+                     		by a <code>with</code> clause) is <strong>well typed</strong> if
+                     		the left hand side conforms to the right hand side, either by
+                     			
+                  </p>
+                  <ul>
+                     <li>type equality</li>
+                     <li>implicit primitive type conversion</li>
+                     <li>subtype polymorphism</li>
+                     <li>translation polymorphism, here: <em>lowering</em>, 
+                     </li>
+                     <li><em>or</em> by a combination of the above.
+                     </li>
+                  </ul>
+                  <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                     		is well typed, if the value at the right hand side conforms to the
+                     		left hand side according to the rules given above, except that
+                     		translation polymorphism here applies <em>lifting</em> instead of
+                     		lowering.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.3.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+                  <p>For arrays of roles as parameters <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                        class="sect">&sect;2.2.(e)</a> applies accordingly.
+                     		For arrays as a return value <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                        class="sect">&sect;2.3.(d)</a> applies.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.4">
+               <h2 class="sect">&sect;3.4&nbsp;Overriding access restrictions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p>In contrast to normal access restrictions, method bindings
+                  may refer to hidden base methods.
+                  This concept is the inverse of encapsulation, hence it is called
+                  <strong>decapsulation</strong>.
+                  <br />
+                  Decapsulation may occur in these positions:
+                  		
+               </p>
+               <ul>
+                  <li><code>playedBy</code> declaration (see <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>)
+                  </li>
+                  <li>base constructor call (see <a href="s2.4.2.b.html" title="&sect;2.4.2.(b)&nbsp;Bound roles" class="sect">&sect;2.4.2.(b)</a>).
+                  </li>
+                  <li>callout bindings (see next)</li>
+                  <li>callout to field (see <a href="#s3.5.e" title="&sect;3.5.(e)&nbsp;Access control" class="sect">&sect;3.5.(e)</a>)
+                  </li>
+                  <li>base call within a callin method (see <a href="s4.6.html" title="&sect;4.6&nbsp;Overriding access restrictions"
+                        class="sect">&sect;4.6</a>)
+                  </li>
+               </ul>
+               <div class="subsect depth3" id="s3.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Callout to inaccessible base method</span></h4>
+                  <p>By means of <strong>callout</strong> bindings it is possible to access
+                     methods of a base class regardless of their access modifiers.
+                     	  Method bindings are the only place in a program which may mention otherwise
+                     inaccessible methods.
+                     	  Access to the callout method at the role side is controlled by regular mechanisms,
+                     	  based on the declaration of the role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Sealing against decapsulation</span></h4>
+                  <p>A base package may be "sealed" which re-establishes the standard Java visibility rules.
+                     		<br />
+                     		Sealing is achieved by the corresponding capability of Jar files.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Warning levels</span></h4>
+                  <p>A compiler should signal any occurrence of decapsulation. 
+                     		If a compiler supports to configure warnings this may be used to let the user choose to 
+                     		(a) ignore base class decapsulation, (b) treat it as a warning or even 
+                     		(c) treat it as an error (cf. <a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a>).
+                     		<br />
+                     		Optionally, a batch compiler may support three levels of verbosity with respect to decapsulation:
+                     			
+                  </p>
+                  <table border="1">
+                     <tr>
+                        <td rowspan="1" colspan="1"><tt>-nodecapsulation</tt></td>
+                        <td rowspan="1" colspan="1">No warnings.</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1"><em>default</em></td>
+                        <td rowspan="1" colspan="1">Warn only if/that access restrictions are overridden.</td>
+                     </tr>
+                     <tr>
+                        <td rowspan="1" colspan="1"><tt>-decapsulation</tt></td>
+                        <td rowspan="1" colspan="1">Detailed messages containing the binding and the hidden base method.</td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="subsect depth3" id="s3.4.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Private methods from super classes</span></h4>
+                  <p>If a callout binding shall bind to a private base method, that method
+                     must be defined in the exact base class to which the current role
+                     class is bound using <code>playedBy</code>. I.e., for private methods
+                     <a href="#s3.1.d"
+                        title="&sect;3.1.(d)&nbsp;Inheritance of role method declarations"
+                        class="sect">&sect;3.1.(d)</a> does not hold.
+                     <br />
+                     The same holds for private base fields (see below).
+                     <br />
+                     If a private base feature must indeed be callout-bound, a role class
+                     must be defined that is played by the exact base class defining the
+                     private feature. Another role bound to a sub-base-class can then
+                     be defined as a sub class of the first role. It will inherit the
+                     callout binding and through this it can access the desired feature.
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <em><b>private</b> <b>int</b> secret;</em></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase  { <span class="comment">/* details omitted */</span> }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>  <b>protected</b> <b>class</b> SuperRole <b>playedBy</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="green"><strong>OK</strong></span></span></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>  <b>protected</b> <b>class</b> SubRole <b>extends</b> SuperRole <b>playedBy</b> SubBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>    <b>int</b> steal() <b>-&gt;</b> <b>get</b> <b>int</b> <em>secret</em>; <span class="comment">// <span class="error"><strong>illegal!</strong></span></span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s3.5">
+               <h2 class="sect">&sect;3.5&nbsp;Callout to field<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;3</a></span></h2>
+               <p>Also fields of a base class can be made accessible using a callout binding.
+                  		
+               </p>
+               <div class="subsect depth3" id="s3.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+                  <p>Using one of the callout modifiers <code>get</code> or <code>set</code> a role method
+                     	    can be bound to a field of the role's base class:
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>getValue <b>-&gt;</b> <em>get</em> value;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>setValue <b>-&gt;</b> <em>set</em> value;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre><b>int</b> getValue() <b>-&gt;</b> <em>get</em> <b>int</b> value;</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <p>where <code>getValue</code>, <code>setValue</code> are abstract role methods of
+                     	    appropriate signatures and <code>value</code> is a field of the bound base class.
+                     	    <br />
+                     	    A longer syntax is available, too (see line 3 above), which uses complete signatures.
+                     	    For the left hand side <a href="#s3.1.c" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                        class="sect">&sect;3.1.(c)</a> applies, for the
+                     	    right hand side, this longer version prepends the field type to the field name.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Compatibility</span></h4>
+                  <p>A role method bound with the modifier <code>get</code>
+                     should have no arguments
+                     (it <em>may</em> have arbitrary arguments, which are silently ignored)
+                     and should have a return type to which the base field is compatible.
+                     A role method returning void will ignore the given value and thus has
+                     no effect at all, which will be signaled by a compiler warning.
+                     <br />
+                     A role method bound with the modifier <code>set</code> must have a first argument
+                     that is compatible to the base field's type (additional arguments - if present -
+                     are silently ignored) and must not declare a return type.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Value mapping</span></h4>
+                  <p>Values can be mapped similar to parameter mappings in pure method bindings 
+                     		(<a href="#s3.2" title="&sect;3.2&nbsp;Callout parameter mapping" class="sect">&sect;3.2</a>). Such mappings can be used to establish compatibility as required above.
+                     		<br />
+                     		In both <code>get</code> and <code>set</code> bindings, the base side value is denoted 
+                     		by the field's name (lines 2 and 4 below).
+                     			
+                  </p>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre>Integer getValue()       -&gt;	<em>get</em> <b>int</b> val</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <em>with</em> { result           &lt;-	<b>new</b> Integer(val) }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre><b>void</b> setValue(Integer i) -&gt;	<em>set</em> <b>int</b> val</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>  <em>with</em> { i.intValue()     -&gt;	val }</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s3.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Effect</span></h4>
+                  <p>Callout-binding a role method to a base field generates an implementation for 
+                     		this role method, by which it acts as a getter or setter for the given 
+                     		field of the associated base object.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Access control</span></h4>
+                  <p>For accessing an otherwise invisible field, the rules for 
+                     		<a href="#s3.4" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">decapsulation (&sect;3.4)</a> apply accordingly.
+                     		<br />
+                     		Recall, that according to 
+                     		<a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40898"
+                        class="ext">JLS &sect;8.3</a> 
+                     		fields may be hidden in sub-classes of a given base class. Therefore, it is relevant to know that a callout to 
+                     		a field will always access the field that is visible in the exact base 
+                     		class of the role class defining the callout. This is especially relevant 
+                     		for accessing private fields.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Shorthand definition</span></h4>
+                  <p>Just as in <a href="#s3.1.i" title="&sect;3.1.(i)&nbsp;Shorthand definition" class="sect">&sect;3.1.(i)</a> a shorthand definition allows to introduce 
+                     		a callout field access method without prior abstract declaration. 
+                     		This requires the callout field binding to specify types as in line 3 of <a href="#s3.5.a" title="&sect;3.5.(a)&nbsp;Syntax" class="sect">&sect;3.5.(a)</a> above.
+                     		The generated access method is static iff the bound base field is static.
+                     			
+                  </p>
+                  <p>
+                     		A shorthand callout to field may optionally declare a <strong>visibility modifier</strong>,
+                     		otherwise the generated method inherits the visibility modifier of the bound base field.
+                     		No further modifiers are set.
+                     		If a callout to field overrides an inherited method or callout, 
+                     		it must not reduce the visibility of the inherited method/callout.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Callout override</span></h4>
+                  <p>Similar to method callouts a callout to field may override an existing role 
+                     		method if and only if the token <code>=&gt;</code> is used instead of <code>-&gt;</code> 
+                     		(see <a href="#s3.1.e" title="&sect;3.1.(e)&nbsp;Callout override" class="sect">&sect;3.1.(e)</a> and <a href="#s3.1.f" title="&sect;3.1.(f)&nbsp;Inheritance of callout bindings"
+                        class="sect">&sect;3.1.(f)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s3.5.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Inferred callout</span></h4>
+                  <p> If a statement or expression within the body of a bound role class 
+                     				uses a simple name or a name qualified by <code>this</code>
+                     			    which can not be resolved using normal rules, 
+                     			    the compiler may infer to use a callout to field instead,
+                     			    given that a field of the required name can be found in the role's declared baseclass.
+                     
+                  </p>
+                  <p> If a callout to field has explicitly been declared it is used for the otherwise
+                     	unresolved name, if and only if:
+                     
+                  </p>
+                  <ul>
+                     <li>the callout declares a role method name the is constructed from the token "set" for 
+                        			a setter or "get" for a getter plus the field name with capital first letter,
+                     </li>
+                     <li>the base field referenced by the callout has exactly the required name, and</li>
+                     <li>the callout kind (set/get) matches the application of the unresolved name as either
+                        			the left-hand side of an assignment (set) or as an expression (get).
+                     </li>
+                  </ul>
+                  <p>
+                     	If a matching callout to field is not found, the compiler generates one automatically,
+                     	which has <code>private</code> visibility.
+                     
+                  </p>
+                  <p>
+                     	If a callout to field has been inferred it is an error to directly invoke the
+                     	implicitly generated callout accessor that is formed according to the above rules.
+                     
+                  </p>
+                  <p>
+                     Per default inferred callout bindings are disabled, i.e., a compiler 
+                     must report these as an error. However, a compiler should allow to 
+                     configure reporting to produce a warning only (which can be suppressed 
+                     using a <code>@SuppressWarnings("inferredcallout")</code> annotation), 
+                     or to completely ignore the diagnostic. See also <a href="#s3.1.j" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a>.
+                     
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s2.html" rel="prev">&lt;&lt;&nbsp;&sect;2&nbsp;Role Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.html" rel="next">&sect;4&nbsp;Callin Binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.a.html
new file mode 100644
index 0000000..e83bbfb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.b.html" rel="next">&sect;4.1.(b)&nbsp;Prerequisite: Class binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.a">
+            <h4 class="subsect">&sect;4.1.(a)&nbsp;<span class="title">Method call interception</span></h4>
+            <p>A role method may intercept calls to a base method by
+               	    a callin binding.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.b.html" rel="next">&sect;4.1.(b)&nbsp;Prerequisite: Class binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.b.html
new file mode 100644
index 0000000..0773ebf
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.b.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(a)&nbsp;Method call interception</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.c.html" rel="next">&sect;4.1.(c)&nbsp;Callin declaration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.b">
+            <h4 class="subsect">&sect;4.1.(b)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+            <p>A callin binding requires the enclosing class to be a role class
+               	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>. 
+               	    An <em>unliftable</em> role (see <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                  class="sect">&sect;2.3.4.(a)</a>) cannot define 
+               	    callin bindings. In that case callin bindings can only be introduced in sub-roles 
+               	    which (by an appropriately refined <code>playedBy</code> clause) disambiguate the lifting translation.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(a)&nbsp;Method call interception</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.c.html" rel="next">&sect;4.1.(c)&nbsp;Callin declaration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.c.html
new file mode 100644
index 0000000..6de743b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.c.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(b)&nbsp;Prerequisite: Class binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.d.html" rel="next">&sect;4.1.(d)&nbsp;Multiple base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.c">
+            <h4 class="subsect">&sect;4.1.(c)&nbsp;<span class="title">Callin declaration</span></h4>
+            <p>A callin binding composes an existing role method with a
+               	    given base method.
+               	    It may appear within the role class at any place where feature
+               	    declarations are allowed. It is denoted by
+               			
+            </p>
+            <div class="listing plain"><pre><i>role_method_designator</i> <b>&lt;-</b> <i>callin_modifier </i><i>base_method_designator;</i></pre></div>
+            <p>Just like with callout bindings, method designators may
+               	    or may not contain parameters lists and return type but no modifiers;
+               also, each method designator must exactly and uniquely select one method 
+               (cf. <a href="s3.1.c.html" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                  class="sect">&sect;3.1.(c)</a>).
+               <br />
+               	    For <em>callin modifiers</em> see <a href="s4.2.html"
+                  title="&sect;4.2&nbsp;Callin modifiers (before, after, replace)"
+                  class="sect">below (&sect;4.2)</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(b)&nbsp;Prerequisite: Class binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.d.html" rel="next">&sect;4.1.(d)&nbsp;Multiple base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.d.html
new file mode 100644
index 0000000..e0b04ec
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.d.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(c)&nbsp;Callin declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.e.html" rel="next">&sect;4.1.(e)&nbsp;Named callin bindin&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.d">
+            <h4 class="subsect">&sect;4.1.(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+            <p>Base method designators may furthermore enumerate a
+               	    list of methods. If multiple base methods are bound in one
+               	    callin declaration generally all signatures in this binding must be conform.
+               		<br />
+               	    However, <em>extraneous parameters</em> from base methods may be ignored
+               	    at the role.
+               	    <br />
+               	    For <em>result types</em> different rules exist, depending on the
+               	    applied callin modifier (see next).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(c)&nbsp;Callin declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.e.html" rel="next">&sect;4.1.(e)&nbsp;Named callin bindin&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.e.html
new file mode 100644
index 0000000..f5bc0ce
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.e.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(d)&nbsp;Multiple base methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.f.html" rel="next">&sect;4.1.(f)&nbsp;Callin to final&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.e">
+            <h4 class="subsect">&sect;4.1.(e)&nbsp;<span class="title">Named callin bindin</span></h4>
+            <p>Any callin binding may be labeled with a name. The name of a callin binding is used 
+               			for declaring <em>precedence</em> (<a href="s4.8.html" title="&sect;4.8&nbsp;Callin precedence" class="sect">&sect;4.8</a>). 
+               			A named callin binding <em>overrides</em> any inherited callin binding 
+               			(explicit and implicit (<a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a>)) with the same name.
+               			<br />
+               It is an error to use the same callin name more than once within the same role class.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(d)&nbsp;Multiple base methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.f.html" rel="next">&sect;4.1.(f)&nbsp;Callin to final&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.f.html
new file mode 100644
index 0000000..c407652
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.f.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(e)&nbsp;Named callin bindin</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.g.html" rel="next">&sect;4.1.(g)&nbsp;Declared exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.f">
+            <h4 class="subsect">&sect;4.1.(f)&nbsp;<span class="title">Callin to final</span></h4>
+            <p>When binding to a final base method, the enclosing role must be played by the exact base class 
+               			declaring the final method. I.e., callin binding to a final method inherited from the 
+               			base class's super-class is not allowed. This is motivated by the fact that no sub-class may have 
+               			a version of a final method with different semantics.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(e)&nbsp;Named callin bindin</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.g.html" rel="next">&sect;4.1.(g)&nbsp;Declared exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.g.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.g.html
new file mode 100644
index 0000000..c0317cc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.g.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(f)&nbsp;Callin to final</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.h.html" rel="next">&sect;4.1.(h)&nbsp;Method of enclosing class&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.g">
+            <h4 class="subsect">&sect;4.1.(g)&nbsp;<span class="title">Declared exceptions</span></h4>
+            <p>It is an error if a role method to be bound by callin declares in its <tt>throws</tt> clause 
+               		any exceptions that are not declared by the corresponding base method(s).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.f.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(f)&nbsp;Callin to final</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.1.h.html" rel="next">&sect;4.1.(h)&nbsp;Method of enclosing class&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.h.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.h.html
new file mode 100644
index 0000000..6249fb7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.h.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(g)&nbsp;Declared exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+         <div class="subsect depth3" id="s4.1.h">
+            <h4 class="subsect">&sect;4.1.(h)&nbsp;<span class="title">Method of enclosing class</span></h4>
+            <p>In a <code>before</code> or <code>after</code> callin binding the left hand side may alternatively
+               			resolve to a method of an enclosing class rather than the current role.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.g.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1.(g)&nbsp;Declared exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.1.html" rel="section">&sect;4.1&nbsp;Callin method binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.html
new file mode 100644
index 0000000..ff4a943
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.1.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.html" rel="next">&sect;4.2&nbsp;Callin modifiers (before, after, replace)&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.1">
+            <h2 class="sect">&sect;4.1&nbsp;Callin method binding</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.3</a></div>
+            <div class="subsect depth3" id="s4.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Method call interception</span></h4>
+               <p>A role method may intercept calls to a base method by
+                  	    a callin binding.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+               <p>A callin binding requires the enclosing class to be a role class
+                  	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>. 
+                  	    An <em>unliftable</em> role (see <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                     class="sect">&sect;2.3.4.(a)</a>) cannot define 
+                  	    callin bindings. In that case callin bindings can only be introduced in sub-roles 
+                  	    which (by an appropriately refined <code>playedBy</code> clause) disambiguate the lifting translation.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Callin declaration</span></h4>
+               <p>A callin binding composes an existing role method with a
+                  	    given base method.
+                  	    It may appear within the role class at any place where feature
+                  	    declarations are allowed. It is denoted by
+                  			
+               </p>
+               <div class="listing plain"><pre><i>role_method_designator</i> <b>&lt;-</b> <i>callin_modifier </i><i>base_method_designator;</i></pre></div>
+               <p>Just like with callout bindings, method designators may
+                  	    or may not contain parameters lists and return type but no modifiers;
+                  also, each method designator must exactly and uniquely select one method 
+                  (cf. <a href="s3.1.c.html" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                     class="sect">&sect;3.1.(c)</a>).
+                  <br />
+                  	    For <em>callin modifiers</em> see <a href="s4.2.html"
+                     title="&sect;4.2&nbsp;Callin modifiers (before, after, replace)"
+                     class="sect">below (&sect;4.2)</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+               <p>Base method designators may furthermore enumerate a
+                  	    list of methods. If multiple base methods are bound in one
+                  	    callin declaration generally all signatures in this binding must be conform.
+                  		<br />
+                  	    However, <em>extraneous parameters</em> from base methods may be ignored
+                  	    at the role.
+                  	    <br />
+                  	    For <em>result types</em> different rules exist, depending on the
+                  	    applied callin modifier (see next).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Named callin bindin</span></h4>
+               <p>Any callin binding may be labeled with a name. The name of a callin binding is used 
+                  			for declaring <em>precedence</em> (<a href="s4.8.html" title="&sect;4.8&nbsp;Callin precedence" class="sect">&sect;4.8</a>). 
+                  			A named callin binding <em>overrides</em> any inherited callin binding 
+                  			(explicit and implicit (<a href="s1.3.1.html"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>)) with the same name.
+                  			<br />
+                  It is an error to use the same callin name more than once within the same role class.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Callin to final</span></h4>
+               <p>When binding to a final base method, the enclosing role must be played by the exact base class 
+                  			declaring the final method. I.e., callin binding to a final method inherited from the 
+                  			base class's super-class is not allowed. This is motivated by the fact that no sub-class may have 
+                  			a version of a final method with different semantics.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.g">
+               <h4 class="subsect">(g)&nbsp;<span class="title">Declared exceptions</span></h4>
+               <p>It is an error if a role method to be bound by callin declares in its <tt>throws</tt> clause 
+                  		any exceptions that are not declared by the corresponding base method(s).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.1.h">
+               <h4 class="subsect">(h)&nbsp;<span class="title">Method of enclosing class</span></h4>
+               <p>In a <code>before</code> or <code>after</code> callin binding the left hand side may alternatively
+                  			resolve to a method of an enclosing class rather than the current role.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.html" rel="next">&sect;4.2&nbsp;Callin modifiers (before, after, replace)&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.a.html
new file mode 100644
index 0000000..fc73978
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.a.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.b.html" rel="next">&sect;4.10.(b)&nbsp;Type bounds&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="subsect depth3" id="s4.10.a">
+            <h4 class="subsect">&sect;4.10.(a)&nbsp;<span class="title">Fresh type parameter</span></h4>
+            <p>
+               			If a callin method declares a type parameter <code>&lt;T&gt;</code> for
+               			capturing a covariant return type
+               			this type <code>T</code>
+               			can be used for specifying the type of exactly one parameter or the return type.
+               			If a type parameter is used in more than one position of a <code>callin</code> method
+               			it is not considered a <em>fresh type parameter</em>
+               			and can thus not be bound to a covariant return type (see <a href="s4.10.d.html" title="&sect;4.10.(d)&nbsp;Binding to a type parameter"
+                  class="sect">&sect;4.10.(d)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.b.html" rel="next">&sect;4.10.(b)&nbsp;Type bounds&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.b.html
new file mode 100644
index 0000000..b79c429
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.10.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(a)&nbsp;Fresh type parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.c.html" rel="next">&sect;4.10.(c)&nbsp;Generic replace binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="subsect depth3" id="s4.10.b">
+            <h4 class="subsect">&sect;4.10.(b)&nbsp;<span class="title">Type bounds</span></h4>
+            <p>
+               			The type parameter of a callin binding may be bounded by an upper bound as in <code>&lt;T extends C&gt;</code>.
+               			In this case <code>T</code> can only be instantiated by types conforming to the upper bound <code>C</code>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.10.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(a)&nbsp;Fresh type parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.c.html" rel="next">&sect;4.10.(c)&nbsp;Generic replace binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.c.html
new file mode 100644
index 0000000..608cc45
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.c.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.10.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(b)&nbsp;Type bounds</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.d.html" rel="next">&sect;4.10.(d)&nbsp;Binding to a type parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="subsect depth3" id="s4.10.c">
+            <h4 class="subsect">&sect;4.10.(c)&nbsp;<span class="title">Generic replace binding</span></h4>
+            <p>
+               			A generic <code>callin</code> method according to the above rules is bound using a replace
+               			binding that declares the same number of type parameters,
+               			where type parameters of the binding and its callin method are identified.
+               			If the <code>callin</code> method declares bounds for its type parameters
+               			so should the replace binding.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.10.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(b)&nbsp;Type bounds</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.d.html" rel="next">&sect;4.10.(d)&nbsp;Binding to a type parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.d.html
new file mode 100644
index 0000000..0397da9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.d.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.10.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(c)&nbsp;Generic replace binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.e.html" rel="next">&sect;4.10.(e)&nbsp;Propagating type parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="subsect depth3" id="s4.10.d">
+            <h4 class="subsect">&sect;4.10.(d)&nbsp;<span class="title">Binding to a type parameter</span></h4>
+            <p>
+               			A fresh type parameter can be used to capture arbitrary types in the base methods to be bound.
+               			The type parameter may be instantiated differently for each bound base method.
+               			By such type parameter instantiation the types in role and base signatures are actually identical,
+               			thus satisfying the requirement of two-way substitutability.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.10.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(c)&nbsp;Generic replace binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.e.html" rel="next">&sect;4.10.(e)&nbsp;Propagating type parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.e.html
new file mode 100644
index 0000000..1a9dd5c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.e.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.10.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(d)&nbsp;Binding to a type parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+         <div class="subsect depth3" id="s4.10.e">
+            <h4 class="subsect">&sect;4.10.(e)&nbsp;<span class="title">Propagating type parameters</span></h4>
+            <p>
+               				If a callin binding binds to a generic base method, 
+               				any type parameter(s) of the base method must be propagated into the role method 
+               				by declaring the callin binding with type parameters, too.
+               				By matching a type parameter of a base method with a type variable
+               				of the callin binding, this genericity is propagated through the callin binding.
+               			
+            </p>
+            <div class="listing  frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>class</b> MyBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>	&lt;T&gt; T getIt(T it) { <b>return</b> it; }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>	<b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>		<b>callin</b> &lt;U&gt; U rm(U a) { <b>return</b> base.rm(a); }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>		&lt;U&gt; U rm(U a) <b>&lt;-</b> <b>replace</b> U getIt(U it);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>	}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Explanation:</h5>
+               				The callin binding declares a type parameter <code>&lt;U&gt;</code>
+               				which is used to match all occurrences of <code>T</code> in the signature of <code>getIt</code>.
+               				Thus the implementation of <code>rm</code> uses the type <code>U</code>
+               				in exactly the same generic way as <code>getIt</code> uses <code>T</code>.
+               			
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.10.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.10.(d)&nbsp;Binding to a type parameter</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.10.html" rel="section">&sect;4.10&nbsp;Generic callin bindings</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.html
new file mode 100644
index 0000000..cfdcf01
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.10.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9&nbsp;Callin inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.10">
+            <h2 class="sect">&sect;4.10&nbsp;Generic callin bindings</h2>
+            <p>
+               			As mentioned in <a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> replace bindings do not support subtype polymorphism
+               			in either direction.
+               			On the other hand, binding several base methods to the same <code>callin</code> method
+               			may require some more flexibility if these base methods have different signatures.
+               			This is where type parameter come to the rescue to allow for generic <code>callin</code> methods
+               			and	their binding to base methods with different signatures.<br />
+               			Note that this rule is a generalization of rule <a href="s4.9.3.c.html" title="&sect;4.9.3.(c)&nbsp;Covariant replace binding"
+                  class="sect">&sect;4.9.3.(c)</a>.
+               		
+            </p>
+            <p>
+               			Additionally, any callin binding (before,replace,after) may declare one or more type parameters
+               			for propagating type parameters of the bound base method(s) (<a href="#s4.10.e" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                  class="sect">&sect;4.10.(e)</a>).
+               		
+            </p>
+            <div class="subsect depth3" id="s4.10.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Fresh type parameter</span></h4>
+               <p>
+                  			If a callin method declares a type parameter <code>&lt;T&gt;</code> for
+                  			capturing a covariant return type
+                  			this type <code>T</code>
+                  			can be used for specifying the type of exactly one parameter or the return type.
+                  			If a type parameter is used in more than one position of a <code>callin</code> method
+                  			it is not considered a <em>fresh type parameter</em>
+                  			and can thus not be bound to a covariant return type (see <a href="#s4.10.d" title="&sect;4.10.(d)&nbsp;Binding to a type parameter"
+                     class="sect">&sect;4.10.(d)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.10.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Type bounds</span></h4>
+               <p>
+                  			The type parameter of a callin binding may be bounded by an upper bound as in <code>&lt;T extends C&gt;</code>.
+                  			In this case <code>T</code> can only be instantiated by types conforming to the upper bound <code>C</code>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.10.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Generic replace binding</span></h4>
+               <p>
+                  			A generic <code>callin</code> method according to the above rules is bound using a replace
+                  			binding that declares the same number of type parameters,
+                  			where type parameters of the binding and its callin method are identified.
+                  			If the <code>callin</code> method declares bounds for its type parameters
+                  			so should the replace binding.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.10.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Binding to a type parameter</span></h4>
+               <p>
+                  			A fresh type parameter can be used to capture arbitrary types in the base methods to be bound.
+                  			The type parameter may be instantiated differently for each bound base method.
+                  			By such type parameter instantiation the types in role and base signatures are actually identical,
+                  			thus satisfying the requirement of two-way substitutability.
+                  			
+               </p>
+            </div>
+            <p>
+               			Within the body of a generic <code>callin</code> method no further rules have to be followed,
+               			because the fresh type variable actually guarantees, that the role method cannot replace the
+               			original value (initial argument or base-call result) with a different object,
+               			because no type exists that is guaranteed to conform to the type parameters.
+               			Yet, the type bound allows the role method to invoke methods of the provided object.
+               		
+            </p>
+            <h5 class="listing">Generic replace binding</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> Figures {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>        <b>callin</b> &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; E ci(F arg) {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>            E result= base.ci(arg);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>            <span class="error">result= arg; // illegal, types E and F are incommensurable</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>            <span class="error">arg= result; // illegal, types E and F are incommensurable</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>            <b>int</b> size= arg.getSize(); <span class="comment">// getSize() is availabel on F via type bound Shape</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>            result.resize(size); <span class="comment">    // resize() is available on E via type bound Shape</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>            <b>return</b> result; <span class="comment">// only two legal values exist: <code>result</code> and <code>null</code></span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>        }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>        &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>        E  ci(F arg) <b>&lt;-</b> <b>replace</b> Rectangle getBoundingBox(Shape original), </pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>                                Rectangle stretch(Square original);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Explanation:</h5>
+               			These declaration generate two version of the <code>callin</code> method <code>ci</code>:
+               			
+               <ol>
+                  <li><code>Rectangle ci (Shape arg)</code></li>
+                  <li><code>Rectangle ci (Square arg)</code></li>
+               </ol>
+               			Within the <code>callin</code> method the following observations hold:
+               			
+               <ul>
+                  <li>Line 5 is illegal for the first signature as <code>Shape</code> is not conform to <code>Rectangle</code></li>
+                  <li>Line 6 is illegal for the second signature as <code>Rectangle</code> is not conform to <code>Square</code></li>
+                  <li>Everything else is type-safe.</li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="s4.10.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Propagating type parameters</span></h4>
+               <p>
+                  				If a callin binding binds to a generic base method, 
+                  				any type parameter(s) of the base method must be propagated into the role method 
+                  				by declaring the callin binding with type parameters, too.
+                  				By matching a type parameter of a base method with a type variable
+                  				of the callin binding, this genericity is propagated through the callin binding.
+                  			
+               </p>
+               <div class="listing  frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>class</b> MyBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>	&lt;T&gt; T getIt(T it) { <b>return</b> it; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>	<b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>		<b>callin</b> &lt;U&gt; U rm(U a) { <b>return</b> base.rm(a); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>		&lt;U&gt; U rm(U a) <b>&lt;-</b> <b>replace</b> U getIt(U it);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>	}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Explanation:</h5>
+                  				The callin binding declares a type parameter <code>&lt;U&gt;</code>
+                  				which is used to match all occurrences of <code>T</code> in the signature of <code>getIt</code>.
+                  				Thus the implementation of <code>rm</code> uses the type <code>U</code>
+                  				in exactly the same generic way as <code>getIt</code> uses <code>T</code>.
+                  			
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9&nbsp;Callin inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.a.html
new file mode 100644
index 0000000..2b55999
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.a.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.b.html" rel="next">&sect;4.2.(b)&nbsp;Additive composition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="subsect depth3" id="s4.2.a">
+            <h4 class="subsect">&sect;4.2.(a)&nbsp;<span class="title">Method composition</span></h4>
+            <p>The kind of method composition is controlled by adding one
+               	    of the modifiers <strong>before, after</strong> or <strong>replace</strong> after the
+               	    "<code>&lt;-</code>" token of the binding declaration.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.b.html" rel="next">&sect;4.2.(b)&nbsp;Additive composition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.b.html
new file mode 100644
index 0000000..0110b70
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.b.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(a)&nbsp;Method composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.c.html" rel="next">&sect;4.2.(c)&nbsp;Replacing composition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="subsect depth3" id="s4.2.b">
+            <h4 class="subsect">&sect;4.2.(b)&nbsp;<span class="title">Additive composition</span></h4>
+            <p>The <code>before</code> and <code>after</code> modifiers have the
+               	    effect of adding a call to the role method at the beginning or end
+               	    of the base method, resp.<br />
+               	    In this case no data are transferred from the role to the base,
+               	    so if the role method has a result, this will always be ignored.
+               			
+            </p>
+            <h5 class="listing">Example code (Callin):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>protected</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>public</b> <b>void</b> recalculateIncome() { ... }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    recalculateIncome <em><b>&lt;-</b> after</em> haveBirthday; <span class="comment">// callin binding</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <p>Line 4 declares a callin binding for the role method <code>recalculateIncome()</code> 
+                  			defined in line 3. In combination with the role binding in line 2 this has the following effect:
+                  				
+               </p>
+               <ul>
+                  <li><strong>After</strong> every call of the method <code>Person.haveBirthday</code> 
+                     					the method <code>Company.recalculateIncome</code> is called.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(a)&nbsp;Method composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.c.html" rel="next">&sect;4.2.(c)&nbsp;Replacing composition&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.c.html
new file mode 100644
index 0000000..b2ceb1b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(b)&nbsp;Additive composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.d.html" rel="next">&sect;4.2.(d)&nbsp;Callin methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="subsect depth3" id="s4.2.c">
+            <h4 class="subsect">&sect;4.2.(c)&nbsp;<span class="title">Replacing composition</span></h4>
+            <p>The <code>replace</code> modifier causes <em>only</em> the role method to be
+               	    invoked, replacing the base method.
+               	    <br />
+               	    In this case, if the base method declares a result, this should be provided by the role method.
+               	    Special cases of return values in callin bindings are discussed in <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                  class="sect">&sect;4.3.(e)</a></p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(b)&nbsp;Additive composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.2.d.html" rel="next">&sect;4.2.(d)&nbsp;Callin methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.d.html
new file mode 100644
index 0000000..a0512fa
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.d.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(c)&nbsp;Replacing composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+         <div class="subsect depth3" id="s4.2.d">
+            <h4 class="subsect">&sect;4.2.(d)&nbsp;<span class="title">Callin methods</span></h4>
+            <p>Role methods to be bound by a callin replacement binding must have
+               	    the modifier <code>callin</code>. This modifier is only allowed for methods
+               	    of a role class.<br />
+               		A method with the <code>callin</code> modifier can only be called
+               			
+            </p>
+            <ul>
+               <li>via a callin replace binding</li>
+               <li>by a <code>super</code> or <code>tsuper</code> call from an overriding callin method.
+               </li>
+            </ul>
+            <p>It is illegal for a <code>callin</code> method
+            </p>
+            <ul>
+               <li>to be called directly,</li>
+               <li>to be bound using a callout binding, and</li>
+               <li>to be bound to a base method using a <code>before</code> or <code>after</code> callin binding.
+               </li>
+            </ul>
+            <p>Despite these rules a second level role &mdash; which is played by the current role &mdash;
+				can	intercept the execution of a callin method using any form of callin binding.</p>
+            <p>A callin method cannot override a regular method and vice versa, however,
+               	    overriding one callin method with another callin method is legal and
+               	    dynamic binding applies to callin method just like regular methods.
+               	    <br />
+               	    A callin method must not declare its visibility using any of the modifiers <code>public</code>, 
+               	    <code>protected</code> or <code>private</code>. Since callin methods can only be invoked via callin bindings 
+               	    such visibility control would not be useful.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2.(c)&nbsp;Replacing composition</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.2.html" rel="section">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.html
new file mode 100644
index 0000000..f8f4e8e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.2.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1&nbsp;Callin method binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.html" rel="next">&sect;4.3&nbsp;Base calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.2">
+            <h2 class="sect">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</h2>
+            <div class="subsect depth3" id="s4.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Method composition</span></h4>
+               <p>The kind of method composition is controlled by adding one
+                  	    of the modifiers <strong>before, after</strong> or <strong>replace</strong> after the
+                  	    "<code>&lt;-</code>" token of the binding declaration.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Additive composition</span></h4>
+               <p>The <code>before</code> and <code>after</code> modifiers have the
+                  	    effect of adding a call to the role method at the beginning or end
+                  	    of the base method, resp.<br />
+                  	    In this case no data are transferred from the role to the base,
+                  	    so if the role method has a result, this will always be ignored.
+                  			
+               </p>
+               <h5 class="listing">Example code (Callin):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>protected</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>public</b> <b>void</b> recalculateIncome() { ... }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    recalculateIncome <em><b>&lt;-</b> after</em> haveBirthday; <span class="comment">// callin binding</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <p>Line 4 declares a callin binding for the role method <code>recalculateIncome()</code> 
+                     			defined in line 3. In combination with the role binding in line 2 this has the following effect:
+                     				
+                  </p>
+                  <ul>
+                     <li><strong>After</strong> every call of the method <code>Person.haveBirthday</code> 
+                        					the method <code>Company.recalculateIncome</code> is called.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s4.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Replacing composition</span></h4>
+               <p>The <code>replace</code> modifier causes <em>only</em> the role method to be
+                  	    invoked, replacing the base method.
+                  	    <br />
+                  	    In this case, if the base method declares a result, this should be provided by the role method.
+                  	    Special cases of return values in callin bindings are discussed in <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                     class="sect">&sect;4.3.(e)</a></p>
+            </div>
+            <div class="subsect depth3" id="s4.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Callin methods</span></h4>
+               <p>Role methods to be bound by a callin replacement binding must have
+                  	    the modifier <code>callin</code>. This modifier is only allowed for methods
+                  	    of a role class.<br />
+                  		A method with the <code>callin</code> modifier can only be called
+                  			
+               </p>
+               <ul>
+                  <li>via a callin replace binding</li>
+                  <li>by a <code>super</code> or <code>tsuper</code> call from an overriding callin method.
+                  </li>
+               </ul>
+               <p>It is illegal for a <code>callin</code> method
+               </p>
+               <ul>
+                  <li>to be called directly,</li>
+                  <li>to be bound using a callout binding, and</li>
+                  <li>to be bound to a base method using a <code>before</code> or <code>after</code> callin binding.
+                  </li>
+               </ul>
+               <p>Despite these rules a second level role &mdash; which is played by the current role &mdash;
+				can	intercept the execution of a callin method using any form of callin binding.</p>
+               <p>A callin method cannot override a regular method and vice versa, however,
+                  	    overriding one callin method with another callin method is legal and
+                  	    dynamic binding applies to callin method just like regular methods.
+                  	    <br />
+                  	    A callin method must not declare its visibility using any of the modifiers <code>public</code>, 
+                  	    <code>protected</code> or <code>private</code>. Since callin methods can only be invoked via callin bindings 
+                  	    such visibility control would not be useful.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;4.1&nbsp;Callin method binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.html" rel="next">&sect;4.3&nbsp;Base calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.a.html
new file mode 100644
index 0000000..57ca131
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.a.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.b.html" rel="next">&sect;4.3.(b)&nbsp;Missing base call&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.a">
+            <h4 class="subsect">&sect;4.3.(a)&nbsp;<span class="title">Syntax</span></h4>
+            <p>The syntax for base calls is <code>base.m()</code>,
+               		which is in analogy to super calls.
+               	    A <code>base.m()</code> call must use the same name and signature
+               	    as the enclosing method. This again follows the rule, that roles
+               	    should never explicitly use base names, except in binding declarations.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.b.html" rel="next">&sect;4.3.(b)&nbsp;Missing base call&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.b.html
new file mode 100644
index 0000000..08e935f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.b.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(a)&nbsp;Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.c.html" rel="next">&sect;4.3.(c)&nbsp;Duplicate base call&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.b">
+            <h4 class="subsect">&sect;4.3.(b)&nbsp;<span class="title">Missing base call</span></h4>
+            <p>For each callin method, the compiler uses some flow analysis to check whether
+               		a base call will be invoked on each path of execution (analysis is very similar 
+               		to the analysis for definite assignment regarding final variables - 
+               		<a href="http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html"
+                  class="ext">JLS &sect;16</a>).
+               		The compiler will issue a warning if a base call is missing either
+               		on each path (definitely missing) or on some paths (potentially missing).
+               		Instead of directly invoking a base call, a callin method may also call
+               		its explicit or implicit super version using <code>super.m()</code> or <code>tsuper.m()</code> (see <a href="s1.3.1.f.html" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a>). 
+               		In this case the flow analysis will transitively include the called super/tsuper version.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(a)&nbsp;Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.c.html" rel="next">&sect;4.3.(c)&nbsp;Duplicate base call&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.c.html
new file mode 100644
index 0000000..2b774ea
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.c.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(b)&nbsp;Missing base call</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.d.html" rel="next">&sect;4.3.(d)&nbsp;Parameter tunneling&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.c">
+            <h4 class="subsect">&sect;4.3.(c)&nbsp;<span class="title">Duplicate base call</span></h4>
+            <p>If a callin method contains several base calls, the compiler gives
+               		a warning if this will result in duplicate base call invocations on all
+               		paths (definitely duplicate) or on some paths (potentially duplicate).
+               		Again super/tsuper calls are included in the flow analysis (see 4.3(b)).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(b)&nbsp;Missing base call</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.d.html" rel="next">&sect;4.3.(d)&nbsp;Parameter tunneling&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.d.html
new file mode 100644
index 0000000..1ed666d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.d.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(c)&nbsp;Duplicate base call</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.e.html" rel="next">&sect;4.3.(e)&nbsp;Fragile callin binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.d">
+            <h4 class="subsect">&sect;4.3.(d)&nbsp;<span class="title">Parameter tunneling</span></h4>
+            <p>If a base method has more parameters
+               	    than a callin method to which it is composed, additional
+               	    parameters are implicitly passed unchanged from the original
+               	    call to the base call (original means: before interception).
+               		I.e., a call <code>base.m()</code> may invisibly pass additional
+               		parameters that were provided by the caller, but are hidden from the
+               		role method.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(c)&nbsp;Duplicate base call</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.e.html" rel="next">&sect;4.3.(e)&nbsp;Fragile callin binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.e.html
new file mode 100644
index 0000000..c2aa6c2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.e.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(d)&nbsp;Parameter tunneling</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.f.html" rel="next">&sect;4.3.(f)&nbsp;Base super calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.e">
+            <h4 class="subsect">&sect;4.3.(e)&nbsp;<span class="title">Fragile callin binding</span></h4>
+            <p>If a role method returns void, but the bound base method declares a
+               		non-void result, this is reported as a <em>fragile callin binding</em>:
+               The result can still be provided by the base call, but omitting the
+               		base call may cause problems depending on the return type:
+               			
+            </p>
+            <ul>
+               <li>For reference return types <code>null</code> will be returned
+                  			            in this case.
+               </li>
+               <li>In the case of primitive return types this will cause a
+                  						<code>ResultNotProvidedException</code> at run-time.
+               </li>
+            </ul>
+            <p>It is an error if a callin method involved in a fragile callin binding
+               		has definitely no base call.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(d)&nbsp;Parameter tunneling</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.3.f.html" rel="next">&sect;4.3.(f)&nbsp;Base super calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.f.html
new file mode 100644
index 0000000..5f9d0f1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.f.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(e)&nbsp;Fragile callin binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+         <div class="subsect depth3" id="s4.3.f">
+            <h4 class="subsect">&sect;4.3.(f)&nbsp;<span class="title">Base super calls</span></h4>
+            <p>If a callin method <code>rm</code> is bound to a base method <code>B1.m</code> 
+               			that in turn overrides an inherited method <code>B0.m</code> 
+               			(<code>B0</code> is a super class of <code>B1</code>),
+               			the callin method may use a special form of a base call denoted as 
+               			
+            </p>
+            <div class="listing plain"><pre><strong>base.super</strong>.rm();</pre></div>
+            <p>Such base super call invokes the super method of the bound base method,
+               			here <code>B0.m</code>. This invocation is not affected by any further callin binding.
+               			
+            </p>
+            <p>A base super call bypasses both the original method <code>B1.m</code> and
+               			also other callin bindings that would be triggered by a regular base call.
+               			For this reason any application of this construct is flagged by a decapsulation warning
+               			(see <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                  class="sect">&sect;3.4</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3.(e)&nbsp;Fragile callin binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.3.html" rel="section">&sect;4.3&nbsp;Base calls</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.html
new file mode 100644
index 0000000..2729552
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.3.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.html" rel="next">&sect;4.4&nbsp;Callin parameter mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.3">
+            <h2 class="sect">&sect;4.3&nbsp;Base calls</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.3</a></div>
+            <p>Role methods with a <code>callin</code> modifier should contain
+               a <em>base call</em> which uses the special name <code>base</code>
+               in order to invoke the original base method (original means: before replacement).
+               		
+            </p>
+            <div class="subsect depth3" id="s4.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+               <p>The syntax for base calls is <code>base.m()</code>,
+                  		which is in analogy to super calls.
+                  	    A <code>base.m()</code> call must use the same name and signature
+                  	    as the enclosing method. This again follows the rule, that roles
+                  	    should never explicitly use base names, except in binding declarations.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Missing base call</span></h4>
+               <p>For each callin method, the compiler uses some flow analysis to check whether
+                  		a base call will be invoked on each path of execution (analysis is very similar 
+                  		to the analysis for definite assignment regarding final variables - 
+                  		<a href="http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html"
+                     class="ext">JLS &sect;16</a>).
+                  		The compiler will issue a warning if a base call is missing either
+                  		on each path (definitely missing) or on some paths (potentially missing).
+                  		Instead of directly invoking a base call, a callin method may also call
+                  		its explicit or implicit super version using <code>super.m()</code> or <code>tsuper.m()</code> (see <a href="s1.3.1.f.html" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a>). 
+                  		In this case the flow analysis will transitively include the called super/tsuper version.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate base call</span></h4>
+               <p>If a callin method contains several base calls, the compiler gives
+                  		a warning if this will result in duplicate base call invocations on all
+                  		paths (definitely duplicate) or on some paths (potentially duplicate).
+                  		Again super/tsuper calls are included in the flow analysis (see 4.3(b)).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Parameter tunneling</span></h4>
+               <p>If a base method has more parameters
+                  	    than a callin method to which it is composed, additional
+                  	    parameters are implicitly passed unchanged from the original
+                  	    call to the base call (original means: before interception).
+                  		I.e., a call <code>base.m()</code> may invisibly pass additional
+                  		parameters that were provided by the caller, but are hidden from the
+                  		role method.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.3.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Fragile callin binding</span></h4>
+               <p>If a role method returns void, but the bound base method declares a
+                  		non-void result, this is reported as a <em>fragile callin binding</em>:
+                  The result can still be provided by the base call, but omitting the
+                  		base call may cause problems depending on the return type:
+                  			
+               </p>
+               <ul>
+                  <li>For reference return types <code>null</code> will be returned
+                     			            in this case.
+                  </li>
+                  <li>In the case of primitive return types this will cause a
+                     						<code>ResultNotProvidedException</code> at run-time.
+                  </li>
+               </ul>
+               <p>It is an error if a callin method involved in a fragile callin binding
+                  		has definitely no base call.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.3.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Base super calls</span></h4>
+               <p>If a callin method <code>rm</code> is bound to a base method <code>B1.m</code> 
+                  			that in turn overrides an inherited method <code>B0.m</code> 
+                  			(<code>B0</code> is a super class of <code>B1</code>),
+                  			the callin method may use a special form of a base call denoted as 
+                  			
+               </p>
+               <div class="listing plain"><pre><strong>base.super</strong>.rm();</pre></div>
+               <p>Such base super call invokes the super method of the bound base method,
+                  			here <code>B0.m</code>. This invocation is not affected by any further callin binding.
+                  			
+               </p>
+               <p>A base super call bypasses both the original method <code>B1.m</code> and
+                  			also other callin bindings that would be triggered by a regular base call.
+                  			For this reason any application of this construct is flagged by a decapsulation warning
+                  			(see <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">&sect;3.4</a>).
+                  			
+               </p>
+            </div>
+            <div class="note">
+               <h5>Comment:</h5>
+               			Base calls can occur in callin methods that are not
+               			yet bound. These methods have no idea of the names of base methods that
+               			a sub-role will bind to them. Also multiple base methods may be bound
+               			to the same callin method.
+               			Hence the use of the role method's own name and signature.
+               			The language implementation translates the method name and signature
+               			back to the base method that has originally been invoked.
+               		
+            </div>
+            <h5 class="listing">Example code (Base Call):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> ValidatorRole <b>playedBy</b> Po<b>int</b> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <em>callin</em> <b>void</b> checkCoordinate(<b>int</b> value) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>if</b> (value &lt; 0)</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>      <em>base</em>.checkCoordinate(-value);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    else</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>      <em>base</em>.checkCoordinate(value);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  checkCoordinate <b>&lt;-</b> <b>replace</b> setX, setY;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>Line 2 defines a callin method which is bound to two methods 
+                     						of the base class <code>Point</code> (see line 8).
+                  </li>
+                  <li>The value passed to either setX or setY is checked if it is
+                     						positive (line 3).
+                  </li>
+                  <li>Lines 4 and 6 show calls of the original method (base calls). 
+                     						While line 6 passes the original value, in the negative case (line 4) 
+                     						the passed value is made positive.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.html" rel="next">&sect;4.4&nbsp;Callin parameter mapping&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.a.html
new file mode 100644
index 0000000..be57a42
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.a.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.b.html" rel="next">&sect;4.4.(b)&nbsp;Restrictions for callin replace bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="subsect depth3" id="s4.4.a">
+            <h4 class="subsect">&sect;4.4.(a)&nbsp;<span class="title">General case parameter mapping</span></h4>
+            <p>The rules for mapping callin parameters and result type
+               	    are mainly the same as for callout bindings (<a href="s3.2.html" title="&sect;3.2&nbsp;Callout parameter mapping"
+                  class="sect">&sect;3.2</a>)
+               	    except for reversing the <code>-&gt;</code> and <code>&lt;-</code> tokens and
+               	    swapping left hand side and right hand side.
+               	    <br />
+               	    Callin bindings using <code>before</code> have no result mapping.
+               For <code>result</code> in <code>after</code> callin bindings
+               see <a href="s4.4.c.html"
+                  title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                  class="sect">&sect;4.4.(c)</a> below.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.b.html" rel="next">&sect;4.4.(b)&nbsp;Restrictions for callin replace bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.b.html
new file mode 100644
index 0000000..42cfea6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.b.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(a)&nbsp;General case parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.c.html" rel="next">&sect;4.4.(c)&nbsp;Mapping the result of a base method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="subsect depth3" id="s4.4.b">
+            <h4 class="subsect">&sect;4.4.(b)&nbsp;<span class="title">Restrictions for callin replace bindings</span></h4>
+            <p>The right-hand side of a parameter mapping may either be
+               		the simple name of a base method argument without further computation, 
+               		or an arbitrary expression <em>not</em> containing any base method argument.
+               		<br />
+               		Each base method argument must either appear as a simple name in exactly one parameter mapping
+               		or not be mapped at all. In the latter case, the original argument is "tunneled" to
+               		the base call, meaning, the callin method does not see the argument, but it is passed
+               		to the base method as expected.
+               <br />
+               If the base method declares a result, then
+               			
+            </p>
+            <ul>
+               <li>if the role method also declares a result, <code>result</code> must be mapped to itself:
+                  					<br /><code>result -&gt; result</code></li>
+               <li>if the role method does not declare a result, an arbitrary expression may be mapped to result:
+                  	<br /><code><em>expression</em> -&gt; result</code><br />
+                  		If in this situation no result mapping exists, the result of the base call
+                  					is "tunneled" and passed to the original caller (see <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                     class="sect">
+                     					fragile callin binding (&sect;4.3.(e))</a> above).
+                  
+               </li>
+            </ul>
+            <p>These rules ensure that these bindings are reversible
+               		for the sake of base calls (<a href="s4.3.html" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+               			
+            </p>
+            <p>As stated above a fragile callin binding (<a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                  class="sect">&sect;4.3.(e)</a>) 
+               		is not allowed with a callin method that definitely has no base call
+               		(<a href="s4.3.b.html" title="&sect;4.3.(b)&nbsp;Missing base call"
+                  class="sect">&sect;4.3.(b)</a>). A callin replace binding is not fragile if it provides 
+               		the base result using a result mapping.
+               			
+            </p>
+            <p>A callin method bound with replace to a base method returning
+               		void must not declare a non-void result.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(a)&nbsp;General case parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.c.html" rel="next">&sect;4.4.(c)&nbsp;Mapping the result of a base method&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.c.html
new file mode 100644
index 0000000..8071f28
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.c.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(b)&nbsp;Restrictions for callin replace bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.d.html" rel="next">&sect;4.4.(d)&nbsp;Multiple base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="subsect depth3" id="s4.4.c">
+            <h4 class="subsect">&sect;4.4.(c)&nbsp;<span class="title">Mapping the result of a base method</span></h4>
+            <p>In an <code>after</code> callin binding, the right-hand side
+               		of a parameter mapping may use the identifier <code>result</code>
+               to refer to the result of the base method.
+               	
+            </p>
+            <p> 
+               An <code>after</code> callin binding
+               can, however, not <em>influence</em> the result of the base method,
+               thus mappings with the <code>-&gt;</code> token are not allowed for after callin bindings.
+               For <code>before</code> mappings using the <code>-&gt;</code> token is already ruled out by <a href="s4.4.a.html"
+                  title="&sect;4.4.(a)&nbsp;General case parameter mapping"
+                  class="sect">&sect;4.4.(a)</a></p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(b)&nbsp;Restrictions for callin replace bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.4.d.html" rel="next">&sect;4.4.(d)&nbsp;Multiple base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.d.html
new file mode 100644
index 0000000..1a99830
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.d.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(c)&nbsp;Mapping the result of a base method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+         <div class="subsect depth3" id="s4.4.d">
+            <h4 class="subsect">&sect;4.4.(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+            <p>A callin binding listing more than one base method may use parameter
+               		mappings with only the following restriction: if any base parameter should be mapped this parameter 
+               		must have the same name and type in all listed base method designators. 
+               		However, different parameter mappings for different base methods bound to the same role method 
+               		can be defined if separate callin bindings are used.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4.(c)&nbsp;Mapping the result of a base method</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.4.html" rel="section">&sect;4.4&nbsp;Callin parameter mapping</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.html
new file mode 100644
index 0000000..971be44
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.4.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.3.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3&nbsp;Base calls</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.html" rel="next">&sect;4.5&nbsp;Lifting and lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.4">
+            <h2 class="sect">&sect;4.4&nbsp;Callin parameter mapping</h2>
+            <div class="subsect depth3" id="s4.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">General case parameter mapping</span></h4>
+               <p>The rules for mapping callin parameters and result type
+                  	    are mainly the same as for callout bindings (<a href="s3.2.html" title="&sect;3.2&nbsp;Callout parameter mapping"
+                     class="sect">&sect;3.2</a>)
+                  	    except for reversing the <code>-&gt;</code> and <code>&lt;-</code> tokens and
+                  	    swapping left hand side and right hand side.
+                  	    <br />
+                  	    Callin bindings using <code>before</code> have no result mapping.
+                  For <code>result</code> in <code>after</code> callin bindings
+                  see <a href="#s4.4.c"
+                     title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                     class="sect">&sect;4.4.(c)</a> below.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Restrictions for callin replace bindings</span></h4>
+               <p>The right-hand side of a parameter mapping may either be
+                  		the simple name of a base method argument without further computation, 
+                  		or an arbitrary expression <em>not</em> containing any base method argument.
+                  		<br />
+                  		Each base method argument must either appear as a simple name in exactly one parameter mapping
+                  		or not be mapped at all. In the latter case, the original argument is "tunneled" to
+                  		the base call, meaning, the callin method does not see the argument, but it is passed
+                  		to the base method as expected.
+                  <br />
+                  If the base method declares a result, then
+                  			
+               </p>
+               <ul>
+                  <li>if the role method also declares a result, <code>result</code> must be mapped to itself:
+                     					<br /><code>result -&gt; result</code></li>
+                  <li>if the role method does not declare a result, an arbitrary expression may be mapped to result:
+                     	<br /><code><em>expression</em> -&gt; result</code><br />
+                     		If in this situation no result mapping exists, the result of the base call
+                     					is "tunneled" and passed to the original caller (see <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">
+                        					fragile callin binding (&sect;4.3.(e))</a> above).
+                     
+                  </li>
+               </ul>
+               <p>These rules ensure that these bindings are reversible
+                  		for the sake of base calls (<a href="s4.3.html" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                  			
+               </p>
+               <p>As stated above a fragile callin binding (<a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                     class="sect">&sect;4.3.(e)</a>) 
+                  		is not allowed with a callin method that definitely has no base call
+                  		(<a href="s4.3.b.html" title="&sect;4.3.(b)&nbsp;Missing base call"
+                     class="sect">&sect;4.3.(b)</a>). A callin replace binding is not fragile if it provides 
+                  		the base result using a result mapping.
+                  			
+               </p>
+               <p>A callin method bound with replace to a base method returning
+                  		void must not declare a non-void result.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.4.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Mapping the result of a base method</span></h4>
+               <p>In an <code>after</code> callin binding, the right-hand side
+                  		of a parameter mapping may use the identifier <code>result</code>
+                  to refer to the result of the base method.
+                  	
+               </p>
+               <p> 
+                  An <code>after</code> callin binding
+                  can, however, not <em>influence</em> the result of the base method,
+                  thus mappings with the <code>-&gt;</code> token are not allowed for after callin bindings.
+                  For <code>before</code> mappings using the <code>-&gt;</code> token is already ruled out by <a href="#s4.4.a" title="&sect;4.4.(a)&nbsp;General case parameter mapping"
+                     class="sect">&sect;4.4.(a)</a></p>
+            </div>
+            <div class="subsect depth3" id="s4.4.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+               <p>A callin binding listing more than one base method may use parameter
+                  		mappings with only the following restriction: if any base parameter should be mapped this parameter 
+                  		must have the same name and type in all listed base method designators. 
+                  		However, different parameter mappings for different base methods bound to the same role method 
+                  		can be defined if separate callin bindings are used.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.3.html" rel="prev">&lt;&lt;&nbsp;&sect;4.3&nbsp;Base calls</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.html" rel="next">&sect;4.5&nbsp;Lifting and lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.a.html
new file mode 100644
index 0000000..0dabb24
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.a.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.b.html" rel="next">&sect;4.5.(b)&nbsp;Parameter translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.a">
+            <h4 class="subsect">&sect;4.5.(a)&nbsp;<span class="title">Call target translation</span></h4>
+            <p>Invoking a role method due to a callin binding first
+               	    <strong>lifts</strong> the base object to the role class of the
+               	    callin binding, in order to obtain the effective call target. 
+               	    This is why callin bindings cannot be defined in roles that are <em>unliftable</em> 
+               	    due to <em>potential binding ambiguity</em> (see <a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                  class="sect">&sect;4.1.(b)</a> 
+               	    above and <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                  class="sect">&sect;2.3.4.(a)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.b.html" rel="next">&sect;4.5.(b)&nbsp;Parameter translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.b.html
new file mode 100644
index 0000000..a13b02e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.b.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(a)&nbsp;Call target translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.c.html" rel="next">&sect;4.5.(c)&nbsp;Result translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.b">
+            <h4 class="subsect">&sect;4.5.(b)&nbsp;<span class="title">Parameter translation</span></h4>
+            <p>During callin execution, each parameter for which the role method expects a role
+               	    object is implicitly <strong>lifted</strong> to the declared role class.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(a)&nbsp;Call target translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.c.html" rel="next">&sect;4.5.(c)&nbsp;Result translation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.c.html
new file mode 100644
index 0000000..eb2fb3b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(b)&nbsp;Parameter translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.d.html" rel="next">&sect;4.5.(d)&nbsp;Typing rules&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.c">
+            <h4 class="subsect">&sect;4.5.(c)&nbsp;<span class="title">Result translation</span></h4>
+            <p>Returning a role object from a callin method implicitly
+               	    <strong>lowers</strong> this object.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(b)&nbsp;Parameter translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.d.html" rel="next">&sect;4.5.(d)&nbsp;Typing rules&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.d.html
new file mode 100644
index 0000000..be4b81f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.d.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(c)&nbsp;Result translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.e.html" rel="next">&sect;4.5.(e)&nbsp;Role arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.d">
+            <h4 class="subsect">&sect;4.5.(d)&nbsp;<span class="title">Typing rules</span></h4>
+            <p>A parameter mapping (implicit by parameter position or explicit
+               	    by a <code>with</code> clause) is <strong>well typed</strong> if
+               	    the right hand side conforms to the left hand side, either by
+               			
+            </p>
+            <ul>
+               <li>type equality</li>
+               <li>implicit primitive type conversion</li>
+               <li>subtype polymorphism</li>
+               <li>translation polymorphism, here: <em>lifting</em>;<br />
+                  however, within <code>replace</code> bindings step 1 of the smart lifting 
+                  algorithm (<a href="s2.3.3.a.html" title="&sect;2.3.3.(a)&nbsp;Static adjustment"
+                     class="sect">&sect;2.3.3.(a)</a>) is not applicable
+               </li>
+               <li><em>or</em> by a combination of the above.
+               </li>
+            </ul>
+            <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+               	    is well typed, if the value at the left hand conforms to the
+               	    right hand side according to the rules given above, except that
+               	    translation polymorphism here applies <em>lowering</em> instead of
+               	    lifting.
+            </p>
+            <p>
+               	    These rules define <strong>translation polymorphism</strong> as introduced in
+               	    <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+               			
+            </p>
+            <p>Additionally, in a <code>replace</code> callin binding compatibility of parameters and return
+               			types must hold in both directions. 
+               			Thus, from the above list of conversions a replace binding cannot apply subtype polymorphism
+               			nor primitive type conversion.
+               			If more flexibility is desired, type parameters can be used as defined in <a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                  class="sect">&sect;4.10</a>.
+               	    	
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(c)&nbsp;Result translation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.e.html" rel="next">&sect;4.5.(e)&nbsp;Role arrays&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.e.html
new file mode 100644
index 0000000..46bf1a0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.e.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(d)&nbsp;Typing rules</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.f.html" rel="next">&sect;4.5.(f)&nbsp;Base calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.e">
+            <h4 class="subsect">&sect;4.5.(e)&nbsp;<span class="title">Role arrays</span></h4>
+            <p>For arrays of roles as parameters <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                  class="sect">&sect;2.3.(d)</a> applies 
+               		accordingly. For arrays as return value <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                  class="sect">&sect;2.2.(e)</a> applies.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(d)&nbsp;Typing rules</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.5.f.html" rel="next">&sect;4.5.(f)&nbsp;Base calls&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.f.html
new file mode 100644
index 0000000..2ba4bc5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.f.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(e)&nbsp;Role arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+         <div class="subsect depth3" id="s4.5.f">
+            <h4 class="subsect">&sect;4.5.(f)&nbsp;<span class="title">Base calls</span></h4>
+            <p>For base calls these rules are reversed again, i.e., a
+               		base call behaves like a callout binding.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.e.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5.(e)&nbsp;Role arrays</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.5.html" rel="section">&sect;4.5&nbsp;Lifting and lowering</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.html
new file mode 100644
index 0000000..dd2f391
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.5.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.4.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4&nbsp;Callin parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.6.html" rel="next">&sect;4.6&nbsp;Overriding access restrictions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.5">
+            <h2 class="sect">&sect;4.5&nbsp;Lifting and lowering</h2>
+            <p>For basic definition see <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a>
+               and <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+               <br />
+               	(The following rules are reverse forms of those from <a href="s3.3.html" title="&sect;3.3&nbsp;Lifting and lowering" class="sect">&sect;3.3</a>)
+               		
+            </p>
+            <div class="subsect depth3" id="s4.5.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+               <p>Invoking a role method due to a callin binding first
+                  	    <strong>lifts</strong> the base object to the role class of the
+                  	    callin binding, in order to obtain the effective call target. 
+                  	    This is why callin bindings cannot be defined in roles that are <em>unliftable</em> 
+                  	    due to <em>potential binding ambiguity</em> (see <a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                     class="sect">&sect;4.1.(b)</a> 
+                  	    above and <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                     class="sect">&sect;2.3.4.(a)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.5.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+               <p>During callin execution, each parameter for which the role method expects a role
+                  	    object is implicitly <strong>lifted</strong> to the declared role class.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.5.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+               <p>Returning a role object from a callin method implicitly
+                  	    <strong>lowers</strong> this object.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.5.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+               <p>A parameter mapping (implicit by parameter position or explicit
+                  	    by a <code>with</code> clause) is <strong>well typed</strong> if
+                  	    the right hand side conforms to the left hand side, either by
+                  			
+               </p>
+               <ul>
+                  <li>type equality</li>
+                  <li>implicit primitive type conversion</li>
+                  <li>subtype polymorphism</li>
+                  <li>translation polymorphism, here: <em>lifting</em>;<br />
+                     however, within <code>replace</code> bindings step 1 of the smart lifting 
+                     algorithm (<a href="s2.3.3.a.html" title="&sect;2.3.3.(a)&nbsp;Static adjustment"
+                        class="sect">&sect;2.3.3.(a)</a>) is not applicable
+                  </li>
+                  <li><em>or</em> by a combination of the above.
+                  </li>
+               </ul>
+               <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                  	    is well typed, if the value at the left hand conforms to the
+                  	    right hand side according to the rules given above, except that
+                  	    translation polymorphism here applies <em>lowering</em> instead of
+                  	    lifting.
+               </p>
+               <p>
+                  	    These rules define <strong>translation polymorphism</strong> as introduced in
+                  	    <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+                  			
+               </p>
+               <p>Additionally, in a <code>replace</code> callin binding compatibility of parameters and return
+                  			types must hold in both directions. 
+                  			Thus, from the above list of conversions a replace binding cannot apply subtype polymorphism
+                  			nor primitive type conversion.
+                  			If more flexibility is desired, type parameters can be used as defined in <a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                     class="sect">&sect;4.10</a>.
+                  	    	
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.5.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+               <p>For arrays of roles as parameters <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                     class="sect">&sect;2.3.(d)</a> applies 
+                  		accordingly. For arrays as return value <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                     class="sect">&sect;2.2.(e)</a> applies.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.5.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Base calls</span></h4>
+               <p>For base calls these rules are reversed again, i.e., a
+                  		base call behaves like a callout binding.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.4.html" rel="prev">&lt;&lt;&nbsp;&sect;4.4&nbsp;Callin parameter mapping</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.6.html" rel="next">&sect;4.6&nbsp;Overriding access restrictions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.a.html
new file mode 100644
index 0000000..347c9a6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.a.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.6.html" rel="section">&sect;4.6&nbsp;Overriding access restrictions</a></div>
+         <div class="subsect depth3" id="s4.6.a">
+            <h4 class="subsect">&sect;4.6.(a)&nbsp;<span class="title">Private methods from super classes</span></h4>
+            <p><em>(Cf. <a href="s3.4.d.html"
+                     title="&sect;3.4.(d)&nbsp;Private methods from super classes"
+                     class="sect">&sect;3.4.(d)</a>)</em>
+               			If a callin binding shall bind to a private base method, that method
+               must be defined in the exact base class to which the current role
+               class is bound using <code>playedBy</code>.
+               <br />
+               If a private base feature must indeed be callin-bound, a role class
+               must be defined that is played by the exact base class defining the
+               private feature. Another role bound to a sub-base-class can then
+               be defined as a sub class of the first role. It will inherit the
+               callin binding and through this it can access the desired feature.
+               
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.6.html" rel="section">&sect;4.6&nbsp;Overriding access restrictions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.html
new file mode 100644
index 0000000..1c0ae67
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.6.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.5.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5&nbsp;Lifting and lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.html" rel="next">&sect;4.7&nbsp;Callin binding with static methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.6">
+            <h2 class="sect">&sect;4.6&nbsp;Overriding access restrictions</h2>
+            <p>Callin bindings may also mention inaccessible methods
+               	(cf. decapsulation <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                  class="sect">&sect;3.4</a>).
+               	Due to the reverse call direction this is relevant only for base calls within 
+               	<code>callin</code> methods. 
+               	Base calls have unrestricted access to protected base methods.
+               	Accessing a base method with private or default visibility is
+               	also allowed, but signaled by a compiler warning.
+               		
+            </p>
+            <div class="note">
+               <h5>Comment:</h5>
+               			A base call to an inaccessible base method is considered harmless, 
+               			since this is the originally intended method execution.
+               		
+            </div>
+            <div class="subsect depth3" id="s4.6.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Private methods from super classes</span></h4>
+               <p><em>(Cf. <a href="s3.4.d.html"
+                        title="&sect;3.4.(d)&nbsp;Private methods from super classes"
+                        class="sect">&sect;3.4.(d)</a>)</em>
+                  			If a callin binding shall bind to a private base method, that method
+                  must be defined in the exact base class to which the current role
+                  class is bound using <code>playedBy</code>.
+                  <br />
+                  If a private base feature must indeed be callin-bound, a role class
+                  must be defined that is played by the exact base class defining the
+                  private feature. Another role bound to a sub-base-class can then
+                  be defined as a sub class of the first role. It will inherit the
+                  callin binding and through this it can access the desired feature.
+                  
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.5.html" rel="prev">&lt;&lt;&nbsp;&sect;4.5&nbsp;Lifting and lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.html" rel="next">&sect;4.7&nbsp;Callin binding with static methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.a.html
new file mode 100644
index 0000000..8950db4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.b.html" rel="next">&sect;4.7.(b)&nbsp;Binding static to static&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="subsect depth3" id="s4.7.a">
+            <h4 class="subsect">&sect;4.7.(a)&nbsp;<span class="title">Static role methods</span></h4>
+            <p>A role class may define static methods (see also <a href="s1.2.1.f.html" title="&sect;1.2.1.(f)&nbsp;Static role methods"
+                  class="sect">&sect;1.2.1.(f)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.b.html" rel="next">&sect;4.7.(b)&nbsp;Binding static to static&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.b.html
new file mode 100644
index 0000000..d62fece
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.7.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(a)&nbsp;Static role methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.c.html" rel="next">&sect;4.7.(c)&nbsp;before/after&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="subsect depth3" id="s4.7.b">
+            <h4 class="subsect">&sect;4.7.(b)&nbsp;<span class="title">Binding static to static</span></h4>
+            <p>A callin binding may bind a static role method to one or more
+               		static base methods. It is, however, an error to bind a static base method to a non-static role method, 
+               		because such binding would require to lift a base object that is not provided.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.7.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(a)&nbsp;Static role methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.c.html" rel="next">&sect;4.7.(c)&nbsp;before/after&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.c.html
new file mode 100644
index 0000000..b1941fc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.7.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(b)&nbsp;Binding static to static</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.d.html" rel="next">&sect;4.7.(d)&nbsp;replace&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="subsect depth3" id="s4.7.c">
+            <h4 class="subsect">&sect;4.7.(c)&nbsp;<span class="title">before/after</span></h4>
+            <p>In addition to the above, <code>before</code> and <code>after</code>
+               		callin bindings may also bind a static role method to non-static base methods.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.7.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(b)&nbsp;Binding static to static</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.d.html" rel="next">&sect;4.7.(d)&nbsp;replace&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.d.html
new file mode 100644
index 0000000..c81834f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.d.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.7.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(c)&nbsp;before/after</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.e.html" rel="next">&sect;4.7.(e)&nbsp;No overriding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="subsect depth3" id="s4.7.d">
+            <h4 class="subsect">&sect;4.7.(d)&nbsp;<span class="title">replace</span></h4>
+            <p>In contrast to <a href="s4.7.c.html" title="&sect;4.7.(c)&nbsp;before/after" class="sect">&sect;4.7.(c)</a> above, a <code>replace</code> callin binding
+               		cannot bind a static role method to a non-static base method.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.7.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(c)&nbsp;before/after</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.7.e.html" rel="next">&sect;4.7.(e)&nbsp;No overriding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.e.html
new file mode 100644
index 0000000..b339c63
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.e.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.7.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(d)&nbsp;replace</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+         <div class="subsect depth3" id="s4.7.e">
+            <h4 class="subsect">&sect;4.7.(e)&nbsp;<span class="title">No overriding</span></h4>
+            <p>Since static methods are not dynamically bound, <i>overriding</i> does not
+               				   apply in the normal semantics. Regarding callin bindings this has the
+               				   following consequences (assuming a role <code>RMid</code> played by
+               				   <code>BMid</code> plus its super-class <code>BSuper</code> and its sub-class
+               				   <code>BSub</code>.
+               			
+            </p>
+            <ol>
+               <li>If a static base method <code>BMid.m</code> is bound by a callin binding
+                  				       this has no effect on any method <code>m</code> in <code>BSub</code>.
+               </li>
+               <li>If a callin binding mentions a method <code>m</code> which is not present 
+                  in <code>BMid</code> but resolves to a static method in <code>BSuper</code> 
+                  the binding only affects invocations as <code>BMid.m()</code> but not
+                  <code>BSuper.m()</code>. If the latter call should be affected, too,
+                  the callin binding must appear in a role class bound to <code>BSuper</code>, 
+                  not <code>BMid</code>.
+               </li>
+               <li>In order to bind two static base methods with equal signatures, one being
+                  				       defined in a sub-class of the other one, two roles have to be defined
+                  				       where one role refines the <code>playedBy</code> clause of the other role
+                  				       (say: <code>public class RSub extends RMid playedBy BSub</code>).
+                  				       Now each role may bind to the static base method accessible in its direct
+                  				       base-class.
+               </li>
+            </ol>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.7.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7.(d)&nbsp;replace</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.7.html" rel="section">&sect;4.7&nbsp;Callin binding with static methods</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.html
new file mode 100644
index 0000000..0a2c52c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.7.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.6.html" rel="prev">&lt;&lt;&nbsp;&sect;4.6&nbsp;Overriding access restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.html" rel="next">&sect;4.8&nbsp;Callin precedence&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.7">
+            <h2 class="sect">&sect;4.7&nbsp;Callin binding with static methods</h2>
+            <p>The normal case of callin bindings refers to non-static methods on both
+               	sides (base and role). Furthermore, in Java inner classes can not define
+               	static methods. Both restrictions are relaxed by the following rules:
+               		
+            </p>
+            <div class="subsect depth3" id="s4.7.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Static role methods</span></h4>
+               <p>A role class may define static methods (see also <a href="s1.2.1.f.html" title="&sect;1.2.1.(f)&nbsp;Static role methods"
+                     class="sect">&sect;1.2.1.(f)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.7.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Binding static to static</span></h4>
+               <p>A callin binding may bind a static role method to one or more
+                  		static base methods. It is, however, an error to bind a static base method to a non-static role method, 
+                  		because such binding would require to lift a base object that is not provided.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.7.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">before/after</span></h4>
+               <p>In addition to the above, <code>before</code> and <code>after</code>
+                  		callin bindings may also bind a static role method to non-static base methods.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.7.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">replace</span></h4>
+               <p>In contrast to <a href="#s4.7.c" title="&sect;4.7.(c)&nbsp;before/after" class="sect">&sect;4.7.(c)</a> above, a <code>replace</code> callin binding
+                  		cannot bind a static role method to a non-static base method.
+                  			
+               </p>
+            </div>
+            <p>The following table summarizes the combinations defined above:
+               		
+            </p>
+            <table border="2" class="sep" cellpadding="5" width="80%">
+               <tr class="z1">
+                  <td colspan="2" rowspan="2" align="right"><strong>&lt;-</strong>&nbsp;&nbsp;
+                  </td>
+                  <td colspan="2" align="center" rowspan="1"><strong>base method</strong></td>
+               </tr>
+               <tr class="z1">
+                  <td align="center" rowspan="1" colspan="1">static</td>
+                  <td align="center" rowspan="1" colspan="1">non-static</td>
+               </tr>
+               <tr class="z2">
+                  <td rowspan="2" align="center" class="z1" colspan="1"><strong>role<br />method</strong></td>
+                  <td align="center" class="z1" rowspan="1" colspan="1">static</td>
+                  <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+                  <td rowspan="1" colspan="1"><code>before/after</code>: <span class="green">OK</span><br /><code>replace</code>: <span class="error">illegal</span></td>
+               </tr>
+               <tr class="z2">
+                  <td align="center" class="z1" rowspan="1" colspan="1">non-static</td>
+                  <td rowspan="1" colspan="1"><span class="error">illegal</span></td>
+                  <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+               </tr>
+            </table>
+            <div class="subsect depth3" id="s4.7.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">No overriding</span></h4>
+               <p>Since static methods are not dynamically bound, <i>overriding</i> does not
+                  				   apply in the normal semantics. Regarding callin bindings this has the
+                  				   following consequences (assuming a role <code>RMid</code> played by
+                  				   <code>BMid</code> plus its super-class <code>BSuper</code> and its sub-class
+                  				   <code>BSub</code>.
+                  			
+               </p>
+               <ol>
+                  <li>If a static base method <code>BMid.m</code> is bound by a callin binding
+                     				       this has no effect on any method <code>m</code> in <code>BSub</code>.
+                  </li>
+                  <li>If a callin binding mentions a method <code>m</code> which is not present 
+                     in <code>BMid</code> but resolves to a static method in <code>BSuper</code> 
+                     the binding only affects invocations as <code>BMid.m()</code> but not
+                     <code>BSuper.m()</code>. If the latter call should be affected, too,
+                     the callin binding must appear in a role class bound to <code>BSuper</code>, 
+                     not <code>BMid</code>.
+                  </li>
+                  <li>In order to bind two static base methods with equal signatures, one being
+                     				       defined in a sub-class of the other one, two roles have to be defined
+                     				       where one role refines the <code>playedBy</code> clause of the other role
+                     				       (say: <code>public class RSub extends RMid playedBy BSub</code>).
+                     				       Now each role may bind to the static base method accessible in its direct
+                     				       base-class.
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.6.html" rel="prev">&lt;&lt;&nbsp;&sect;4.6&nbsp;Overriding access restrictions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.html" rel="next">&sect;4.8&nbsp;Callin precedence&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.a.html
new file mode 100644
index 0000000..32d8d82
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.a.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.b.html" rel="next">&sect;4.8.(b)&nbsp;Qualified and unqualified names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="subsect depth3" id="s4.8.a">
+            <h4 class="subsect">&sect;4.8.(a)&nbsp;<span class="title">Precedence declaration</span></h4>
+            <p>A precedence declaration consists of the keyword <code>precedence</code> followed by 
+               		a list of names referring to callin bindings (see <a href="s4.1.e.html" title="&sect;4.1.(e)&nbsp;Named callin bindin"
+                  class="sect">&sect;4.1.(e)</a> for named callin bindings).
+               		<br />
+               	A precedence declaration is only legal within a role or team class.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.b.html" rel="next">&sect;4.8.(b)&nbsp;Qualified and unqualified names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.b.html
new file mode 100644
index 0000000..896a680
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.b.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.8.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(a)&nbsp;Precedence declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.c.html" rel="next">&sect;4.8.(c)&nbsp;Class based precedence&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="subsect depth3" id="s4.8.b">
+            <h4 class="subsect">&sect;4.8.(b)&nbsp;<span class="title">Qualified and unqualified names</span></h4>
+            <p>Within a role class a callin binding may be referenced by its unqualified name. 
+               		A precedence declaration in a team class must qualify the callin name with the name of the declaring 
+               		role class. A team with nested teams may concat role class names. 
+               		Elements of a qualified callin name are separated by ".".
+               		<br />
+               The callin binding must be found in the role specified by the qualifying prefix or 
+               in the enclosing role for unqualified names, or any super class of this role 
+               (including implicit super classes <a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.8.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(a)&nbsp;Precedence declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.c.html" rel="next">&sect;4.8.(c)&nbsp;Class based precedence&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.c.html
new file mode 100644
index 0000000..ae33dae
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.8.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(b)&nbsp;Qualified and unqualified names</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.d.html" rel="next">&sect;4.8.(d)&nbsp;Multiple precedence statements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="subsect depth3" id="s4.8.c">
+            <h4 class="subsect">&sect;4.8.(c)&nbsp;<span class="title">Class based precedence</span></h4>
+            <p>At the team level a precedence declaration may contain role class names without 
+               		explicitly mentioning callin bindings in order to refer to all callin bindings of the role.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.8.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(b)&nbsp;Qualified and unqualified names</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.d.html" rel="next">&sect;4.8.(d)&nbsp;Multiple precedence statements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.d.html
new file mode 100644
index 0000000..1dfa38b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.d.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.8.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(c)&nbsp;Class based precedence</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.e.html" rel="next">&sect;4.8.(e)&nbsp;Binding overriding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="subsect depth3" id="s4.8.d">
+            <h4 class="subsect">&sect;4.8.(d)&nbsp;<span class="title">Multiple precedence statements</span></h4>
+            <p>All precedence statements are collected at the outer-most team. At that level all 
+               		precedence declarations involving the same base method are merged using the 
+               		C3 algorithm <a href="s4.html#fn3-c3-algorithm" class="int">[3]</a>. It is an error to declare 
+               		incompatible precedence lists that cannot be merged by the C3 algorithm.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.8.c.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(c)&nbsp;Class based precedence</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.8.e.html" rel="next">&sect;4.8.(e)&nbsp;Binding overriding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.e.html
new file mode 100644
index 0000000..5596b0e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.e.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.8.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(d)&nbsp;Multiple precedence statements</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+         <div class="subsect depth3" id="s4.8.e">
+            <h4 class="subsect">&sect;4.8.(e)&nbsp;<span class="title">Binding overriding</span></h4>
+            <p>Precedence declarations may conflict with overriding of callin bindings 
+               		(see <a href="s4.1.e.html" title="&sect;4.1.(e)&nbsp;Named callin bindin"
+                  class="sect">&sect;4.1.(e)</a>): For each pair of callin bindings of which one 
+               		callin binding overrides the other one, precedence declarations are not applicable, 
+               		since dynamic binding will already select exactly one callin binding.
+               		<br />
+               		It is an error to <i>explicitly mention</i> such a pair of overriding callin bindings in a precedence declaration.
+               		<br />
+               		When a class-based precedence declaration <i>implicitly refers to</i> a callin binding that is overridden by, 
+               		or overrides any other callin binding within the same precedence declaration, this does not affect the fact, 
+               		that the most specific callin binding overrides less specific ones.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.8.d.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8.(d)&nbsp;Multiple precedence statements</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.8.html" rel="section">&sect;4.8&nbsp;Callin precedence</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.html
new file mode 100644
index 0000000..25ceeb5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.8.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.7.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7&nbsp;Callin binding with static methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.html" rel="next">&sect;4.9&nbsp;Callin inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.8">
+            <h2 class="sect">&sect;4.8&nbsp;Callin precedence</h2>
+            <div class="syntaxlink"><a href="sA.8.html" title="&sect;A.8&nbsp;Precedence declaration"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.8</a></div>
+            <p>If multiple callins from the same team refer to the same base method and also have the same 
+               	callin modifier (<code>before</code>, <code>after</code> or <code>replace</code>), the order in which 
+               	the callin bindings shall be triggered has to be declared using a precedence declaration.
+               		
+            </p>
+            <div class="subsect depth3" id="s4.8.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Precedence declaration</span></h4>
+               <p>A precedence declaration consists of the keyword <code>precedence</code> followed by 
+                  		a list of names referring to callin bindings (see <a href="s4.1.e.html" title="&sect;4.1.(e)&nbsp;Named callin bindin"
+                     class="sect">&sect;4.1.(e)</a> for named callin bindings).
+                  		<br />
+                  	A precedence declaration is only legal within a role or team class.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.8.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Qualified and unqualified names</span></h4>
+               <p>Within a role class a callin binding may be referenced by its unqualified name. 
+                  		A precedence declaration in a team class must qualify the callin name with the name of the declaring 
+                  		role class. A team with nested teams may concat role class names. 
+                  		Elements of a qualified callin name are separated by ".".
+                  		<br />
+                  The callin binding must be found in the role specified by the qualifying prefix or 
+                  in the enclosing role for unqualified names, or any super class of this role 
+                  (including implicit super classes <a href="s1.3.1.html"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.8.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Class based precedence</span></h4>
+               <p>At the team level a precedence declaration may contain role class names without 
+                  		explicitly mentioning callin bindings in order to refer to all callin bindings of the role.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.8.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Multiple precedence statements</span></h4>
+               <p>All precedence statements are collected at the outer-most team. At that level all 
+                  		precedence declarations involving the same base method are merged using the 
+                  		C3 algorithm <a href="s4.html#fn3-c3-algorithm" class="int">[3]</a>. It is an error to declare 
+                  		incompatible precedence lists that cannot be merged by the C3 algorithm.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s4.8.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Binding overriding</span></h4>
+               <p>Precedence declarations may conflict with overriding of callin bindings 
+                  		(see <a href="s4.1.e.html" title="&sect;4.1.(e)&nbsp;Named callin bindin"
+                     class="sect">&sect;4.1.(e)</a>): For each pair of callin bindings of which one 
+                  		callin binding overrides the other one, precedence declarations are not applicable, 
+                  		since dynamic binding will already select exactly one callin binding.
+                  		<br />
+                  		It is an error to <i>explicitly mention</i> such a pair of overriding callin bindings in a precedence declaration.
+                  		<br />
+                  		When a class-based precedence declaration <i>implicitly refers to</i> a callin binding that is overridden by, 
+                  		or overrides any other callin binding within the same precedence declaration, this does not affect the fact, 
+                  		that the most specific callin binding overrides less specific ones.
+                  			
+               </p>
+            </div>
+            <h5 class="listing">Callin binding example</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> LogLog<b>in</b> <b>playedBy</b> Data<b>base</b> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>callin</b> <b>void</b> log (String what) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    System.out.println("enter " + what);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    base.log(what.toLowerCase());</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    System.out.println("leave " + what);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  <b>void</b> log(String what) <b>&lt;-</b> <b>replace</b> <b>void</b> login(String uid, String passwd) </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    <b>with</b> { what <b>&lt;-</b> uid }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>(<b>new</b> Database()).login("Admin", "Passwd");</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <p>Provided the callin bindings are active (cf. <a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>) then:
+                  			
+               </p>
+               <ul>
+                  <li>the call in line 10 is intercepted by method <code>log</code>
+                     						of role <code>LogLogin</code>.
+                  </li>
+                  <li>the call target of <code>log</code> is a role of type
+                     						<code>LogLogin</code> which is created by lifting the
+                     						original call target (of type <code>Database</code>) to
+                     						<code>LogLogin</code>.
+                  </li>
+                  <li>only parameter <code>uid</code> is passed to <code>log</code>
+                     						(bound to formal parameter <code>what</code>).
+                  </li>
+                  <li>within method <code>log</code> the base call (line 4) invokes 
+                     						the original method passing a modified uid (converted to lower case, cf. line 4) 
+                     						and the unmodified password, which is hidden from the callin method due to the
+                     						parameter mapping in line 8.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.7.html" rel="prev">&lt;&lt;&nbsp;&sect;4.7&nbsp;Callin binding with static methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.html" rel="next">&sect;4.9&nbsp;Callin inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.a.html
new file mode 100644
index 0000000..d6920bb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.a.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.1.b.html" rel="next">&sect;4.9.1.(b)&nbsp;No effect on super-classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.1.html" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+         <div class="subsect depth4" id="s4.9.1.a">
+            <h4 class="subsect">&sect;4.9.1.(a)&nbsp;<span class="title">Effect on sub-classes</span></h4>
+            <p>The callin binding also effects instances of any type <code>BSub</code> 
+               	that is a sub-type of <code>B</code>.
+               	If <code>BSub</code> overrides the bound base method <code>bm</code>,
+               	the overridden version is generally affected, too.
+               	However, if <code>bm</code> covariantly redefines the return type from its
+               	super version, the callin binding has to explicitly specify if the covariant
+               	sub-class version should be affected, too (see <a href="s4.9.3.b.html"
+                  title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                  class="sect">&sect;4.9.3.(b)</a>).
+               
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.1.b.html" rel="next">&sect;4.9.1.(b)&nbsp;No effect on super-classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.1.html" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.b.html
new file mode 100644
index 0000000..205f9ab
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.b.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.1.(a)&nbsp;Effect on sub-classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.1.html" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+         <div class="subsect depth4" id="s4.9.1.b">
+            <h4 class="subsect">&sect;4.9.1.(b)&nbsp;<span class="title">No effect on super-classes</span></h4>
+            <p>The binding never affects an instance of any super-type of <code>B</code> 
+               	                even if the method <code>bm</code> is inherited from a super-class 
+               	                or overrides an inherited method. 
+               	                This ensures that dispatching to a role method due to a callin binding 
+               	                always provides a base instance that has at least the type declared in the role's 
+               	                <code>playedBy</code> clause.
+               
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.1.(a)&nbsp;Effect on sub-classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.1.html" rel="section">&sect;4.9.1&nbsp;Base side inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.html
new file mode 100644
index 0000000..8cdc933
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.1.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.2.html" rel="next">&sect;4.9.2&nbsp;Role side inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+         <div class="sect depth3" id="s4.9.1">
+            <h3 class="sect">&sect;4.9.1&nbsp;Base side inheritance</h3>
+            <p>
+               				Generally, a callin binding affects all sub-types of its bound base.
+               				Specifically, if a role type <code>R</code> bound to a base type <code>B</code> 
+               				defines a callin binding <code>rm &lt;- <i>callin_modifier</i> bm</code>,
+               				the following rules apply:
+               			
+            </p>
+            <div class="subsect depth4" id="s4.9.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Effect on sub-classes</span></h4>
+               <p>The callin binding also effects instances of any type <code>BSub</code> 
+                  	that is a sub-type of <code>B</code>.
+                  	If <code>BSub</code> overrides the bound base method <code>bm</code>,
+                  	the overridden version is generally affected, too.
+                  	However, if <code>bm</code> covariantly redefines the return type from its
+                  	super version, the callin binding has to explicitly specify if the covariant
+                  	sub-class version should be affected, too (see <a href="s4.9.3.b.html"
+                     title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                     class="sect">&sect;4.9.3.(b)</a>).
+                  
+               </p>
+            </div>
+            <div class="subsect depth4" id="s4.9.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">No effect on super-classes</span></h4>
+               <p>The binding never affects an instance of any super-type of <code>B</code> 
+                  	                even if the method <code>bm</code> is inherited from a super-class 
+                  	                or overrides an inherited method. 
+                  	                This ensures that dispatching to a role method due to a callin binding 
+                  	                always provides a base instance that has at least the type declared in the role's 
+                  	                <code>playedBy</code> clause.
+                  
+               </p>
+            </div>
+            <p>
+               For corresponding definitions regarding static methods see <a href="s4.7.e.html" title="&sect;4.7.(e)&nbsp;No overriding" class="sect">&sect;4.7.(e)</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.2.html" rel="next">&sect;4.9.2&nbsp;Role side inheritance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.2.html
new file mode 100644
index 0000000..4ab5faa
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.1.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.1&nbsp;Base side inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.html" rel="next">&sect;4.9.3&nbsp;Covariant return types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+         <div class="sect depth3" id="s4.9.2">
+            <h3 class="sect">&sect;4.9.2&nbsp;Role side inheritance</h3>
+            <p>
+               	Any sub-type of <code>R</code> inherits the given callin binding 
+               	(for overriding of bindings see <a href="s4.8.e.html" title="&sect;4.8.(e)&nbsp;Binding overriding"
+                  class="sect">&sect;4.8.(e)</a>).
+               If the sub-role overrides the role method <code>rm</code> this will be considered 
+               for dynamic dispatch when the callin binding is triggered.
+               
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.1.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.1&nbsp;Base side inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.html" rel="next">&sect;4.9.3&nbsp;Covariant return types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.a.html
new file mode 100644
index 0000000..2d3df6d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.a.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.b.html" rel="next">&sect;4.9.3.(b)&nbsp;Capturing covariant base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+         <div class="subsect depth4" id="s4.9.3.a">
+            <h4 class="subsect">&sect;4.9.3.(a)&nbsp;<span class="title">No covariant callin methods</span></h4>
+            <p>
+               					A method declared with the <code>callin</code> modifier that overrides an inherited method
+               					must not redefine the return type with respect to the inherited method.
+               					This reflects that fact that an inherited callin binding should remain type-safe
+               					while binding to the new, overriding role method.
+               					Binding a covariant role method to the original base method would break constraint (1) above.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.b.html" rel="next">&sect;4.9.3.(b)&nbsp;Capturing covariant base methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.b.html
new file mode 100644
index 0000000..bf780b4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.b.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.3.(a)&nbsp;No covariant callin methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.c.html" rel="next">&sect;4.9.3.(c)&nbsp;Covariant replace binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+         <div class="subsect depth4" id="s4.9.3.b">
+            <h4 class="subsect">&sect;4.9.3.(b)&nbsp;<span class="title">Capturing covariant base methods</span></h4>
+            <p>
+               					If a callin binding should indeed affect not only the specified base method
+               					but also overriding versions which covariantly redefine the return type,
+               					the binding must specify the base method's return type with a "+" appended
+               					to the type name as in
+            </p>
+            <div class="listing plain"><pre><b>void</b> rm() <b>&lt;-</b> <b>before</b> <em>RT+</em> bm();</pre></div>
+            <p>Without the "+" sign the binding would only capture base methods whose
+               					return type is exactly <code>RT</code>;
+               					by appending "+" also sub-types of <code>RT</code>
+               					are accepted as the declared return type.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.3.(a)&nbsp;No covariant callin methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.9.3.c.html" rel="next">&sect;4.9.3.(c)&nbsp;Covariant replace binding&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.c.html
new file mode 100644
index 0000000..dc7aaea
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.c.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.3.(b)&nbsp;Capturing covariant base methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+         <div class="subsect depth4" id="s4.9.3.c">
+            <h4 class="subsect">&sect;4.9.3.(c)&nbsp;<span class="title">Covariant replace binding</span></h4>
+            <p>
+               					When using the syntax of <a href="s4.9.3.b.html"
+                  title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                  class="sect">&sect;4.9.3.(b)</a> to capture base methods with
+               					covariant return types in a callin binding with the <code>replace</code> modifier,
+               					the role method must be specified using a free type parameter as follows:
+            </p>
+            <div class="listing plain"><pre><em>&lt;E <b>extends</b> RT&gt; E</em> rm() <b>&lt;-</b> <b>replace</b> RT+ bm();</pre></div>
+            <p>The role method <code>rm</code> referenced by this callin binding must use the same style 
+               	of return type using a type parameter.
+               	                The only possible non-null value of type <code>E</code> 
+               	                to be returned from such method is the value provided by a base-call or a tsuper-call.<br />
+               	                This rule enforces the constraint (2) above.<br />
+               	                Note that this rule is further generalized in <a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                  class="sect">&sect;4.10</a>.
+               				
+            </p>
+            <h5 class="listing">Binding a parametric role method</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>    SuperBase foo() { <b>return</b> this; }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>    <b>void</b> check() { System.out.print("OK"); }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    @Override</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    SubBase foo() { <b>return</b> this; }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    <b>void</b> print() { System.out.print("SubBase"); }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    String test() { </pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>        this.foo().print(); <span class="comment">// print() requires a SubBase</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> SuperBase {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>        <b>callin</b> &lt;E <b>extends</b> SuperBase&gt; E ci() {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>			E result= base.ci();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>			result.check(); <span class="comment">// check() is available on E via type bound SuperBase</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre>			<b>return</b> result;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>        }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">21</td>
+                     <td><pre>        &lt;E <b>extends</b> SuperBase&gt; E  ci() <b>&lt;-</b> <b>replace</b> SuperBase+ foo();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">22</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">23</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Explanation:</h5>
+               <ul>
+                  <li>
+                     							Method <code>SubBase.foo</code> in line 7 redefines the return type
+                     							from <code>SuperBase</code>	(inherited version) to <code>SubBase</code>,
+                     							thus clients like the method call in line 10 must be safe to assume
+                     							that the return value will always conform to <code>SubBase</code>.
+                     						
+                  </li>
+                  <li>
+                     							The callin binding in line 21 explicitly captures both versions of <code>foo</code>
+                     							by specifying <code>SuperBase+</code> as the expected return type.
+                     							Thus, if an instance of <code>MyTeam</code> is active at the method call
+                     							in line 10, this call to <code>foo</code> will indeed be intercepted
+                     							even though this call is statically known to return a value of type <code>SubBase</code>.
+                     						
+                  </li>
+                  <li>
+                     							The callin method in lines 16-20 has a return type which is not known statically,
+                     							but the return type is represented by the type variable <code>E</code>.
+                     							Since the base call is known to have the exact same signature as its enclosing
+                     							method, the value provided by the base call is of the same type <code>E</code>
+                     							and thus can be safely returned from <code>ci</code>.
+                     							<em>Note,</em> that no other non-null value is known to have the type <code>E</code>.
+                     						
+                  </li>
+                  <li>
+                     							By specifying <code>SuperBase</code> as an upper bound for the type <code>E</code>
+                     							the callin method <code>ci</code> may invoke 
+                     							any method declared in type <code>SuperBase</code>
+                     							on any value of type <code>E</code>. For an example see the call to <code>check</code>
+                     							in line 18.
+                     						
+                  </li>
+               </ul>
+               <p><em>
+                     							As an aside note that the above example uses type <code>SuperBase</code>
+                     							in an undisciplined way: within role <code>R</code> this type is bound
+                     							using <code>playedBy</code><strong> and</strong> the same type is also
+                     							used directly (as the upper bound for <code>E</code>).
+                     							This is considered bad style and it is prohibited if <code>SuperBase</code>
+                     							is imported using an base import (<a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>).
+                     							Here this rule is neglegted just for the purpose of keeping the example small.
+                     						</em></p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.3.(b)&nbsp;Capturing covariant base methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.3.html" rel="section">&sect;4.9.3&nbsp;Covariant return types</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.html
new file mode 100644
index 0000000..530841f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.3.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.9.2.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.2&nbsp;Role side inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+         <div class="sect depth3" id="s4.9.3">
+            <h3 class="sect">&sect;4.9.3&nbsp;Covariant return types</h3>
+            <p>
+               				Since version 5, Java supports the covariant redefinition of a method's return type 
+               				(see <a href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.5"
+                  class="ext">JLS 8.4.5</a>).
+               				This is <em>not</em> supported for <code>callin</code> methods (<a href="#s4.9.3.a" title="&sect;4.9.3.(a)&nbsp;No covariant callin methods"
+                  class="sect">&sect;4.9.3.(a)</a>). 
+               				If base methods with covariant redefinition of the return type are to be bound by a callin binding
+               				the subsequent rules ensure that type safety is preserved.
+               				Two <em>constraints</em> have to be considered: 
+               			
+            </p>
+            <ol>
+               <li>
+                  					When a callin method issues a base-call or calls its tsuper version, 
+                  					this call must produce a value whose type is compatible to the 
+                  					enclosing method's declared return type.
+                  				
+               </li>
+               <li>
+                  					If a replace-bound role method returns a value that is not the result of a base-call,
+                  					it must be ensured that the return value actually satisfies the declared signature of 
+                  					the bound base method.
+                  				
+               </li>
+            </ol>
+            <div class="subsect depth4" id="s4.9.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">No covariant callin methods</span></h4>
+               <p>
+                  					A method declared with the <code>callin</code> modifier that overrides an inherited method
+                  					must not redefine the return type with respect to the inherited method.
+                  					This reflects that fact that an inherited callin binding should remain type-safe
+                  					while binding to the new, overriding role method.
+                  					Binding a covariant role method to the original base method would break constraint (1) above.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s4.9.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Capturing covariant base methods</span></h4>
+               <p>
+                  					If a callin binding should indeed affect not only the specified base method
+                  					but also overriding versions which covariantly redefine the return type,
+                  					the binding must specify the base method's return type with a "+" appended
+                  					to the type name as in
+               </p>
+               <div class="listing plain"><pre><b>void</b> rm() <b>&lt;-</b> <b>before</b> <em>RT+</em> bm();</pre></div>
+               <p>Without the "+" sign the binding would only capture base methods whose
+                  					return type is exactly <code>RT</code>;
+                  					by appending "+" also sub-types of <code>RT</code>
+                  					are accepted as the declared return type.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s4.9.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Covariant replace binding</span></h4>
+               <p>
+                  					When using the syntax of <a href="#s4.9.3.b"
+                     title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                     class="sect">&sect;4.9.3.(b)</a> to capture base methods with
+                  					covariant return types in a callin binding with the <code>replace</code> modifier,
+                  					the role method must be specified using a free type parameter as follows:
+               </p>
+               <div class="listing plain"><pre><em>&lt;E <b>extends</b> RT&gt; E</em> rm() <b>&lt;-</b> <b>replace</b> RT+ bm();</pre></div>
+               <p>The role method <code>rm</code> referenced by this callin binding must use the same style 
+                  	of return type using a type parameter.
+                  	                The only possible non-null value of type <code>E</code> 
+                  	                to be returned from such method is the value provided by a base-call or a tsuper-call.<br />
+                  	                This rule enforces the constraint (2) above.<br />
+                  	                Note that this rule is further generalized in <a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                     class="sect">&sect;4.10</a>.
+                  				
+               </p>
+               <h5 class="listing">Binding a parametric role method</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>    SuperBase foo() { <b>return</b> this; }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>void</b> check() { System.out.print("OK"); }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    @Override</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    SubBase foo() { <b>return</b> this; }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>void</b> print() { System.out.print("SubBase"); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    String test() { </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>        this.foo().print(); <span class="comment">// print() requires a SubBase</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> SuperBase {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>        <b>callin</b> &lt;E <b>extends</b> SuperBase&gt; E ci() {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>			E result= base.ci();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>			result.check(); <span class="comment">// check() is available on E via type bound SuperBase</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>			<b>return</b> result;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>        &lt;E <b>extends</b> SuperBase&gt; E  ci() <b>&lt;-</b> <b>replace</b> SuperBase+ foo();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">23</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Explanation:</h5>
+                  <ul>
+                     <li>
+                        							Method <code>SubBase.foo</code> in line 7 redefines the return type
+                        							from <code>SuperBase</code>	(inherited version) to <code>SubBase</code>,
+                        							thus clients like the method call in line 10 must be safe to assume
+                        							that the return value will always conform to <code>SubBase</code>.
+                        						
+                     </li>
+                     <li>
+                        							The callin binding in line 21 explicitly captures both versions of <code>foo</code>
+                        							by specifying <code>SuperBase+</code> as the expected return type.
+                        							Thus, if an instance of <code>MyTeam</code> is active at the method call
+                        							in line 10, this call to <code>foo</code> will indeed be intercepted
+                        							even though this call is statically known to return a value of type <code>SubBase</code>.
+                        						
+                     </li>
+                     <li>
+                        							The callin method in lines 16-20 has a return type which is not known statically,
+                        							but the return type is represented by the type variable <code>E</code>.
+                        							Since the base call is known to have the exact same signature as its enclosing
+                        							method, the value provided by the base call is of the same type <code>E</code>
+                        							and thus can be safely returned from <code>ci</code>.
+                        							<em>Note,</em> that no other non-null value is known to have the type <code>E</code>.
+                        						
+                     </li>
+                     <li>
+                        							By specifying <code>SuperBase</code> as an upper bound for the type <code>E</code>
+                        							the callin method <code>ci</code> may invoke 
+                        							any method declared in type <code>SuperBase</code>
+                        							on any value of type <code>E</code>. For an example see the call to <code>check</code>
+                        							in line 18.
+                        						
+                     </li>
+                  </ul>
+                  <p><em>
+                        							As an aside note that the above example uses type <code>SuperBase</code>
+                        							in an undisciplined way: within role <code>R</code> this type is bound
+                        							using <code>playedBy</code><strong> and</strong> the same type is also
+                        							used directly (as the upper bound for <code>E</code>).
+                        							This is considered bad style and it is prohibited if <code>SuperBase</code>
+                        							is imported using an base import (<a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>).
+                        							Here this rule is neglegted just for the purpose of keeping the example small.
+                        						</em></p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.9.2.html" rel="prev">&lt;&lt;&nbsp;&sect;4.9.2&nbsp;Role side inheritance</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s4.9.html" rel="section">&sect;4.9&nbsp;Callin inheritance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.html
new file mode 100644
index 0000000..66e7c07
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.9.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.8.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8&nbsp;Callin precedence</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.html" rel="next">&sect;4.10&nbsp;Generic callin bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+         <div class="sect depth2" id="s4.9">
+            <h2 class="sect">&sect;4.9&nbsp;Callin inheritance</h2>
+            <p>
+               			This section defines how callin bindings and callin methods relate to inheritance.
+               		
+            </p>
+            <div class="sect depth3" id="s4.9.1">
+               <h3 class="sect">&sect;4.9.1&nbsp;Base side inheritance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4.9</a></span></h3>
+               <p>
+                  				Generally, a callin binding affects all sub-types of its bound base.
+                  				Specifically, if a role type <code>R</code> bound to a base type <code>B</code> 
+                  				defines a callin binding <code>rm &lt;- <i>callin_modifier</i> bm</code>,
+                  				the following rules apply:
+                  			
+               </p>
+               <div class="subsect depth4" id="s4.9.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Effect on sub-classes</span></h4>
+                  <p>The callin binding also effects instances of any type <code>BSub</code> 
+                     	that is a sub-type of <code>B</code>.
+                     	If <code>BSub</code> overrides the bound base method <code>bm</code>,
+                     	the overridden version is generally affected, too.
+                     	However, if <code>bm</code> covariantly redefines the return type from its
+                     	super version, the callin binding has to explicitly specify if the covariant
+                     	sub-class version should be affected, too (see <a href="#s4.9.3.b"
+                        title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                        class="sect">&sect;4.9.3.(b)</a>).
+                     
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s4.9.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">No effect on super-classes</span></h4>
+                  <p>The binding never affects an instance of any super-type of <code>B</code> 
+                     	                even if the method <code>bm</code> is inherited from a super-class 
+                     	                or overrides an inherited method. 
+                     	                This ensures that dispatching to a role method due to a callin binding 
+                     	                always provides a base instance that has at least the type declared in the role's 
+                     	                <code>playedBy</code> clause.
+                     
+                  </p>
+               </div>
+               <p>
+                  For corresponding definitions regarding static methods see <a href="s4.7.e.html" title="&sect;4.7.(e)&nbsp;No overriding" class="sect">&sect;4.7.(e)</a>.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s4.9.2">
+               <h3 class="sect">&sect;4.9.2&nbsp;Role side inheritance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4.9</a></span></h3>
+               <p>
+                  	Any sub-type of <code>R</code> inherits the given callin binding 
+                  	(for overriding of bindings see <a href="s4.8.e.html" title="&sect;4.8.(e)&nbsp;Binding overriding"
+                     class="sect">&sect;4.8.(e)</a>).
+                  If the sub-role overrides the role method <code>rm</code> this will be considered 
+                  for dynamic dispatch when the callin binding is triggered.
+                  
+               </p>
+            </div>
+            <div class="sect depth3" id="s4.9.3">
+               <h3 class="sect">&sect;4.9.3&nbsp;Covariant return types<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4.9</a></span></h3>
+               <p>
+                  				Since version 5, Java supports the covariant redefinition of a method's return type 
+                  				(see <a href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.5"
+                     class="ext">JLS 8.4.5</a>).
+                  				This is <em>not</em> supported for <code>callin</code> methods (<a href="#s4.9.3.a" title="&sect;4.9.3.(a)&nbsp;No covariant callin methods"
+                     class="sect">&sect;4.9.3.(a)</a>). 
+                  				If base methods with covariant redefinition of the return type are to be bound by a callin binding
+                  				the subsequent rules ensure that type safety is preserved.
+                  				Two <em>constraints</em> have to be considered: 
+                  			
+               </p>
+               <ol>
+                  <li>
+                     					When a callin method issues a base-call or calls its tsuper version, 
+                     					this call must produce a value whose type is compatible to the 
+                     					enclosing method's declared return type.
+                     				
+                  </li>
+                  <li>
+                     					If a replace-bound role method returns a value that is not the result of a base-call,
+                     					it must be ensured that the return value actually satisfies the declared signature of 
+                     					the bound base method.
+                     				
+                  </li>
+               </ol>
+               <div class="subsect depth4" id="s4.9.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">No covariant callin methods</span></h4>
+                  <p>
+                     					A method declared with the <code>callin</code> modifier that overrides an inherited method
+                     					must not redefine the return type with respect to the inherited method.
+                     					This reflects that fact that an inherited callin binding should remain type-safe
+                     					while binding to the new, overriding role method.
+                     					Binding a covariant role method to the original base method would break constraint (1) above.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s4.9.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Capturing covariant base methods</span></h4>
+                  <p>
+                     					If a callin binding should indeed affect not only the specified base method
+                     					but also overriding versions which covariantly redefine the return type,
+                     					the binding must specify the base method's return type with a "+" appended
+                     					to the type name as in
+                  </p>
+                  <div class="listing plain"><pre><b>void</b> rm() <b>&lt;-</b> <b>before</b> <em>RT+</em> bm();</pre></div>
+                  <p>Without the "+" sign the binding would only capture base methods whose
+                     					return type is exactly <code>RT</code>;
+                     					by appending "+" also sub-types of <code>RT</code>
+                     					are accepted as the declared return type.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s4.9.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Covariant replace binding</span></h4>
+                  <p>
+                     					When using the syntax of <a href="#s4.9.3.b"
+                        title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                        class="sect">&sect;4.9.3.(b)</a> to capture base methods with
+                     					covariant return types in a callin binding with the <code>replace</code> modifier,
+                     					the role method must be specified using a free type parameter as follows:
+                  </p>
+                  <div class="listing plain"><pre><em>&lt;E <b>extends</b> RT&gt; E</em> rm() <b>&lt;-</b> <b>replace</b> RT+ bm();</pre></div>
+                  <p>The role method <code>rm</code> referenced by this callin binding must use the same style 
+                     	of return type using a type parameter.
+                     	                The only possible non-null value of type <code>E</code> 
+                     	                to be returned from such method is the value provided by a base-call or a tsuper-call.<br />
+                     	                This rule enforces the constraint (2) above.<br />
+                     	                Note that this rule is further generalized in <a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                        class="sect">&sect;4.10</a>.
+                     				
+                  </p>
+                  <h5 class="listing">Binding a parametric role method</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>    SuperBase foo() { <b>return</b> this; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>void</b> check() { System.out.print("OK"); }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    @Override</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>    SubBase foo() { <b>return</b> this; }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    <b>void</b> print() { System.out.print("SubBase"); }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    String test() { </pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>        this.foo().print(); <span class="comment">// print() requires a SubBase</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">13</td>
+                           <td><pre></pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">14</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">15</td>
+                           <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> SuperBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">16</td>
+                           <td><pre>        <b>callin</b> &lt;E <b>extends</b> SuperBase&gt; E ci() {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">17</td>
+                           <td><pre>			E result= base.ci();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">18</td>
+                           <td><pre>			result.check(); <span class="comment">// check() is available on E via type bound SuperBase</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">19</td>
+                           <td><pre>			<b>return</b> result;</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">20</td>
+                           <td><pre>        }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">21</td>
+                           <td><pre>        &lt;E <b>extends</b> SuperBase&gt; E  ci() <b>&lt;-</b> <b>replace</b> SuperBase+ foo();</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">22</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">23</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Explanation:</h5>
+                     <ul>
+                        <li>
+                           							Method <code>SubBase.foo</code> in line 7 redefines the return type
+                           							from <code>SuperBase</code>	(inherited version) to <code>SubBase</code>,
+                           							thus clients like the method call in line 10 must be safe to assume
+                           							that the return value will always conform to <code>SubBase</code>.
+                           						
+                        </li>
+                        <li>
+                           							The callin binding in line 21 explicitly captures both versions of <code>foo</code>
+                           							by specifying <code>SuperBase+</code> as the expected return type.
+                           							Thus, if an instance of <code>MyTeam</code> is active at the method call
+                           							in line 10, this call to <code>foo</code> will indeed be intercepted
+                           							even though this call is statically known to return a value of type <code>SubBase</code>.
+                           						
+                        </li>
+                        <li>
+                           							The callin method in lines 16-20 has a return type which is not known statically,
+                           							but the return type is represented by the type variable <code>E</code>.
+                           							Since the base call is known to have the exact same signature as its enclosing
+                           							method, the value provided by the base call is of the same type <code>E</code>
+                           							and thus can be safely returned from <code>ci</code>.
+                           							<em>Note,</em> that no other non-null value is known to have the type <code>E</code>.
+                           						
+                        </li>
+                        <li>
+                           							By specifying <code>SuperBase</code> as an upper bound for the type <code>E</code>
+                           							the callin method <code>ci</code> may invoke 
+                           							any method declared in type <code>SuperBase</code>
+                           							on any value of type <code>E</code>. For an example see the call to <code>check</code>
+                           							in line 18.
+                           						
+                        </li>
+                     </ul>
+                     <p><em>
+                           							As an aside note that the above example uses type <code>SuperBase</code>
+                           							in an undisciplined way: within role <code>R</code> this type is bound
+                           							using <code>playedBy</code><strong> and</strong> the same type is also
+                           							used directly (as the upper bound for <code>E</code>).
+                           							This is considered bad style and it is prohibited if <code>SuperBase</code>
+                           							is imported using an base import (<a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>).
+                           							Here this rule is neglegted just for the purpose of keeping the example small.
+                           						</em></p>
+                  </div>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.8.html" rel="prev">&lt;&lt;&nbsp;&sect;4.8&nbsp;Callin precedence</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s4.10.html" rel="next">&sect;4.10&nbsp;Generic callin bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s4.html" rel="section">&sect;4&nbsp;Callin Binding</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.html
new file mode 100644
index 0000000..fc5f9cb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s4.html
@@ -0,0 +1,1384 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s3.html" rel="prev">&lt;&lt;&nbsp;&sect;3&nbsp;Callout Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.html" rel="next">&sect;5&nbsp;Team Activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s4">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;4&nbsp;Callin Binding</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s4.html">&sect;4&nbsp;Callin Binding</a></li>
+                  <li><a href="#s4.1">&sect;4.1&nbsp;Callin method binding</a></li>
+                  <li><a href="#s4.2">&sect;4.2&nbsp;Callin modifiers (before, after, replace)</a></li>
+                  <li><a href="#s4.3">&sect;4.3&nbsp;Base calls</a></li>
+                  <li><a href="#s4.4">&sect;4.4&nbsp;Callin parameter mapping</a></li>
+                  <li><a href="#s4.5">&sect;4.5&nbsp;Lifting and lowering</a></li>
+                  <li><a href="#s4.6">&sect;4.6&nbsp;Overriding access restrictions</a></li>
+                  <li><a href="#s4.7">&sect;4.7&nbsp;Callin binding with static methods</a></li>
+                  <li><a href="#s4.8">&sect;4.8&nbsp;Callin precedence</a></li>
+                  <li><a href="#s4.9">&sect;4.9&nbsp;Callin inheritance</a></li>
+                  <li><a href="#s4.10">&sect;4.10&nbsp;Generic callin bindings</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notion of callin binding</h3>
+               <p>
+                  			Callin bindings realize a forwarding in the direction opposite to callout bindings 
+                  			(see <a href="s3.html" title="&sect;3&nbsp;Callout Binding" class="sect">&sect;3</a>).
+                  			Both terms are chosen from the perspective of a role, which controls its communication with 
+                  			an associated base object.
+                  			Technically, callin bindings are equivalent to weaving additional code (triggers) 
+                  			into existing base methods.
+                  		
+               </p>
+               <div class="line"></div>
+               <div class="term">Callin</div>
+               <div class="termdesc">Methods of a base class may be <strong>intercepted</strong> by a callin binding
+                  	    (<em>the base method "calls into" the role</em>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Before/after/replace</div>
+               <div class="termdesc">The modifiers <strong>before, after, replace</strong> control the composition
+                  	    of original method and callin method.
+               </div>
+               <div class="line"></div>
+               <div class="term">Activation</div>
+               <div class="termdesc">Callin bindings may be active or inactive according to
+                  	    <a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s4.1">
+               <h2 class="sect">&sect;4.1&nbsp;Callin method binding<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.3.3</a></div>
+               <div class="subsect depth3" id="s4.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Method call interception</span></h4>
+                  <p>A role method may intercept calls to a base method by
+                     	    a callin binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Prerequisite: Class binding</span></h4>
+                  <p>A callin binding requires the enclosing class to be a role class
+                     	    bound to a base class according to <a href="s2.1.html" title="&sect;2.1&nbsp;playedBy relation" class="sect">&sect;2.1</a>. 
+                     	    An <em>unliftable</em> role (see <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                        class="sect">&sect;2.3.4.(a)</a>) cannot define 
+                     	    callin bindings. In that case callin bindings can only be introduced in sub-roles 
+                     	    which (by an appropriately refined <code>playedBy</code> clause) disambiguate the lifting translation.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Callin declaration</span></h4>
+                  <p>A callin binding composes an existing role method with a
+                     	    given base method.
+                     	    It may appear within the role class at any place where feature
+                     	    declarations are allowed. It is denoted by
+                     			
+                  </p>
+                  <div class="listing plain"><pre><i>role_method_designator</i> <b>&lt;-</b> <i>callin_modifier </i><i>base_method_designator;</i></pre></div>
+                  <p>Just like with callout bindings, method designators may
+                     	    or may not contain parameters lists and return type but no modifiers;
+                     also, each method designator must exactly and uniquely select one method 
+                     (cf. <a href="s3.1.c.html" title="&sect;3.1.(c)&nbsp;Kinds of method designators"
+                        class="sect">&sect;3.1.(c)</a>).
+                     <br />
+                     	    For <em>callin modifiers</em> see <a href="#s4.2"
+                        title="&sect;4.2&nbsp;Callin modifiers (before, after, replace)"
+                        class="sect">below (&sect;4.2)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+                  <p>Base method designators may furthermore enumerate a
+                     	    list of methods. If multiple base methods are bound in one
+                     	    callin declaration generally all signatures in this binding must be conform.
+                     		<br />
+                     	    However, <em>extraneous parameters</em> from base methods may be ignored
+                     	    at the role.
+                     	    <br />
+                     	    For <em>result types</em> different rules exist, depending on the
+                     	    applied callin modifier (see next).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Named callin bindin</span></h4>
+                  <p>Any callin binding may be labeled with a name. The name of a callin binding is used 
+                     			for declaring <em>precedence</em> (<a href="#s4.8" title="&sect;4.8&nbsp;Callin precedence" class="sect">&sect;4.8</a>). 
+                     			A named callin binding <em>overrides</em> any inherited callin binding 
+                     			(explicit and implicit (<a href="s1.3.1.html"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>)) with the same name.
+                     			<br />
+                     It is an error to use the same callin name more than once within the same role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Callin to final</span></h4>
+                  <p>When binding to a final base method, the enclosing role must be played by the exact base class 
+                     			declaring the final method. I.e., callin binding to a final method inherited from the 
+                     			base class's super-class is not allowed. This is motivated by the fact that no sub-class may have 
+                     			a version of a final method with different semantics.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.g">
+                  <h4 class="subsect">(g)&nbsp;<span class="title">Declared exceptions</span></h4>
+                  <p>It is an error if a role method to be bound by callin declares in its <tt>throws</tt> clause 
+                     		any exceptions that are not declared by the corresponding base method(s).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.1.h">
+                  <h4 class="subsect">(h)&nbsp;<span class="title">Method of enclosing class</span></h4>
+                  <p>In a <code>before</code> or <code>after</code> callin binding the left hand side may alternatively
+                     			resolve to a method of an enclosing class rather than the current role.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.2">
+               <h2 class="sect">&sect;4.2&nbsp;Callin modifiers (before, after, replace)<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="subsect depth3" id="s4.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Method composition</span></h4>
+                  <p>The kind of method composition is controlled by adding one
+                     	    of the modifiers <strong>before, after</strong> or <strong>replace</strong> after the
+                     	    "<code>&lt;-</code>" token of the binding declaration.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Additive composition</span></h4>
+                  <p>The <code>before</code> and <code>after</code> modifiers have the
+                     	    effect of adding a call to the role method at the beginning or end
+                     	    of the base method, resp.<br />
+                     	    In this case no data are transferred from the role to the base,
+                     	    so if the role method has a result, this will always be ignored.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Callin):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>team</b> <b>class</b> Company {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>protected</b> <b>class</b> Employee <b>playedBy</b> Person {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>    <b>public</b> <b>void</b> recalculateIncome() { ... }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    recalculateIncome <em><b>&lt;-</b> after</em> haveBirthday; <span class="comment">// callin binding</span></pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <p>Line 4 declares a callin binding for the role method <code>recalculateIncome()</code> 
+                        			defined in line 3. In combination with the role binding in line 2 this has the following effect:
+                        				
+                     </p>
+                     <ul>
+                        <li><strong>After</strong> every call of the method <code>Person.haveBirthday</code> 
+                           					the method <code>Company.recalculateIncome</code> is called.
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s4.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Replacing composition</span></h4>
+                  <p>The <code>replace</code> modifier causes <em>only</em> the role method to be
+                     	    invoked, replacing the base method.
+                     	    <br />
+                     	    In this case, if the base method declares a result, this should be provided by the role method.
+                     	    Special cases of return values in callin bindings are discussed in <a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">&sect;4.3.(e)</a></p>
+               </div>
+               <div class="subsect depth3" id="s4.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Callin methods</span></h4>
+                  <p>Role methods to be bound by a callin replacement binding must have
+                     	    the modifier <code>callin</code>. This modifier is only allowed for methods
+                     	    of a role class.<br />
+                     		A method with the <code>callin</code> modifier can only be called
+                     			
+                  </p>
+                  <ul>
+                     <li>via a callin replace binding</li>
+                     <li>by a <code>super</code> or <code>tsuper</code> call from an overriding callin method.
+                     </li>
+                  </ul>
+                  <p>It is illegal for a <code>callin</code> method
+                  </p>
+                  <ul>
+                     <li>to be called directly,</li>
+                     <li>to be bound using a callout binding, and</li>
+                     <li>to be bound to a base method using a <code>before</code> or <code>after</code> callin binding.
+                     </li>
+                  </ul>
+                  <p>Despite these rules a second level role &mdash; which is played by the current role &mdash;
+				can	intercept the execution of a callin method using any form of callin binding.</p>
+                  <p>A callin method cannot override a regular method and vice versa, however,
+                     	    overriding one callin method with another callin method is legal and
+                     	    dynamic binding applies to callin method just like regular methods.
+                     	    <br />
+                     	    A callin method must not declare its visibility using any of the modifiers <code>public</code>, 
+                     	    <code>protected</code> or <code>private</code>. Since callin methods can only be invoked via callin bindings 
+                     	    such visibility control would not be useful.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.3">
+               <h2 class="sect">&sect;4.3&nbsp;Base calls<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.5.3" title="&sect;A.5.3&nbsp;BaseCall" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.5.3</a></div>
+               <p>Role methods with a <code>callin</code> modifier should contain
+                  a <em>base call</em> which uses the special name <code>base</code>
+                  in order to invoke the original base method (original means: before replacement).
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Syntax</span></h4>
+                  <p>The syntax for base calls is <code>base.m()</code>,
+                     		which is in analogy to super calls.
+                     	    A <code>base.m()</code> call must use the same name and signature
+                     	    as the enclosing method. This again follows the rule, that roles
+                     	    should never explicitly use base names, except in binding declarations.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Missing base call</span></h4>
+                  <p>For each callin method, the compiler uses some flow analysis to check whether
+                     		a base call will be invoked on each path of execution (analysis is very similar 
+                     		to the analysis for definite assignment regarding final variables - 
+                     		<a href="http://java.sun.com/docs/books/jls/third_edition/html/defAssign.html"
+                        class="ext">JLS &sect;16</a>).
+                     		The compiler will issue a warning if a base call is missing either
+                     		on each path (definitely missing) or on some paths (potentially missing).
+                     		Instead of directly invoking a base call, a callin method may also call
+                     		its explicit or implicit super version using <code>super.m()</code> or <code>tsuper.m()</code> (see <a href="s1.3.1.f.html" title="&sect;1.3.1.(f)&nbsp;tsuper" class="sect">&sect;1.3.1.(f)</a>). 
+                     		In this case the flow analysis will transitively include the called super/tsuper version.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Duplicate base call</span></h4>
+                  <p>If a callin method contains several base calls, the compiler gives
+                     		a warning if this will result in duplicate base call invocations on all
+                     		paths (definitely duplicate) or on some paths (potentially duplicate).
+                     		Again super/tsuper calls are included in the flow analysis (see 4.3(b)).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Parameter tunneling</span></h4>
+                  <p>If a base method has more parameters
+                     	    than a callin method to which it is composed, additional
+                     	    parameters are implicitly passed unchanged from the original
+                     	    call to the base call (original means: before interception).
+                     		I.e., a call <code>base.m()</code> may invisibly pass additional
+                     		parameters that were provided by the caller, but are hidden from the
+                     		role method.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Fragile callin binding</span></h4>
+                  <p>If a role method returns void, but the bound base method declares a
+                     		non-void result, this is reported as a <em>fragile callin binding</em>:
+                     The result can still be provided by the base call, but omitting the
+                     		base call may cause problems depending on the return type:
+                     			
+                  </p>
+                  <ul>
+                     <li>For reference return types <code>null</code> will be returned
+                        			            in this case.
+                     </li>
+                     <li>In the case of primitive return types this will cause a
+                        						<code>ResultNotProvidedException</code> at run-time.
+                     </li>
+                  </ul>
+                  <p>It is an error if a callin method involved in a fragile callin binding
+                     		has definitely no base call.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.3.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Base super calls</span></h4>
+                  <p>If a callin method <code>rm</code> is bound to a base method <code>B1.m</code> 
+                     			that in turn overrides an inherited method <code>B0.m</code> 
+                     			(<code>B0</code> is a super class of <code>B1</code>),
+                     			the callin method may use a special form of a base call denoted as 
+                     			
+                  </p>
+                  <div class="listing plain"><pre><strong>base.super</strong>.rm();</pre></div>
+                  <p>Such base super call invokes the super method of the bound base method,
+                     			here <code>B0.m</code>. This invocation is not affected by any further callin binding.
+                     			
+                  </p>
+                  <p>A base super call bypasses both the original method <code>B1.m</code> and
+                     			also other callin bindings that would be triggered by a regular base call.
+                     			For this reason any application of this construct is flagged by a decapsulation warning
+                     			(see <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                        class="sect">&sect;3.4</a>).
+                     			
+                  </p>
+               </div>
+               <div class="note">
+                  <h5>Comment:</h5>
+                  			Base calls can occur in callin methods that are not
+                  			yet bound. These methods have no idea of the names of base methods that
+                  			a sub-role will bind to them. Also multiple base methods may be bound
+                  			to the same callin method.
+                  			Hence the use of the role method's own name and signature.
+                  			The language implementation translates the method name and signature
+                  			back to the base method that has originally been invoked.
+                  		
+               </div>
+               <h5 class="listing">Example code (Base Call):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> ValidatorRole <b>playedBy</b> Po<b>int</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <em>callin</em> <b>void</b> checkCoordinate(<b>int</b> value) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    <b>if</b> (value &lt; 0)</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>      <em>base</em>.checkCoordinate(-value);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    else</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>      <em>base</em>.checkCoordinate(value);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  checkCoordinate <b>&lt;-</b> <b>replace</b> setX, setY;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>Line 2 defines a callin method which is bound to two methods 
+                        						of the base class <code>Point</code> (see line 8).
+                     </li>
+                     <li>The value passed to either setX or setY is checked if it is
+                        						positive (line 3).
+                     </li>
+                     <li>Lines 4 and 6 show calls of the original method (base calls). 
+                        						While line 6 passes the original value, in the negative case (line 4) 
+                        						the passed value is made positive.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.4">
+               <h2 class="sect">&sect;4.4&nbsp;Callin parameter mapping<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="subsect depth3" id="s4.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">General case parameter mapping</span></h4>
+                  <p>The rules for mapping callin parameters and result type
+                     	    are mainly the same as for callout bindings (<a href="s3.2.html" title="&sect;3.2&nbsp;Callout parameter mapping"
+                        class="sect">&sect;3.2</a>)
+                     	    except for reversing the <code>-&gt;</code> and <code>&lt;-</code> tokens and
+                     	    swapping left hand side and right hand side.
+                     	    <br />
+                     	    Callin bindings using <code>before</code> have no result mapping.
+                     For <code>result</code> in <code>after</code> callin bindings
+                     see <a href="#s4.4.c"
+                        title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                        class="sect">&sect;4.4.(c)</a> below.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Restrictions for callin replace bindings</span></h4>
+                  <p>The right-hand side of a parameter mapping may either be
+                     		the simple name of a base method argument without further computation, 
+                     		or an arbitrary expression <em>not</em> containing any base method argument.
+                     		<br />
+                     		Each base method argument must either appear as a simple name in exactly one parameter mapping
+                     		or not be mapped at all. In the latter case, the original argument is "tunneled" to
+                     		the base call, meaning, the callin method does not see the argument, but it is passed
+                     		to the base method as expected.
+                     <br />
+                     If the base method declares a result, then
+                     			
+                  </p>
+                  <ul>
+                     <li>if the role method also declares a result, <code>result</code> must be mapped to itself:
+                        					<br /><code>result -&gt; result</code></li>
+                     <li>if the role method does not declare a result, an arbitrary expression may be mapped to result:
+                        	<br /><code><em>expression</em> -&gt; result</code><br />
+                        		If in this situation no result mapping exists, the result of the base call
+                        					is "tunneled" and passed to the original caller (see <a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                           class="sect">
+                           					fragile callin binding (&sect;4.3.(e))</a> above).
+                        
+                     </li>
+                  </ul>
+                  <p>These rules ensure that these bindings are reversible
+                     		for the sake of base calls (<a href="#s4.3" title="&sect;4.3&nbsp;Base calls" class="sect">&sect;4.3</a>).
+                     			
+                  </p>
+                  <p>As stated above a fragile callin binding (<a href="#s4.3.e" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">&sect;4.3.(e)</a>) 
+                     		is not allowed with a callin method that definitely has no base call
+                     		(<a href="#s4.3.b" title="&sect;4.3.(b)&nbsp;Missing base call" class="sect">&sect;4.3.(b)</a>). A callin replace binding is not fragile if it provides 
+                     		the base result using a result mapping.
+                     			
+                  </p>
+                  <p>A callin method bound with replace to a base method returning
+                     		void must not declare a non-void result.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Mapping the result of a base method</span></h4>
+                  <p>In an <code>after</code> callin binding, the right-hand side
+                     		of a parameter mapping may use the identifier <code>result</code>
+                     to refer to the result of the base method.
+                     	
+                  </p>
+                  <p> 
+                     An <code>after</code> callin binding
+                     can, however, not <em>influence</em> the result of the base method,
+                     thus mappings with the <code>-&gt;</code> token are not allowed for after callin bindings.
+                     For <code>before</code> mappings using the <code>-&gt;</code> token is already ruled out by <a href="#s4.4.a" title="&sect;4.4.(a)&nbsp;General case parameter mapping"
+                        class="sect">&sect;4.4.(a)</a></p>
+               </div>
+               <div class="subsect depth3" id="s4.4.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple base methods</span></h4>
+                  <p>A callin binding listing more than one base method may use parameter
+                     		mappings with only the following restriction: if any base parameter should be mapped this parameter 
+                     		must have the same name and type in all listed base method designators. 
+                     		However, different parameter mappings for different base methods bound to the same role method 
+                     		can be defined if separate callin bindings are used.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.5">
+               <h2 class="sect">&sect;4.5&nbsp;Lifting and lowering<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>For basic definition see <a href="s2.2.html" title="&sect;2.2&nbsp;Lowering" class="sect">&sect;2.2</a>
+                  and <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+                  <br />
+                  	(The following rules are reverse forms of those from <a href="s3.3.html" title="&sect;3.3&nbsp;Lifting and lowering" class="sect">&sect;3.3</a>)
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.5.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Call target translation</span></h4>
+                  <p>Invoking a role method due to a callin binding first
+                     	    <strong>lifts</strong> the base object to the role class of the
+                     	    callin binding, in order to obtain the effective call target. 
+                     	    This is why callin bindings cannot be defined in roles that are <em>unliftable</em> 
+                     	    due to <em>potential binding ambiguity</em> (see <a href="#s4.1.b" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                        class="sect">&sect;4.1.(b)</a> 
+                     	    above and <a href="s2.3.4.a.html" title="&sect;2.3.4.(a)&nbsp;Potential ambiguity"
+                        class="sect">&sect;2.3.4.(a)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Parameter translation</span></h4>
+                  <p>During callin execution, each parameter for which the role method expects a role
+                     	    object is implicitly <strong>lifted</strong> to the declared role class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Result translation</span></h4>
+                  <p>Returning a role object from a callin method implicitly
+                     	    <strong>lowers</strong> this object.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Typing rules</span></h4>
+                  <p>A parameter mapping (implicit by parameter position or explicit
+                     	    by a <code>with</code> clause) is <strong>well typed</strong> if
+                     	    the right hand side conforms to the left hand side, either by
+                     			
+                  </p>
+                  <ul>
+                     <li>type equality</li>
+                     <li>implicit primitive type conversion</li>
+                     <li>subtype polymorphism</li>
+                     <li>translation polymorphism, here: <em>lifting</em>;<br />
+                        however, within <code>replace</code> bindings step 1 of the smart lifting 
+                        algorithm (<a href="s2.3.3.a.html" title="&sect;2.3.3.(a)&nbsp;Static adjustment"
+                           class="sect">&sect;2.3.3.(a)</a>) is not applicable
+                     </li>
+                     <li><em>or</em> by a combination of the above.
+                     </li>
+                  </ul>
+                  <p>A result mapping (implicit or explicit by a <code>with</code> clause)
+                     	    is well typed, if the value at the left hand conforms to the
+                     	    right hand side according to the rules given above, except that
+                     	    translation polymorphism here applies <em>lowering</em> instead of
+                     	    lifting.
+                  </p>
+                  <p>
+                     	    These rules define <strong>translation polymorphism</strong> as introduced in
+                     	    <a href="s2.3.html" title="&sect;2.3&nbsp;Lifting" class="sect">&sect;2.3</a>.
+                     			
+                  </p>
+                  <p>Additionally, in a <code>replace</code> callin binding compatibility of parameters and return
+                     			types must hold in both directions. 
+                     			Thus, from the above list of conversions a replace binding cannot apply subtype polymorphism
+                     			nor primitive type conversion.
+                     			If more flexibility is desired, type parameters can be used as defined in <a href="#s4.10" title="&sect;4.10&nbsp;Generic callin bindings" class="sect">&sect;4.10</a>.
+                     	    	
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role arrays</span></h4>
+                  <p>For arrays of roles as parameters <a href="s2.3.d.html" title="&sect;2.3.(d)&nbsp;Lifting of arrays"
+                        class="sect">&sect;2.3.(d)</a> applies 
+                     		accordingly. For arrays as return value <a href="s2.2.e.html" title="&sect;2.2.(e)&nbsp;Lowering of arrays"
+                        class="sect">&sect;2.2.(e)</a> applies.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.5.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Base calls</span></h4>
+                  <p>For base calls these rules are reversed again, i.e., a
+                     		base call behaves like a callout binding.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.6">
+               <h2 class="sect">&sect;4.6&nbsp;Overriding access restrictions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>Callin bindings may also mention inaccessible methods
+                  	(cf. decapsulation <a href="s3.4.html" title="&sect;3.4&nbsp;Overriding access restrictions"
+                     class="sect">&sect;3.4</a>).
+                  	Due to the reverse call direction this is relevant only for base calls within 
+                  	<code>callin</code> methods. 
+                  	Base calls have unrestricted access to protected base methods.
+                  	Accessing a base method with private or default visibility is
+                  	also allowed, but signaled by a compiler warning.
+                  		
+               </p>
+               <div class="note">
+                  <h5>Comment:</h5>
+                  			A base call to an inaccessible base method is considered harmless, 
+                  			since this is the originally intended method execution.
+                  		
+               </div>
+               <div class="subsect depth3" id="s4.6.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Private methods from super classes</span></h4>
+                  <p><em>(Cf. <a href="s3.4.d.html"
+                           title="&sect;3.4.(d)&nbsp;Private methods from super classes"
+                           class="sect">&sect;3.4.(d)</a>)</em>
+                     			If a callin binding shall bind to a private base method, that method
+                     must be defined in the exact base class to which the current role
+                     class is bound using <code>playedBy</code>.
+                     <br />
+                     If a private base feature must indeed be callin-bound, a role class
+                     must be defined that is played by the exact base class defining the
+                     private feature. Another role bound to a sub-base-class can then
+                     be defined as a sub class of the first role. It will inherit the
+                     callin binding and through this it can access the desired feature.
+                     
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.7">
+               <h2 class="sect">&sect;4.7&nbsp;Callin binding with static methods<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>The normal case of callin bindings refers to non-static methods on both
+                  	sides (base and role). Furthermore, in Java inner classes can not define
+                  	static methods. Both restrictions are relaxed by the following rules:
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.7.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Static role methods</span></h4>
+                  <p>A role class may define static methods (see also <a href="s1.2.1.f.html" title="&sect;1.2.1.(f)&nbsp;Static role methods"
+                        class="sect">&sect;1.2.1.(f)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Binding static to static</span></h4>
+                  <p>A callin binding may bind a static role method to one or more
+                     		static base methods. It is, however, an error to bind a static base method to a non-static role method, 
+                     		because such binding would require to lift a base object that is not provided.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">before/after</span></h4>
+                  <p>In addition to the above, <code>before</code> and <code>after</code>
+                     		callin bindings may also bind a static role method to non-static base methods.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.7.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">replace</span></h4>
+                  <p>In contrast to <a href="#s4.7.c" title="&sect;4.7.(c)&nbsp;before/after" class="sect">&sect;4.7.(c)</a> above, a <code>replace</code> callin binding
+                     		cannot bind a static role method to a non-static base method.
+                     			
+                  </p>
+               </div>
+               <p>The following table summarizes the combinations defined above:
+                  		
+               </p>
+               <table border="2" class="sep" cellpadding="5" width="80%">
+                  <tr class="z1">
+                     <td colspan="2" rowspan="2" align="right"><strong>&lt;-</strong>&nbsp;&nbsp;
+                     </td>
+                     <td colspan="2" align="center" rowspan="1"><strong>base method</strong></td>
+                  </tr>
+                  <tr class="z1">
+                     <td align="center" rowspan="1" colspan="1">static</td>
+                     <td align="center" rowspan="1" colspan="1">non-static</td>
+                  </tr>
+                  <tr class="z2">
+                     <td rowspan="2" align="center" class="z1" colspan="1"><strong>role<br />method</strong></td>
+                     <td align="center" class="z1" rowspan="1" colspan="1">static</td>
+                     <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+                     <td rowspan="1" colspan="1"><code>before/after</code>: <span class="green">OK</span><br /><code>replace</code>: <span class="error">illegal</span></td>
+                  </tr>
+                  <tr class="z2">
+                     <td align="center" class="z1" rowspan="1" colspan="1">non-static</td>
+                     <td rowspan="1" colspan="1"><span class="error">illegal</span></td>
+                     <td rowspan="1" colspan="1"><span class="green">OK</span></td>
+                  </tr>
+               </table>
+               <div class="subsect depth3" id="s4.7.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">No overriding</span></h4>
+                  <p>Since static methods are not dynamically bound, <i>overriding</i> does not
+                     				   apply in the normal semantics. Regarding callin bindings this has the
+                     				   following consequences (assuming a role <code>RMid</code> played by
+                     				   <code>BMid</code> plus its super-class <code>BSuper</code> and its sub-class
+                     				   <code>BSub</code>.
+                     			
+                  </p>
+                  <ol>
+                     <li>If a static base method <code>BMid.m</code> is bound by a callin binding
+                        				       this has no effect on any method <code>m</code> in <code>BSub</code>.
+                     </li>
+                     <li>If a callin binding mentions a method <code>m</code> which is not present 
+                        in <code>BMid</code> but resolves to a static method in <code>BSuper</code> 
+                        the binding only affects invocations as <code>BMid.m()</code> but not
+                        <code>BSuper.m()</code>. If the latter call should be affected, too,
+                        the callin binding must appear in a role class bound to <code>BSuper</code>, 
+                        not <code>BMid</code>.
+                     </li>
+                     <li>In order to bind two static base methods with equal signatures, one being
+                        				       defined in a sub-class of the other one, two roles have to be defined
+                        				       where one role refines the <code>playedBy</code> clause of the other role
+                        				       (say: <code>public class RSub extends RMid playedBy BSub</code>).
+                        				       Now each role may bind to the static base method accessible in its direct
+                        				       base-class.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.8">
+               <h2 class="sect">&sect;4.8&nbsp;Callin precedence<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <div class="syntaxlink"><a href="sA.8.html" title="&sect;A.8&nbsp;Precedence declaration"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.8</a></div>
+               <p>If multiple callins from the same team refer to the same base method and also have the same 
+                  	callin modifier (<code>before</code>, <code>after</code> or <code>replace</code>), the order in which 
+                  	the callin bindings shall be triggered has to be declared using a precedence declaration.
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.8.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Precedence declaration</span></h4>
+                  <p>A precedence declaration consists of the keyword <code>precedence</code> followed by 
+                     		a list of names referring to callin bindings (see <a href="#s4.1.e" title="&sect;4.1.(e)&nbsp;Named callin bindin" class="sect">&sect;4.1.(e)</a> for named callin bindings).
+                     		<br />
+                     	A precedence declaration is only legal within a role or team class.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Qualified and unqualified names</span></h4>
+                  <p>Within a role class a callin binding may be referenced by its unqualified name. 
+                     		A precedence declaration in a team class must qualify the callin name with the name of the declaring 
+                     		role class. A team with nested teams may concat role class names. 
+                     		Elements of a qualified callin name are separated by ".".
+                     		<br />
+                     The callin binding must be found in the role specified by the qualifying prefix or 
+                     in the enclosing role for unqualified names, or any super class of this role 
+                     (including implicit super classes <a href="s1.3.1.html"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Class based precedence</span></h4>
+                  <p>At the team level a precedence declaration may contain role class names without 
+                     		explicitly mentioning callin bindings in order to refer to all callin bindings of the role.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Multiple precedence statements</span></h4>
+                  <p>All precedence statements are collected at the outer-most team. At that level all 
+                     		precedence declarations involving the same base method are merged using the 
+                     		C3 algorithm <a href="#fn3-c3-algorithm" class="int">[3]</a>. It is an error to declare 
+                     		incompatible precedence lists that cannot be merged by the C3 algorithm.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.8.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Binding overriding</span></h4>
+                  <p>Precedence declarations may conflict with overriding of callin bindings 
+                     		(see <a href="#s4.1.e" title="&sect;4.1.(e)&nbsp;Named callin bindin" class="sect">&sect;4.1.(e)</a>): For each pair of callin bindings of which one 
+                     		callin binding overrides the other one, precedence declarations are not applicable, 
+                     		since dynamic binding will already select exactly one callin binding.
+                     		<br />
+                     		It is an error to <i>explicitly mention</i> such a pair of overriding callin bindings in a precedence declaration.
+                     		<br />
+                     		When a class-based precedence declaration <i>implicitly refers to</i> a callin binding that is overridden by, 
+                     		or overrides any other callin binding within the same precedence declaration, this does not affect the fact, 
+                     		that the most specific callin binding overrides less specific ones.
+                     			
+                  </p>
+               </div>
+               <h5 class="listing">Callin binding example</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>class</b> LogLog<b>in</b> <b>playedBy</b> Data<b>base</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>callin</b> <b>void</b> log (String what) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>    System.out.println("enter " + what);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    base.log(what.toLowerCase());</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    System.out.println("leave " + what);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  <b>void</b> log(String what) <b>&lt;-</b> <b>replace</b> <b>void</b> login(String uid, String passwd) </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    <b>with</b> { what <b>&lt;-</b> uid }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>(<b>new</b> Database()).login("Admin", "Passwd");</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <p>Provided the callin bindings are active (cf. <a href="s5.html" title="&sect;5&nbsp;Team Activation" class="sect">&sect;5</a>) then:
+                     			
+                  </p>
+                  <ul>
+                     <li>the call in line 10 is intercepted by method <code>log</code>
+                        						of role <code>LogLogin</code>.
+                     </li>
+                     <li>the call target of <code>log</code> is a role of type
+                        						<code>LogLogin</code> which is created by lifting the
+                        						original call target (of type <code>Database</code>) to
+                        						<code>LogLogin</code>.
+                     </li>
+                     <li>only parameter <code>uid</code> is passed to <code>log</code>
+                        						(bound to formal parameter <code>what</code>).
+                     </li>
+                     <li>within method <code>log</code> the base call (line 4) invokes 
+                        						the original method passing a modified uid (converted to lower case, cf. line 4) 
+                        						and the unmodified password, which is hidden from the callin method due to the
+                        						parameter mapping in line 8.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.9">
+               <h2 class="sect">&sect;4.9&nbsp;Callin inheritance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>
+                  			This section defines how callin bindings and callin methods relate to inheritance.
+                  		
+               </p>
+               <div class="sect depth3" id="s4.9.1">
+                  <h3 class="sect">&sect;4.9.1&nbsp;Base side inheritance<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     				Generally, a callin binding affects all sub-types of its bound base.
+                     				Specifically, if a role type <code>R</code> bound to a base type <code>B</code> 
+                     				defines a callin binding <code>rm &lt;- <i>callin_modifier</i> bm</code>,
+                     				the following rules apply:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s4.9.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Effect on sub-classes</span></h4>
+                     <p>The callin binding also effects instances of any type <code>BSub</code> 
+                        	that is a sub-type of <code>B</code>.
+                        	If <code>BSub</code> overrides the bound base method <code>bm</code>,
+                        	the overridden version is generally affected, too.
+                        	However, if <code>bm</code> covariantly redefines the return type from its
+                        	super version, the callin binding has to explicitly specify if the covariant
+                        	sub-class version should be affected, too (see <a href="#s4.9.3.b"
+                           title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                           class="sect">&sect;4.9.3.(b)</a>).
+                        
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">No effect on super-classes</span></h4>
+                     <p>The binding never affects an instance of any super-type of <code>B</code> 
+                        	                even if the method <code>bm</code> is inherited from a super-class 
+                        	                or overrides an inherited method. 
+                        	                This ensures that dispatching to a role method due to a callin binding 
+                        	                always provides a base instance that has at least the type declared in the role's 
+                        	                <code>playedBy</code> clause.
+                        
+                     </p>
+                  </div>
+                  <p>
+                     For corresponding definitions regarding static methods see <a href="#s4.7.e" title="&sect;4.7.(e)&nbsp;No overriding" class="sect">&sect;4.7.(e)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s4.9.2">
+                  <h3 class="sect">&sect;4.9.2&nbsp;Role side inheritance<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     	Any sub-type of <code>R</code> inherits the given callin binding 
+                     	(for overriding of bindings see <a href="#s4.8.e" title="&sect;4.8.(e)&nbsp;Binding overriding" class="sect">&sect;4.8.(e)</a>).
+                     If the sub-role overrides the role method <code>rm</code> this will be considered 
+                     for dynamic dispatch when the callin binding is triggered.
+                     
+                  </p>
+               </div>
+               <div class="sect depth3" id="s4.9.3">
+                  <h3 class="sect">&sect;4.9.3&nbsp;Covariant return types<span class="toplink"><a href="#s4.9">&uarr;&nbsp;&sect;4.9</a></span></h3>
+                  <p>
+                     				Since version 5, Java supports the covariant redefinition of a method's return type 
+                     				(see <a href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.5"
+                        class="ext">JLS 8.4.5</a>).
+                     				This is <em>not</em> supported for <code>callin</code> methods (<a href="#s4.9.3.a" title="&sect;4.9.3.(a)&nbsp;No covariant callin methods"
+                        class="sect">&sect;4.9.3.(a)</a>). 
+                     				If base methods with covariant redefinition of the return type are to be bound by a callin binding
+                     				the subsequent rules ensure that type safety is preserved.
+                     				Two <em>constraints</em> have to be considered: 
+                     			
+                  </p>
+                  <ol>
+                     <li>
+                        					When a callin method issues a base-call or calls its tsuper version, 
+                        					this call must produce a value whose type is compatible to the 
+                        					enclosing method's declared return type.
+                        				
+                     </li>
+                     <li>
+                        					If a replace-bound role method returns a value that is not the result of a base-call,
+                        					it must be ensured that the return value actually satisfies the declared signature of 
+                        					the bound base method.
+                        				
+                     </li>
+                  </ol>
+                  <div class="subsect depth4" id="s4.9.3.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">No covariant callin methods</span></h4>
+                     <p>
+                        					A method declared with the <code>callin</code> modifier that overrides an inherited method
+                        					must not redefine the return type with respect to the inherited method.
+                        					This reflects that fact that an inherited callin binding should remain type-safe
+                        					while binding to the new, overriding role method.
+                        					Binding a covariant role method to the original base method would break constraint (1) above.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.3.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Capturing covariant base methods</span></h4>
+                     <p>
+                        					If a callin binding should indeed affect not only the specified base method
+                        					but also overriding versions which covariantly redefine the return type,
+                        					the binding must specify the base method's return type with a "+" appended
+                        					to the type name as in
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> rm() <b>&lt;-</b> <b>before</b> <em>RT+</em> bm();</pre></div>
+                     <p>Without the "+" sign the binding would only capture base methods whose
+                        					return type is exactly <code>RT</code>;
+                        					by appending "+" also sub-types of <code>RT</code>
+                        					are accepted as the declared return type.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s4.9.3.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Covariant replace binding</span></h4>
+                     <p>
+                        					When using the syntax of <a href="#s4.9.3.b"
+                           title="&sect;4.9.3.(b)&nbsp;Capturing covariant base methods"
+                           class="sect">&sect;4.9.3.(b)</a> to capture base methods with
+                        					covariant return types in a callin binding with the <code>replace</code> modifier,
+                        					the role method must be specified using a free type parameter as follows:
+                     </p>
+                     <div class="listing plain"><pre><em>&lt;E <b>extends</b> RT&gt; E</em> rm() <b>&lt;-</b> <b>replace</b> RT+ bm();</pre></div>
+                     <p>The role method <code>rm</code> referenced by this callin binding must use the same style 
+                        	of return type using a type parameter.
+                        	                The only possible non-null value of type <code>E</code> 
+                        	                to be returned from such method is the value provided by a base-call or a tsuper-call.<br />
+                        	                This rule enforces the constraint (2) above.<br />
+                        	                Note that this rule is further generalized in <a href="#s4.10" title="&sect;4.10&nbsp;Generic callin bindings" class="sect">&sect;4.10</a>.
+                        				
+                     </p>
+                     <h5 class="listing">Binding a parametric role method</h5>
+                     <div class="listing example frame">
+                        <table class="listing">
+                           <tr class="line odd">
+                              <td class="ln">1</td>
+                              <td><pre><b>public</b> <b>class</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">2</td>
+                              <td><pre>    SuperBase foo() { <b>return</b> this; }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">3</td>
+                              <td><pre>    <b>void</b> check() { System.out.print("OK"); }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">4</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">5</td>
+                              <td><pre><b>public</b> <b>class</b> SubBase <b>extends</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">6</td>
+                              <td><pre>    @Override</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">7</td>
+                              <td><pre>    SubBase foo() { <b>return</b> this; }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">8</td>
+                              <td><pre>    <b>void</b> print() { System.out.print("SubBase"); }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">9</td>
+                              <td><pre>    String test() { </pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">10</td>
+                              <td><pre>        this.foo().print(); <span class="comment">// print() requires a SubBase</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">11</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">12</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">13</td>
+                              <td><pre></pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">14</td>
+                              <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">15</td>
+                              <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> SuperBase {</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">16</td>
+                              <td><pre>        <b>callin</b> &lt;E <b>extends</b> SuperBase&gt; E ci() {</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">17</td>
+                              <td><pre>			E result= base.ci();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">18</td>
+                              <td><pre>			result.check(); <span class="comment">// check() is available on E via type bound SuperBase</span></pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">19</td>
+                              <td><pre>			<b>return</b> result;</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">20</td>
+                              <td><pre>        }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">21</td>
+                              <td><pre>        &lt;E <b>extends</b> SuperBase&gt; E  ci() <b>&lt;-</b> <b>replace</b> SuperBase+ foo();</pre></td>
+                           </tr>
+                           <tr class="line even">
+                              <td class="ln">22</td>
+                              <td><pre>    }</pre></td>
+                           </tr>
+                           <tr class="line odd">
+                              <td class="ln">23</td>
+                              <td><pre>}</pre></td>
+                           </tr>
+                        </table>
+                     </div>
+                     <div class="codecomment">
+                        <h5>Explanation:</h5>
+                        <ul>
+                           <li>
+                              							Method <code>SubBase.foo</code> in line 7 redefines the return type
+                              							from <code>SuperBase</code>	(inherited version) to <code>SubBase</code>,
+                              							thus clients like the method call in line 10 must be safe to assume
+                              							that the return value will always conform to <code>SubBase</code>.
+                              						
+                           </li>
+                           <li>
+                              							The callin binding in line 21 explicitly captures both versions of <code>foo</code>
+                              							by specifying <code>SuperBase+</code> as the expected return type.
+                              							Thus, if an instance of <code>MyTeam</code> is active at the method call
+                              							in line 10, this call to <code>foo</code> will indeed be intercepted
+                              							even though this call is statically known to return a value of type <code>SubBase</code>.
+                              						
+                           </li>
+                           <li>
+                              							The callin method in lines 16-20 has a return type which is not known statically,
+                              							but the return type is represented by the type variable <code>E</code>.
+                              							Since the base call is known to have the exact same signature as its enclosing
+                              							method, the value provided by the base call is of the same type <code>E</code>
+                              							and thus can be safely returned from <code>ci</code>.
+                              							<em>Note,</em> that no other non-null value is known to have the type <code>E</code>.
+                              						
+                           </li>
+                           <li>
+                              							By specifying <code>SuperBase</code> as an upper bound for the type <code>E</code>
+                              							the callin method <code>ci</code> may invoke 
+                              							any method declared in type <code>SuperBase</code>
+                              							on any value of type <code>E</code>. For an example see the call to <code>check</code>
+                              							in line 18.
+                              						
+                           </li>
+                        </ul>
+                        <p><em>
+                              							As an aside note that the above example uses type <code>SuperBase</code>
+                              							in an undisciplined way: within role <code>R</code> this type is bound
+                              							using <code>playedBy</code><strong> and</strong> the same type is also
+                              							used directly (as the upper bound for <code>E</code>).
+                              							This is considered bad style and it is prohibited if <code>SuperBase</code>
+                              							is imported using an base import (<a href="s2.1.2.d.html" title="&sect;2.1.2.(d)&nbsp;Base imports" class="sect">&sect;2.1.2.(d)</a>).
+                              							Here this rule is neglegted just for the purpose of keeping the example small.
+                              						</em></p>
+                     </div>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s4.10">
+               <h2 class="sect">&sect;4.10&nbsp;Generic callin bindings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;4</a></span></h2>
+               <p>
+                  			As mentioned in <a href="#s4.5.d" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> replace bindings do not support subtype polymorphism
+                  			in either direction.
+                  			On the other hand, binding several base methods to the same <code>callin</code> method
+                  			may require some more flexibility if these base methods have different signatures.
+                  			This is where type parameter come to the rescue to allow for generic <code>callin</code> methods
+                  			and	their binding to base methods with different signatures.<br />
+                  			Note that this rule is a generalization of rule <a href="#s4.9.3.c" title="&sect;4.9.3.(c)&nbsp;Covariant replace binding"
+                     class="sect">&sect;4.9.3.(c)</a>.
+                  		
+               </p>
+               <p>
+                  			Additionally, any callin binding (before,replace,after) may declare one or more type parameters
+                  			for propagating type parameters of the bound base method(s) (<a href="#s4.10.e" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                     class="sect">&sect;4.10.(e)</a>).
+                  		
+               </p>
+               <div class="subsect depth3" id="s4.10.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Fresh type parameter</span></h4>
+                  <p>
+                     			If a callin method declares a type parameter <code>&lt;T&gt;</code> for
+                     			capturing a covariant return type
+                     			this type <code>T</code>
+                     			can be used for specifying the type of exactly one parameter or the return type.
+                     			If a type parameter is used in more than one position of a <code>callin</code> method
+                     			it is not considered a <em>fresh type parameter</em>
+                     			and can thus not be bound to a covariant return type (see <a href="#s4.10.d" title="&sect;4.10.(d)&nbsp;Binding to a type parameter"
+                        class="sect">&sect;4.10.(d)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Type bounds</span></h4>
+                  <p>
+                     			The type parameter of a callin binding may be bounded by an upper bound as in <code>&lt;T extends C&gt;</code>.
+                     			In this case <code>T</code> can only be instantiated by types conforming to the upper bound <code>C</code>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Generic replace binding</span></h4>
+                  <p>
+                     			A generic <code>callin</code> method according to the above rules is bound using a replace
+                     			binding that declares the same number of type parameters,
+                     			where type parameters of the binding and its callin method are identified.
+                     			If the <code>callin</code> method declares bounds for its type parameters
+                     			so should the replace binding.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s4.10.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Binding to a type parameter</span></h4>
+                  <p>
+                     			A fresh type parameter can be used to capture arbitrary types in the base methods to be bound.
+                     			The type parameter may be instantiated differently for each bound base method.
+                     			By such type parameter instantiation the types in role and base signatures are actually identical,
+                     			thus satisfying the requirement of two-way substitutability.
+                     			
+                  </p>
+               </div>
+               <p>
+                  			Within the body of a generic <code>callin</code> method no further rules have to be followed,
+                  			because the fresh type variable actually guarantees, that the role method cannot replace the
+                  			original value (initial argument or base-call result) with a different object,
+                  			because no type exists that is guaranteed to conform to the type parameters.
+                  			Yet, the type bound allows the role method to invoke methods of the provided object.
+                  		
+               </p>
+               <h5 class="listing">Generic replace binding</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>    <b>protected</b> <b>class</b> R <b>playedBy</b> Figures {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>        <b>callin</b> &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; E ci(F arg) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>            E result= base.ci(arg);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>            <span class="error">result= arg; // illegal, types E and F are incommensurable</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>            <span class="error">arg= result; // illegal, types E and F are incommensurable</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>            <b>int</b> size= arg.getSize(); <span class="comment">// getSize() is availabel on F via type bound Shape</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>            result.resize(size); <span class="comment">    // resize() is available on E via type bound Shape</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>            <b>return</b> result; <span class="comment">// only two legal values exist: <code>result</code> and <code>null</code></span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>        }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>        &lt;E <b>extends</b> Shape, F <b>extends</b> Shape&gt; </pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>        E  ci(F arg) <b>&lt;-</b> <b>replace</b> Rectangle getBoundingBox(Shape original), </pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>                                Rectangle stretch(Square original);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Explanation:</h5>
+                  			These declaration generate two version of the <code>callin</code> method <code>ci</code>:
+                  			
+                  <ol>
+                     <li><code>Rectangle ci (Shape arg)</code></li>
+                     <li><code>Rectangle ci (Square arg)</code></li>
+                  </ol>
+                  			Within the <code>callin</code> method the following observations hold:
+                  			
+                  <ul>
+                     <li>Line 5 is illegal for the first signature as <code>Shape</code> is not conform to <code>Rectangle</code></li>
+                     <li>Line 6 is illegal for the second signature as <code>Rectangle</code> is not conform to <code>Square</code></li>
+                     <li>Everything else is type-safe.</li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s4.10.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Propagating type parameters</span></h4>
+                  <p>
+                     				If a callin binding binds to a generic base method, 
+                     				any type parameter(s) of the base method must be propagated into the role method 
+                     				by declaring the callin binding with type parameters, too.
+                     				By matching a type parameter of a base method with a type variable
+                     				of the callin binding, this genericity is propagated through the callin binding.
+                     			
+                  </p>
+                  <div class="listing  frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>class</b> MyBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>	&lt;T&gt; T getIt(T it) { <b>return</b> it; }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre><b>team</b> <b>class</b> MyTeam {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>	<b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>		<b>callin</b> &lt;U&gt; U rm(U a) { <b>return</b> base.rm(a); }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>		&lt;U&gt; U rm(U a) <b>&lt;-</b> <b>replace</b> U getIt(U it);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>	}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Explanation:</h5>
+                     				The callin binding declares a type parameter <code>&lt;U&gt;</code>
+                     				which is used to match all occurrences of <code>T</code> in the signature of <code>getIt</code>.
+                     				Thus the implementation of <code>rm</code> uses the type <code>U</code>
+                     				in exactly the same generic way as <code>getIt</code> uses <code>T</code>.
+                     			
+                  </div>
+               </div>
+            </div>
+            <div class="aux" id="aux4.2">
+               <h4 class="aux">Open issues:<span class="toplink"><a href="#s4">&uarr;&nbsp;&sect;4</a></span></h4>
+               <p>The query language for specifying sets of base methods (<a href="#s4.1.d" title="&sect;4.1.(d)&nbsp;Multiple base methods"
+                     class="sect">&sect;4.1.(d)</a>)
+                  		has not been finalized yet. In this version of the OTJLD <a href="s8.html" title="&sect;8&nbsp;Join Point Queries" class="sect">&sect;8</a> 
+                  		acts as a placeholder for the section that will define a join point query language in the future.
+               </p>
+            </div>
+            <div class="aux" id="aux4.1">
+               <h4 class="aux">References:<span class="toplink"><a href="#s4">&uarr;&nbsp;&sect;4</a></span></h4>
+               <p id="fn3-c3-algorithm">
+                  			[3] Kim Barrett, Bob Cassels, Paul Haahr, David A. Moon, Keith Playford, P. Tucker Withington. <em>A monotonic superclass linearization for Dylan</em>. OOPSLA '96: Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications,
+                  pages 69-82, 1996.
+                  		
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s3.html" rel="prev">&lt;&lt;&nbsp;&sect;3&nbsp;Callout Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.html" rel="next">&sect;5&nbsp;Team Activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.1.html
new file mode 100644
index 0000000..79757f7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.1.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.1.2.html" rel="next">&sect;5.1.2&nbsp;Effect on garbage collection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.1.html" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+         <div class="sect depth3" id="s5.1.1">
+            <h3 class="sect">&sect;5.1.1&nbsp;Global vs. thread local team activation</h3>
+            <p>While <strong>thread local</strong> activation only enables the callin bindings of 
+               		a team instance for a certain thread, <strong>global</strong> activation activates the 
+               		team instance for all threads of the application.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.1.2.html" rel="next">&sect;5.1.2&nbsp;Effect on garbage collection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.1.html" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.2.html
new file mode 100644
index 0000000..941a80e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.2.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.1.1&nbsp;Global vs. thread local team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.1.html" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+         <div class="sect depth3" id="s5.1.2">
+            <h3 class="sect">&sect;5.1.2&nbsp;Effect on garbage collection</h3>
+            <p>Any active team is referenced by internal infrastructure. 
+               		Thus, a team cannot be reclaimed by the garbage collector while it is active.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.1.1&nbsp;Global vs. thread local team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.1.html" rel="section">&sect;5.1&nbsp;Effect of team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.html
new file mode 100644
index 0000000..61fd5a3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.1.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.html" rel="next">&sect;5.2&nbsp;Explicit team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="sect depth2" id="s5.1">
+            <h2 class="sect">&sect;5.1&nbsp;Effect of team activation</h2>
+            <p>Activating a team instance has the effect of enabling all its callin bindings. 
+               	All effects defined in <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a> apply only if a corresponding 
+               	team instance is active.<br />
+               	The <strong>order</strong> of team activation controls the order of callin executions. 
+               	If more than one team intercepts calls to the same base method, the most recently activated 
+               	team has highest priority in that its before or replace callins are executed first while its after 
+               	callins are executed last.
+               		
+            </p>
+            <div class="sect depth3" id="s5.1.1">
+               <h3 class="sect">&sect;5.1.1&nbsp;Global vs. thread local team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5.1</a></span></h3>
+               <p>While <strong>thread local</strong> activation only enables the callin bindings of 
+                  		a team instance for a certain thread, <strong>global</strong> activation activates the 
+                  		team instance for all threads of the application.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s5.1.2">
+               <h3 class="sect">&sect;5.1.2&nbsp;Effect on garbage collection<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5.1</a></span></h3>
+               <p>Any active team is referenced by internal infrastructure. 
+                  		Thus, a team cannot be reclaimed by the garbage collector while it is active.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.html" rel="next">&sect;5.2&nbsp;Explicit team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.a.html
new file mode 100644
index 0000000..3041892
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.a.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.b.html" rel="next">&sect;5.2.(b)&nbsp;Imperative activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+         <div class="subsect depth3" id="s5.2.a">
+            <h4 class="subsect">&sect;5.2.(a)&nbsp;<span class="title">Activation block</span></h4>
+            <p>A team can be activated thread local by the block construct</p>
+            <div class="listing plain"><pre><b>within</b> (myTeam) { <i>stmts</i> }</pre></div>
+            <p>If <em>stmts</em> has only one statement this can be abbreviated to
+            </p>
+            <div class="listing plain"><pre><b>within</b> (myTeam) <i>stmt</i></pre></div>
+            <p>In these statements, <code>myTeam</code> must denote a team instance. 
+               		For the time of executing this block, this team instance is activated for the current thread, 
+               		which has entered the within block.
+               			
+            </p>
+            <p>The <code>within</code> block statement guarantees that it leaves
+               		the team in exactly the same activation state as it was in when
+               		entering this block. This includes the cases of exceptions, meaning
+               		that deactivation will also occur if the execution of the block
+               		terminates abnormally.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.b.html" rel="next">&sect;5.2.(b)&nbsp;Imperative activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.b.html
new file mode 100644
index 0000000..f2bfcb7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.b.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2.(a)&nbsp;Activation block</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.c.html" rel="next">&sect;5.2.(c)&nbsp;Multiple and mixed activations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+         <div class="subsect depth3" id="s5.2.b">
+            <h4 class="subsect">&sect;5.2.(b)&nbsp;<span class="title">Imperative activation</span></h4>
+            <p>Each team class implicitly provides methods from the predefined interface 
+               		<code>org.objectteams.ITeam</code> (super interface of all team classes) to control team 
+               		activation disregarding the block structure of the program. The methods <code>activate()</code> 
+               		and <code>deactivate()</code> are used to activate and deactivate a team instance for 
+               		the current thread.<br />
+               If a team should be de-/activated for another thread this can be done by the methods 
+               <code>activate(Thread aThread)</code> and <code>deactivate(Thread aThread)</code>. 
+               In order to achieve global activation for all threads the predefined constant 
+               <code>org.objectteams.Team.ALL_THREADS</code> is passed to these methods (e.g. 
+               <code>activate(Team.ALL_THREADS)</code>).<br />
+               Note, that this methods make no guarantees with respect to exceptions.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2.(a)&nbsp;Activation block</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.2.c.html" rel="next">&sect;5.2.(c)&nbsp;Multiple and mixed activations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.c.html
new file mode 100644
index 0000000..285a8bb
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.c.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2.(b)&nbsp;Imperative activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+         <div class="subsect depth3" id="s5.2.c">
+            <h4 class="subsect">&sect;5.2.(c)&nbsp;<span class="title">Multiple and mixed activations</span></h4>
+            <ul>
+               <li>If <code>activate()</code> is invoked on a team instance
+                  				    that has been explicitly activated before, this statement has
+                  				    no effect at all (note the difference in <a href="s5.3.a.html" title="&sect;5.3.(a)&nbsp;Team level methods"
+                     class="sect">&sect;5.3.(a)</a> below).
+                  				    <br />
+                  				    The same applies to deactivating an inactive team.
+               </li>
+               <li>If a team was already active when entering a <code>within</code>
+                  					block, it will remain active after leaving the block.
+               </li>
+               <li>If the team was active on entry of a <code>within</code> block
+                  					and if <code>deactivate()</code> is invoked on the same team
+                  					instance from within the <code>within</code> block,
+                  					leaving the block will re-activate the team.
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2.(b)&nbsp;Imperative activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.2.html" rel="section">&sect;5.2&nbsp;Explicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.html
new file mode 100644
index 0000000..779920e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.2.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.1&nbsp;Effect of team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.html" rel="next">&sect;5.3&nbsp;Implicit team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="sect depth2" id="s5.2">
+            <h2 class="sect">&sect;5.2&nbsp;Explicit team activation</h2>
+            <div class="subsect depth3" id="s5.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Activation block</span></h4>
+               <p>A team can be activated thread local by the block construct</p>
+               <div class="listing plain"><pre><b>within</b> (myTeam) { <i>stmts</i> }</pre></div>
+               <p>If <em>stmts</em> has only one statement this can be abbreviated to
+               </p>
+               <div class="listing plain"><pre><b>within</b> (myTeam) <i>stmt</i></pre></div>
+               <p>In these statements, <code>myTeam</code> must denote a team instance. 
+                  		For the time of executing this block, this team instance is activated for the current thread, 
+                  		which has entered the within block.
+                  			
+               </p>
+               <p>The <code>within</code> block statement guarantees that it leaves
+                  		the team in exactly the same activation state as it was in when
+                  		entering this block. This includes the cases of exceptions, meaning
+                  		that deactivation will also occur if the execution of the block
+                  		terminates abnormally.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Imperative activation</span></h4>
+               <p>Each team class implicitly provides methods from the predefined interface 
+                  		<code>org.objectteams.ITeam</code> (super interface of all team classes) to control team 
+                  		activation disregarding the block structure of the program. The methods <code>activate()</code> 
+                  		and <code>deactivate()</code> are used to activate and deactivate a team instance for 
+                  		the current thread.<br />
+                  If a team should be de-/activated for another thread this can be done by the methods 
+                  <code>activate(Thread aThread)</code> and <code>deactivate(Thread aThread)</code>. 
+                  In order to achieve global activation for all threads the predefined constant 
+                  <code>org.objectteams.Team.ALL_THREADS</code> is passed to these methods (e.g. 
+                  <code>activate(Team.ALL_THREADS)</code>).<br />
+                  Note, that this methods make no guarantees with respect to exceptions.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Multiple and mixed activations</span></h4>
+               <ul>
+                  <li>If <code>activate()</code> is invoked on a team instance
+                     				    that has been explicitly activated before, this statement has
+                     				    no effect at all (note the difference in <a href="s5.3.a.html" title="&sect;5.3.(a)&nbsp;Team level methods"
+                        class="sect">&sect;5.3.(a)</a> below).
+                     				    <br />
+                     				    The same applies to deactivating an inactive team.
+                  </li>
+                  <li>If a team was already active when entering a <code>within</code>
+                     					block, it will remain active after leaving the block.
+                  </li>
+                  <li>If the team was active on entry of a <code>within</code> block
+                     					and if <code>deactivate()</code> is invoked on the same team
+                     					instance from within the <code>within</code> block,
+                     					leaving the block will re-activate the team.
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.1&nbsp;Effect of team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.html" rel="next">&sect;5.3&nbsp;Implicit team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.a.html
new file mode 100644
index 0000000..d1b6ee7
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.a.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.b.html" rel="next">&sect;5.3.(b)&nbsp;Methods of externalized roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="subsect depth3" id="s5.3.a">
+            <h4 class="subsect">&sect;5.3.(a)&nbsp;<span class="title">Team level methods</span></h4>
+            <p>While executing a <strong>team level method</strong>, the target team
+               	    is always active. Activation is reset to the previous state
+               	    when leaving the team method, unless the team has been explicitly activated during
+               	    execution of the team method by a call to <code>activate()</code>.
+               	    Explicit activation is stronger than implicit activation and thus persists after the
+               	    team level method terminates. Ie., leaving a team level method will never reset
+               	    an explicit activation.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.b.html" rel="next">&sect;5.3.(b)&nbsp;Methods of externalized roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.b.html
new file mode 100644
index 0000000..5b0b051
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.b.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(a)&nbsp;Team level methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.c.html" rel="next">&sect;5.3.(c)&nbsp;Nested teams&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="subsect depth3" id="s5.3.b">
+            <h4 class="subsect">&sect;5.3.(b)&nbsp;<span class="title">Methods of externalized roles</span></h4>
+            <p>Invoking a method on an <strong>externalized role</strong>
+               	    (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) also has the
+               	    effect of temporary activation of the team containing the role for the current thread.
+               	    Regarding deactivation the rule of <a href="s5.3.a.html" title="&sect;5.3.(a)&nbsp;Team level methods"
+                  class="sect">&sect;5.3.(a)</a> above applies accordingly.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(a)&nbsp;Team level methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.c.html" rel="next">&sect;5.3.(c)&nbsp;Nested teams&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.c.html
new file mode 100644
index 0000000..107c986
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.c.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(b)&nbsp;Methods of externalized roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.d.html" rel="next">&sect;5.3.(d)&nbsp;Configuring implicit activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="subsect depth3" id="s5.3.c">
+            <h4 class="subsect">&sect;5.3.(c)&nbsp;<span class="title">Nested teams</span></h4>
+            <p>Implicit activation has additional consequences for nested teams 
+               		(see <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>):
+               
+            </p>
+            <ul>
+               <li>Implicit activation of a team causes the activation of its outer teams.</li>
+               <li>Implicit deactivation of a team causes the deactivation of its inner teams.</li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.3.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(b)&nbsp;Methods of externalized roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.3.d.html" rel="next">&sect;5.3.(d)&nbsp;Configuring implicit activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.d.html
new file mode 100644
index 0000000..cfea9a8
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.d.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(c)&nbsp;Nested teams</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+         <div class="subsect depth3" id="s5.3.d">
+            <h4 class="subsect">&sect;5.3.(d)&nbsp;<span class="title">Configuring implicit activation</span></h4>
+            <p>Implicit activation is disabled by default and can be enabled by adding the annotation
+               				<code>@org.objectteams.ImplicitTeamActivation</code>, which can be applied to a type or a method.
+               				When applied to a method it is ensured that invoking this method will trigger implicit activation.
+               				When the annotation is applied to a type this has the same effect as applying it to all externally
+               				visible methods of the type. Member types are not affected and have to be annotated separately.
+            </p>
+            <p>The runtime environment can be configured globally by defining the system property 
+               				<code>ot.implicit.team.activation</code> to one of these values:
+            </p>
+            <dl>
+               <dt>NEVER</dt>
+               <dd>Implicit activation is completely disabled.</dd>
+               <dt>ANNOTATED</dt>
+               <dd>This is the default: implicit activation applies only where declared by <code>@ImplicitTeamActivation</code>.
+               </dd>
+               <dt>ALWAYS</dt>
+               <dd>Implicit activation applies to all externally visible methods (this was the default in OTJLD versions &le;1.2)</dd>
+            </dl>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.3.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3.(c)&nbsp;Nested teams</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.3.html" rel="section">&sect;5.3&nbsp;Implicit team activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.html
new file mode 100644
index 0000000..04e0627
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.3.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.2.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2&nbsp;Explicit team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.html" rel="next">&sect;5.4&nbsp;Guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="sect depth2" id="s5.3">
+            <h2 class="sect">&sect;5.3&nbsp;Implicit team activation</h2>
+            <p>Implicit team activation is intended to ensure that
+               	whenever the control flow is passed to a team or one of its roles,
+               	the team is implicitly activated for the current thread.
+               Implicit activation can be configured at different levels (see <a href="#s5.3.d" title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                  class="sect">&sect;5.3.(d)</a>).
+               	
+            </p>
+            <p>When implicit activation is enabled a programmer may assume,
+               that whenever a role forwards calls to its base object via callout,
+               the callin bindings of the same role will be active at that time.
+               Exceptions to this rule have to be programmed explicitly.
+               		
+            </p>
+            <div class="subsect depth3" id="s5.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Team level methods</span></h4>
+               <p>While executing a <strong>team level method</strong>, the target team
+                  	    is always active. Activation is reset to the previous state
+                  	    when leaving the team method, unless the team has been explicitly activated during
+                  	    execution of the team method by a call to <code>activate()</code>.
+                  	    Explicit activation is stronger than implicit activation and thus persists after the
+                  	    team level method terminates. Ie., leaving a team level method will never reset
+                  	    an explicit activation.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Methods of externalized roles</span></h4>
+               <p>Invoking a method on an <strong>externalized role</strong>
+                  	    (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) also has the
+                  	    effect of temporary activation of the team containing the role for the current thread.
+                  	    Regarding deactivation the rule of <a href="#s5.3.a" title="&sect;5.3.(a)&nbsp;Team level methods" class="sect">&sect;5.3.(a)</a> above applies accordingly.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.3.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Nested teams</span></h4>
+               <p>Implicit activation has additional consequences for nested teams 
+                  		(see <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>):
+                  
+               </p>
+               <ul>
+                  <li>Implicit activation of a team causes the activation of its outer teams.</li>
+                  <li>Implicit deactivation of a team causes the deactivation of its inner teams.</li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="s5.3.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Configuring implicit activation</span></h4>
+               <p>Implicit activation is disabled by default and can be enabled by adding the annotation
+                  				<code>@org.objectteams.ImplicitTeamActivation</code>, which can be applied to a type or a method.
+                  				When applied to a method it is ensured that invoking this method will trigger implicit activation.
+                  				When the annotation is applied to a type this has the same effect as applying it to all externally
+                  				visible methods of the type. Member types are not affected and have to be annotated separately.
+               </p>
+               <p>The runtime environment can be configured globally by defining the system property 
+                  				<code>ot.implicit.team.activation</code> to one of these values:
+               </p>
+               <dl>
+                  <dt>NEVER</dt>
+                  <dd>Implicit activation is completely disabled.</dd>
+                  <dt>ANNOTATED</dt>
+                  <dd>This is the default: implicit activation applies only where declared by <code>@ImplicitTeamActivation</code>.
+                  </dd>
+                  <dt>ALWAYS</dt>
+                  <dd>Implicit activation applies to all externally visible methods (this was the default in OTJLD versions &le;1.2)</dd>
+               </dl>
+            </div>
+            <p>Note that among the different mechanisms for activation, <code>within</code> is strongest, 
+               	followed by <code>(de)activate()</code>, weakest is implicit activation. In this sense, 
+               	explicit imperative (de)activation may override the block structure of implicit activation 
+               	(by explicit activation within a team level method), but not that of a <code>within</code> 
+               	block (by deactivation from a within block).
+               		
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.2.html" rel="prev">&lt;&lt;&nbsp;&sect;5.2&nbsp;Explicit team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.html" rel="next">&sect;5.4&nbsp;Guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.a.html
new file mode 100644
index 0000000..8a0473c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.a.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.b.html" rel="next">&sect;5.4.1.(b)&nbsp;Method guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="subsect depth4" id="s5.4.1.a">
+            <h4 class="subsect">&sect;5.4.1.(a)&nbsp;<span class="title">Method binding guards</span></h4>
+            <p>A guard may be attached to a callin method binding as in:
+               				
+            </p>
+            <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir) <b>&lt;-</b> <b>after</b> <b>void</b> baseMethod(<b>int</b> ib)
+  <b>when</b> (ir &gt; MyTeam.this.threshold);</pre></div>
+            <p>Such a guard only affects the callin binding to which it is attached, 
+               			i.e., this specific callin binding is only effective, 
+               			if the predicate evaluates to <code>true</code>.
+               			<br />
+               			The following values are within the scope of the predicate expression, 
+               			and thus can be used to express the condition:
+               				
+            </p>
+            <ul>
+               <li>The role instance denoted by <code>this</code>.<br />
+                  				Features of the role instance can also be accessed relative to
+                  				<code>this</code> with or without explicit qualifying <code>this</code>.
+                  					
+               </li>
+               <li>The team instance denoted by a qualified this reference as in 
+                  				<code>MyTeam.this</code>.
+                  					
+               </li>
+               <li>If the callin binding includes signatures (as in the example above): 
+                  				Parameters of the role method.<br />
+                  				If parameter mappings are involved, they will be evaluated before evaluating the guard.
+                  					
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.b.html" rel="next">&sect;5.4.1.(b)&nbsp;Method guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.b.html
new file mode 100644
index 0000000..f4e530a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.b.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(a)&nbsp;Method binding guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.c.html" rel="next">&sect;5.4.1.(c)&nbsp;Role level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="subsect depth4" id="s5.4.1.b">
+            <h4 class="subsect">&sect;5.4.1.(b)&nbsp;<span class="title">Method guards</span></h4>
+            <p>A method guard is similar to a method binding guard, but it applies 
+               			to all callin method bindings of this method.<br />
+               			A method guard is declared between the method signature and the method body:
+               				
+            </p>
+            <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir)
+  <b>when</b> (ir &gt; MyTeam.this.threshold) { <i>body statements</i> }</pre></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(a)&nbsp;Method binding guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.c.html" rel="next">&sect;5.4.1.(c)&nbsp;Role level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.c.html
new file mode 100644
index 0000000..436e205
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.c.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(b)&nbsp;Method guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.d.html" rel="next">&sect;5.4.1.(d)&nbsp;Team level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="subsect depth4" id="s5.4.1.c">
+            <h4 class="subsect">&sect;5.4.1.(c)&nbsp;<span class="title">Role level guards</span></h4>
+            <p>When a guard is specified at the role level, i.e., directly before the 
+               			class body of a role class, it applies to all callin method bindings of 
+               			the role class:
+               				
+            </p>
+            <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole
+  <b>when</b> (value &gt; MyTeam.this.threshold)
+{
+    <b>int</b> value;
+    <i>other <b>class</b> body declarations</i>
+}</pre></div>
+            <p>The following values are within the scope of the predicate expression:
+               				
+            </p>
+            <ul>
+               <li>The role instance denoted by <code>this</code> (explicit or implicit, see above). 
+                  				Thus, in the example <code>value</code> will be interpreted as a field of the enclosing role.
+                  					
+               </li>
+               <li>The team instance denoted by a qualified this reference as in <code>MyTeam.this</code></li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(b)&nbsp;Method guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.d.html" rel="next">&sect;5.4.1.(d)&nbsp;Team level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.d.html
new file mode 100644
index 0000000..ee609f5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.d.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(c)&nbsp;Role level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+         <div class="subsect depth4" id="s5.4.1.d">
+            <h4 class="subsect">&sect;5.4.1.(d)&nbsp;<span class="title">Team level guards</span></h4>
+            <p>A guard specified in the header of a team class may disable the callin 
+               			bindings of all contained role classes. The syntax corresponds to the syntax 
+               			of role level guards.<br />
+               			The only value directly available within team level guard is the 
+               			team instance (denoted by <code>this</code>) and its features.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.1.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1.(c)&nbsp;Role level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.1.html" rel="section">&sect;5.4.1&nbsp;Regular guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.html
new file mode 100644
index 0000000..76bb929
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.1.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(c)&nbsp;Exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.html" rel="next">&sect;5.4.2&nbsp;Base guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="sect depth3" id="s5.4.1">
+            <h3 class="sect">&sect;5.4.1&nbsp;Regular guards</h3>
+            <p>This group of guards evaluates within the context of a given role. 
+               		These guards are evaluated <em>after</em> a callin target is lifted and 
+               		<em>before</em> a callin bound role method is invoked.
+               			
+            </p>
+            <div class="subsect depth4" id="s5.4.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Method binding guards</span></h4>
+               <p>A guard may be attached to a callin method binding as in:
+                  				
+               </p>
+               <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir) <b>&lt;-</b> <b>after</b> <b>void</b> baseMethod(<b>int</b> ib)
+  <b>when</b> (ir &gt; MyTeam.this.threshold);</pre></div>
+               <p>Such a guard only affects the callin binding to which it is attached, 
+                  			i.e., this specific callin binding is only effective, 
+                  			if the predicate evaluates to <code>true</code>.
+                  			<br />
+                  			The following values are within the scope of the predicate expression, 
+                  			and thus can be used to express the condition:
+                  				
+               </p>
+               <ul>
+                  <li>The role instance denoted by <code>this</code>.<br />
+                     				Features of the role instance can also be accessed relative to
+                     				<code>this</code> with or without explicit qualifying <code>this</code>.
+                     					
+                  </li>
+                  <li>The team instance denoted by a qualified this reference as in 
+                     				<code>MyTeam.this</code>.
+                     					
+                  </li>
+                  <li>If the callin binding includes signatures (as in the example above): 
+                     				Parameters of the role method.<br />
+                     				If parameter mappings are involved, they will be evaluated before evaluating the guard.
+                     					
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth4" id="s5.4.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Method guards</span></h4>
+               <p>A method guard is similar to a method binding guard, but it applies 
+                  			to all callin method bindings of this method.<br />
+                  			A method guard is declared between the method signature and the method body:
+                  				
+               </p>
+               <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir)
+  <b>when</b> (ir &gt; MyTeam.this.threshold) { <i>body statements</i> }</pre></div>
+            </div>
+            <div class="subsect depth4" id="s5.4.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Role level guards</span></h4>
+               <p>When a guard is specified at the role level, i.e., directly before the 
+                  			class body of a role class, it applies to all callin method bindings of 
+                  			the role class:
+                  				
+               </p>
+               <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole
+  <b>when</b> (value &gt; MyTeam.this.threshold)
+{
+    <b>int</b> value;
+    <i>other <b>class</b> body declarations</i>
+}</pre></div>
+               <p>The following values are within the scope of the predicate expression:
+                  				
+               </p>
+               <ul>
+                  <li>The role instance denoted by <code>this</code> (explicit or implicit, see above). 
+                     				Thus, in the example <code>value</code> will be interpreted as a field of the enclosing role.
+                     					
+                  </li>
+                  <li>The team instance denoted by a qualified this reference as in <code>MyTeam.this</code></li>
+               </ul>
+            </div>
+            <div class="subsect depth4" id="s5.4.1.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Team level guards</span></h4>
+               <p>A guard specified in the header of a team class may disable the callin 
+                  			bindings of all contained role classes. The syntax corresponds to the syntax 
+                  			of role level guards.<br />
+                  			The only value directly available within team level guard is the 
+                  			team instance (denoted by <code>this</code>) and its features.
+                  				
+               </p>
+            </div>
+            <p>Of course all guards can also access any visible static feature of a visible class.
+               			
+            </p>
+            <p>Even if a guard has no direct effect, because, e.g., a role class has no callin 
+               		bindings (maybe not even a role-base binding), predicates at such abstract 
+               		levels are useful, because all predicates are inherited by all sub classes 
+               		(explicit and implicit).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(c)&nbsp;Exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.html" rel="next">&sect;5.4.2&nbsp;Base guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.a.html
new file mode 100644
index 0000000..99dfebc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.b.html" rel="next">&sect;5.4.2.(b)&nbsp;Method binding guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.a">
+            <h4 class="subsect">&sect;5.4.2.(a)&nbsp;<span class="title">Base object reference</span></h4>
+            <p>In all base guard predicates the special identifier <code>base</code> 
+               			can be used to denote the base object that is about to be lifted.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.b.html" rel="next">&sect;5.4.2.(b)&nbsp;Method binding guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.b.html
new file mode 100644
index 0000000..0ef3ff3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.b.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(a)&nbsp;Base object reference</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.c.html" rel="next">&sect;5.4.2.(c)&nbsp;Method guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.b">
+            <h4 class="subsect">&sect;5.4.2.(b)&nbsp;<span class="title">Method binding guards</span></h4>
+            <p>A base method binding guard may access parameters as passed to the
+               			base method. Parameter mappings are not considered.<br />
+               Additionally, for <code>after</code> callin bindings, the identifier <code>result</code> 
+               may be used to refer to the result of the base method (if any).
+               				
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               <p>In order to achieve the same effect of accessing
+                  	the base method's result, a regular binding guard (not a base guard)
+                  	must use a suitable parameter mapping (see <a href="s4.4.c.html"
+                     title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                     class="sect">&sect;4.4.(c)</a>).
+                  					
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(a)&nbsp;Base object reference</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.c.html" rel="next">&sect;5.4.2.(c)&nbsp;Method guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.c.html
new file mode 100644
index 0000000..87bb82e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(b)&nbsp;Method binding guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.d.html" rel="next">&sect;5.4.2.(d)&nbsp;Role level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.c">
+            <h4 class="subsect">&sect;5.4.2.(c)&nbsp;<span class="title">Method guards</span></h4>
+            <p>In contrast to regular method guards, a <em>base</em> guard attached to a role method 
+               			cannot access any method parameters. See the next item (d) for values that are actually in scope.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(b)&nbsp;Method binding guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.d.html" rel="next">&sect;5.4.2.(d)&nbsp;Role level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.d.html
new file mode 100644
index 0000000..8addfdd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.d.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(c)&nbsp;Method guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.e.html" rel="next">&sect;5.4.2.(e)&nbsp;Team level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.d">
+            <h4 class="subsect">&sect;5.4.2.(d)&nbsp;<span class="title">Role level guards</span></h4>
+            <p>Role level base guards may use these values:
+               				
+            </p>
+            <ul>
+               <li>The base instance using the special identifier <code>base</code>.
+               </li>
+               <li>The team instance using a qualified this references (<code>MyTeam.this</code>).
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(c)&nbsp;Method guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.e.html" rel="next">&sect;5.4.2.(e)&nbsp;Team level guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.e.html
new file mode 100644
index 0000000..36a3ee3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.e.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(d)&nbsp;Role level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.f.html" rel="next">&sect;5.4.2.(f)&nbsp;Unbound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.e">
+            <h4 class="subsect">&sect;5.4.2.(e)&nbsp;<span class="title">Team level guards</span></h4>
+            <p>Team level base guards have the same scope as role level base guards (d). 
+               			However, the type of the role instance is not known here, i.e., here <code>base</code> 
+               			has the static type <code>java.lang.Object</code>.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(d)&nbsp;Role level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.2.f.html" rel="next">&sect;5.4.2.(f)&nbsp;Unbound roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.f.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.f.html
new file mode 100644
index 0000000..8d12980
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.f.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(e)&nbsp;Team level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+         <div class="subsect depth4" id="s5.4.2.f">
+            <h4 class="subsect">&sect;5.4.2.(f)&nbsp;<span class="title">Unbound roles</span></h4>
+            <p>In contrast to regular guards, base guards cannot be attached to
+               	unbound role classes nor to their methods.<br />
+               	Only team level base guards are independent of role binding.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.e.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2.(e)&nbsp;Team level guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.2.html" rel="section">&sect;5.4.2&nbsp;Base guards</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.html
new file mode 100644
index 0000000..995e54c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.2.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1&nbsp;Regular guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.3.html" rel="next">&sect;5.4.3&nbsp;Multiple guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="sect depth3" id="s5.4.2">
+            <h3 class="sect">&sect;5.4.2&nbsp;Base guards</h3>
+            <p>The intention behind base guards is to prevent lifting of a callin-target
+               		if a guard evaluates to <code>false</code> and thus refuses to invoke the
+               		callin bound role method. Using base guards it is easier to prevent any
+               		side-effects caused by a callin binding, because lifting could cause side-effects
+               		at two levels:
+               			
+            </p>
+            <ul>
+               <li>Creating a role on-demand already is a side-effect (observable e.g.
+                  			by the reflective function <code><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">hasRole (&sect;6.1)</a></code>)
+                  				
+               </li>
+               <li>Role creation triggers execution of a role constructor 
+                  			(see <a href="s2.3.1.c.html"
+                     title="&sect;2.3.1.(c)&nbsp;Custom lifting constructor"
+                     class="sect">custom lifting constructor (&sect;2.3.1.(c))</a>) 
+                  			which could produce arbitrary side-effects.
+                  				
+               </li>
+            </ul>
+            <p>Both kinds of side-effects can be avoided using a base guard which prevents
+               		unnecessary lifting.
+               			
+            </p>
+            <p>Any guard (5.4.1 (b)-(e)) can be turned into a base guard by adding 
+               		the modifier <code>base</code> as in:
+               			
+            </p>
+            <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase
+  <em><b>base</b> when</em> (base.value &gt; MyTeam.this.threshold)
+{
+    <i><b>class</b> body declarations</i>
+}</pre></div>
+            <p>However, different scoping rules apply for the identifiers 
+               		that can be used in a base guard:
+               			
+            </p>
+            <div class="subsect depth4" id="s5.4.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Base object reference</span></h4>
+               <p>In all base guard predicates the special identifier <code>base</code> 
+                  			can be used to denote the base object that is about to be lifted.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s5.4.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Method binding guards</span></h4>
+               <p>A base method binding guard may access parameters as passed to the
+                  			base method. Parameter mappings are not considered.<br />
+                  Additionally, for <code>after</code> callin bindings, the identifier <code>result</code> 
+                  may be used to refer to the result of the base method (if any).
+                  				
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  <p>In order to achieve the same effect of accessing
+                     	the base method's result, a regular binding guard (not a base guard)
+                     	must use a suitable parameter mapping (see <a href="s4.4.c.html"
+                        title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                        class="sect">&sect;4.4.(c)</a>).
+                     					
+                  </p>
+               </div>
+            </div>
+            <div class="subsect depth4" id="s5.4.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Method guards</span></h4>
+               <p>In contrast to regular method guards, a <em>base</em> guard attached to a role method 
+                  			cannot access any method parameters. See the next item (d) for values that are actually in scope.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s5.4.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Role level guards</span></h4>
+               <p>Role level base guards may use these values:
+                  				
+               </p>
+               <ul>
+                  <li>The base instance using the special identifier <code>base</code>.
+                  </li>
+                  <li>The team instance using a qualified this references (<code>MyTeam.this</code>).
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth4" id="s5.4.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Team level guards</span></h4>
+               <p>Team level base guards have the same scope as role level base guards (d). 
+                  			However, the type of the role instance is not known here, i.e., here <code>base</code> 
+                  			has the static type <code>java.lang.Object</code>.
+                  				
+               </p>
+            </div>
+            <div class="subsect depth4" id="s5.4.2.f">
+               <h4 class="subsect">(f)&nbsp;<span class="title">Unbound roles</span></h4>
+               <p>In contrast to regular guards, base guards cannot be attached to
+                  	unbound role classes nor to their methods.<br />
+                  	Only team level base guards are independent of role binding.
+                  				
+               </p>
+            </div><img src="../images/guards.png" alt="Overview: Guard predicates" /></div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.1.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.1&nbsp;Regular guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.3.html" rel="next">&sect;5.4.3&nbsp;Multiple guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.3.html
new file mode 100644
index 0000000..b9f8243
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.3.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2&nbsp;Base guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="sect depth3" id="s5.4.3">
+            <h3 class="sect">&sect;5.4.3&nbsp;Multiple guards</h3>
+            <p>Due to the different ranges of applicability different guards may affect the same method binding. 
+               		In that case all applicable guards are conjoined using a logical <code>and</code>.<br />
+               Any guard is interpreted as the conjunction of these predicates (if present):
+               			
+            </p>
+            <ul>
+               <li>The direct predicate expression of the guard.</li>
+               <li>The next outer guard along the chain 
+                  			<em>method binding -&gt; method -&gt; role level -&gt; team level</em></li>
+               <li>The guard at the same level that is inherited from the <em>implicit</em> super role.
+               </li>
+               <li>The guard at the same level that is inherited from the <em>explicit</em> super role.
+               </li>
+            </ul>
+            <h5 class="listing">Example code (Guard Predicates):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> ATM {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>private</b> Bank myBank;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> ForeignAccount <b>playedBy</b> Account</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <em><b>base</b> when</em> (!ATM.this.myBank.equals(<em>base</em>.getBank()))</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    <b>callin</b> <b>void</b> debitWithFee(<b>int</b> amount) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>      base.debitWithFee(fee+amount);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    <b>void</b> debitWithFee(<b>int</b> i) <b>&lt;-</b> <b>replace</b> <b>void</b> debit(<b>int</b> amount)</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>      <em><b>base</b> when</em> (amount &lt; 1000);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               				The team in this example causes that an additional fee has to be payed while debiting 
+               				less than 1000 Euros from a "foreign" account.
+               				
+               <ul>
+                  <li>The base guard in line 4 ensures that <code>Account</code> objects only get 
+                     				<code>ForeignAccount</code> roles, if they belong to a different bank than the 
+                     				surrounding <code>ATM</code> team.<br />
+                     				It accesses the bank of the base via the <code>base</code> identifier.
+                     					
+                  </li>
+                  <li>The method binding guard in line 10 restricts the callin to 
+                     				<code>debitWithFee</code> to calls where the base method argument 
+                     				<code>amount</code> is lower than 1000.
+                     					
+                  </li>
+                  <li>A call to <code>Account.debit</code> causes a replace callin to 
+                     				<code>debitWithFee</code><em> only</em> if <em>both</em> predicates evaluate to true.
+                     					
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.2.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.2&nbsp;Base guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.a.html
new file mode 100644
index 0000000..3e8a3d6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.a.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.b.html" rel="next">&sect;5.4.(b)&nbsp;No side effects&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="subsect depth3" id="s5.4.a">
+            <h4 class="subsect">&sect;5.4.(a)&nbsp;<span class="title">General syntax for guards</span></h4>
+            <p>A guard is declared using the keyword <code>when</code> followed by a 
+               		boolean expression in parentheses:
+               			
+            </p>
+            <div class="listing plain"><pre><em><b>when</b> (</em><i>predicateExpression</i><em>)</em></pre></div>
+            <p>Depending on the kind of guard different objects are in scope using
+               special identifiers like <code>this</code>, <code>base</code>.<br />
+               Any predicate expression that evaluates to <code>true</code> enables
+               the callin binding(s) to which it applies.
+               Evaluation to <code>false</code> disables the callin binding(s).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.b.html" rel="next">&sect;5.4.(b)&nbsp;No side effects&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.b.html
new file mode 100644
index 0000000..90198ae
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(a)&nbsp;General syntax for guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.c.html" rel="next">&sect;5.4.(c)&nbsp;Exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="subsect depth3" id="s5.4.b">
+            <h4 class="subsect">&sect;5.4.(b)&nbsp;<span class="title">No side effects</span></h4>
+            <p>A guard predicate should have no side effects. 
+               			   A compiler should optionally check this condition, but inter-procedural analysis
+               			   actually depends on the availability of appropriate means to mark any method as side-effect free.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.a.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(a)&nbsp;General syntax for guards</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.c.html" rel="next">&sect;5.4.(c)&nbsp;Exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.c.html
new file mode 100644
index 0000000..f8a33e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.c.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(b)&nbsp;No side effects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.html" rel="next">&sect;5.4.1&nbsp;Regular guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+         <div class="subsect depth3" id="s5.4.c">
+            <h4 class="subsect">&sect;5.4.(c)&nbsp;<span class="title">Exceptions</span></h4>
+            <p>A guard predicate should not throw any exceptions. 
+               			   Yet, any exception thrown within a guard predicate cause the guard to evaluate to <code>false</code> 
+               			   rather than propagating the exception, meaning that the evaluation of a guard predicate will never
+               			   interrupt the current base behaviour.<br />
+               			   A compiler should flag any checked exception that is thrown within a guard.
+               			   Such diagnosis should by default be treated as an error, with the option of configuring
+               			   its severity to warning or ignore.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.b.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4.(b)&nbsp;No side effects</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.4.1.html" rel="next">&sect;5.4.1&nbsp;Regular guards&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s5.4.html" rel="section">&sect;5.4&nbsp;Guard predicates</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.html
new file mode 100644
index 0000000..6dddcdf
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.4.html
@@ -0,0 +1,376 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.3.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3&nbsp;Implicit team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.5.html" rel="next">&sect;5.5&nbsp;Unanticipated team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="sect depth2" id="s5.4">
+            <h2 class="sect">&sect;5.4&nbsp;Guard predicates</h2>
+            <div class="syntaxlink"><a href="sA.7.html" title="&sect;A.7&nbsp;Guard predicates" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.7</a></div>
+            <p>The effect of callins can further be controlled using so called guard predicates. 
+               	Guards appear at four different levels:
+               		
+            </p>
+            <ul>
+               <li>callin method binding</li>
+               <li>role method</li>
+               <li>role class</li>
+               <li>team class</li>
+            </ul>
+            <p>Guards can be specified as <em>regular</em> guards or <code>base</code> guards, 
+               	which affects the exact point in the control flow, where the guard will be evaluated.
+               		
+            </p>
+            <div class="subsect depth3" id="s5.4.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">General syntax for guards</span></h4>
+               <p>A guard is declared using the keyword <code>when</code> followed by a 
+                  		boolean expression in parentheses:
+                  			
+               </p>
+               <div class="listing plain"><pre><em><b>when</b> (</em><i>predicateExpression</i><em>)</em></pre></div>
+               <p>Depending on the kind of guard different objects are in scope using
+                  special identifiers like <code>this</code>, <code>base</code>.<br />
+                  Any predicate expression that evaluates to <code>true</code> enables
+                  the callin binding(s) to which it applies.
+                  Evaluation to <code>false</code> disables the callin binding(s).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.4.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">No side effects</span></h4>
+               <p>A guard predicate should have no side effects. 
+                  			   A compiler should optionally check this condition, but inter-procedural analysis
+                  			   actually depends on the availability of appropriate means to mark any method as side-effect free.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s5.4.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Exceptions</span></h4>
+               <p>A guard predicate should not throw any exceptions. 
+                  			   Yet, any exception thrown within a guard predicate cause the guard to evaluate to <code>false</code> 
+                  			   rather than propagating the exception, meaning that the evaluation of a guard predicate will never
+                  			   interrupt the current base behaviour.<br />
+                  			   A compiler should flag any checked exception that is thrown within a guard.
+                  			   Such diagnosis should by default be treated as an error, with the option of configuring
+                  			   its severity to warning or ignore.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s5.4.1">
+               <h3 class="sect">&sect;5.4.1&nbsp;Regular guards<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5.4</a></span></h3>
+               <p>This group of guards evaluates within the context of a given role. 
+                  		These guards are evaluated <em>after</em> a callin target is lifted and 
+                  		<em>before</em> a callin bound role method is invoked.
+                  			
+               </p>
+               <div class="subsect depth4" id="s5.4.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Method binding guards</span></h4>
+                  <p>A guard may be attached to a callin method binding as in:
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir) <b>&lt;-</b> <b>after</b> <b>void</b> baseMethod(<b>int</b> ib)
+  <b>when</b> (ir &gt; MyTeam.this.threshold);</pre></div>
+                  <p>Such a guard only affects the callin binding to which it is attached, 
+                     			i.e., this specific callin binding is only effective, 
+                     			if the predicate evaluates to <code>true</code>.
+                     			<br />
+                     			The following values are within the scope of the predicate expression, 
+                     			and thus can be used to express the condition:
+                     				
+                  </p>
+                  <ul>
+                     <li>The role instance denoted by <code>this</code>.<br />
+                        				Features of the role instance can also be accessed relative to
+                        				<code>this</code> with or without explicit qualifying <code>this</code>.
+                        					
+                     </li>
+                     <li>The team instance denoted by a qualified this reference as in 
+                        				<code>MyTeam.this</code>.
+                        					
+                     </li>
+                     <li>If the callin binding includes signatures (as in the example above): 
+                        				Parameters of the role method.<br />
+                        				If parameter mappings are involved, they will be evaluated before evaluating the guard.
+                        					
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth4" id="s5.4.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Method guards</span></h4>
+                  <p>A method guard is similar to a method binding guard, but it applies 
+                     			to all callin method bindings of this method.<br />
+                     			A method guard is declared between the method signature and the method body:
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir)
+  <b>when</b> (ir &gt; MyTeam.this.threshold) { <i>body statements</i> }</pre></div>
+               </div>
+               <div class="subsect depth4" id="s5.4.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Role level guards</span></h4>
+                  <p>When a guard is specified at the role level, i.e., directly before the 
+                     			class body of a role class, it applies to all callin method bindings of 
+                     			the role class:
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole
+  <b>when</b> (value &gt; MyTeam.this.threshold)
+{
+    <b>int</b> value;
+    <i>other <b>class</b> body declarations</i>
+}</pre></div>
+                  <p>The following values are within the scope of the predicate expression:
+                     				
+                  </p>
+                  <ul>
+                     <li>The role instance denoted by <code>this</code> (explicit or implicit, see above). 
+                        				Thus, in the example <code>value</code> will be interpreted as a field of the enclosing role.
+                        					
+                     </li>
+                     <li>The team instance denoted by a qualified this reference as in <code>MyTeam.this</code></li>
+                  </ul>
+               </div>
+               <div class="subsect depth4" id="s5.4.1.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Team level guards</span></h4>
+                  <p>A guard specified in the header of a team class may disable the callin 
+                     			bindings of all contained role classes. The syntax corresponds to the syntax 
+                     			of role level guards.<br />
+                     			The only value directly available within team level guard is the 
+                     			team instance (denoted by <code>this</code>) and its features.
+                     				
+                  </p>
+               </div>
+               <p>Of course all guards can also access any visible static feature of a visible class.
+                  			
+               </p>
+               <p>Even if a guard has no direct effect, because, e.g., a role class has no callin 
+                  		bindings (maybe not even a role-base binding), predicates at such abstract 
+                  		levels are useful, because all predicates are inherited by all sub classes 
+                  		(explicit and implicit).
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="s5.4.2">
+               <h3 class="sect">&sect;5.4.2&nbsp;Base guards<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5.4</a></span></h3>
+               <p>The intention behind base guards is to prevent lifting of a callin-target
+                  		if a guard evaluates to <code>false</code> and thus refuses to invoke the
+                  		callin bound role method. Using base guards it is easier to prevent any
+                  		side-effects caused by a callin binding, because lifting could cause side-effects
+                  		at two levels:
+                  			
+               </p>
+               <ul>
+                  <li>Creating a role on-demand already is a side-effect (observable e.g.
+                     			by the reflective function <code><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">hasRole (&sect;6.1)</a></code>)
+                     				
+                  </li>
+                  <li>Role creation triggers execution of a role constructor 
+                     			(see <a href="s2.3.1.c.html"
+                        title="&sect;2.3.1.(c)&nbsp;Custom lifting constructor"
+                        class="sect">custom lifting constructor (&sect;2.3.1.(c))</a>) 
+                     			which could produce arbitrary side-effects.
+                     				
+                  </li>
+               </ul>
+               <p>Both kinds of side-effects can be avoided using a base guard which prevents
+                  		unnecessary lifting.
+                  			
+               </p>
+               <p>Any guard (5.4.1 (b)-(e)) can be turned into a base guard by adding 
+                  		the modifier <code>base</code> as in:
+                  			
+               </p>
+               <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase
+  <em><b>base</b> when</em> (base.value &gt; MyTeam.this.threshold)
+{
+    <i><b>class</b> body declarations</i>
+}</pre></div>
+               <p>However, different scoping rules apply for the identifiers 
+                  		that can be used in a base guard:
+                  			
+               </p>
+               <div class="subsect depth4" id="s5.4.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Base object reference</span></h4>
+                  <p>In all base guard predicates the special identifier <code>base</code> 
+                     			can be used to denote the base object that is about to be lifted.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s5.4.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Method binding guards</span></h4>
+                  <p>A base method binding guard may access parameters as passed to the
+                     			base method. Parameter mappings are not considered.<br />
+                     Additionally, for <code>after</code> callin bindings, the identifier <code>result</code> 
+                     may be used to refer to the result of the base method (if any).
+                     				
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     <p>In order to achieve the same effect of accessing
+                        	the base method's result, a regular binding guard (not a base guard)
+                        	must use a suitable parameter mapping (see <a href="s4.4.c.html"
+                           title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                           class="sect">&sect;4.4.(c)</a>).
+                        					
+                     </p>
+                  </div>
+               </div>
+               <div class="subsect depth4" id="s5.4.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Method guards</span></h4>
+                  <p>In contrast to regular method guards, a <em>base</em> guard attached to a role method 
+                     			cannot access any method parameters. See the next item (d) for values that are actually in scope.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s5.4.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Role level guards</span></h4>
+                  <p>Role level base guards may use these values:
+                     				
+                  </p>
+                  <ul>
+                     <li>The base instance using the special identifier <code>base</code>.
+                     </li>
+                     <li>The team instance using a qualified this references (<code>MyTeam.this</code>).
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth4" id="s5.4.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Team level guards</span></h4>
+                  <p>Team level base guards have the same scope as role level base guards (d). 
+                     			However, the type of the role instance is not known here, i.e., here <code>base</code> 
+                     			has the static type <code>java.lang.Object</code>.
+                     				
+                  </p>
+               </div>
+               <div class="subsect depth4" id="s5.4.2.f">
+                  <h4 class="subsect">(f)&nbsp;<span class="title">Unbound roles</span></h4>
+                  <p>In contrast to regular guards, base guards cannot be attached to
+                     	unbound role classes nor to their methods.<br />
+                     	Only team level base guards are independent of role binding.
+                     				
+                  </p>
+               </div><img src="../images/guards.png" alt="Overview: Guard predicates" /></div>
+            <div class="sect depth3" id="s5.4.3">
+               <h3 class="sect">&sect;5.4.3&nbsp;Multiple guards<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5.4</a></span></h3>
+               <p>Due to the different ranges of applicability different guards may affect the same method binding. 
+                  		In that case all applicable guards are conjoined using a logical <code>and</code>.<br />
+                  Any guard is interpreted as the conjunction of these predicates (if present):
+                  			
+               </p>
+               <ul>
+                  <li>The direct predicate expression of the guard.</li>
+                  <li>The next outer guard along the chain 
+                     			<em>method binding -&gt; method -&gt; role level -&gt; team level</em></li>
+                  <li>The guard at the same level that is inherited from the <em>implicit</em> super role.
+                  </li>
+                  <li>The guard at the same level that is inherited from the <em>explicit</em> super role.
+                  </li>
+               </ul>
+               <h5 class="listing">Example code (Guard Predicates):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> ATM {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>private</b> Bank myBank;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> ForeignAccount <b>playedBy</b> Account</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <em><b>base</b> when</em> (!ATM.this.myBank.equals(<em>base</em>.getBank()))</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    <b>callin</b> <b>void</b> debitWithFee(<b>int</b> amount) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>      base.debitWithFee(fee+amount);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    <b>void</b> debitWithFee(<b>int</b> i) <b>&lt;-</b> <b>replace</b> <b>void</b> debit(<b>int</b> amount)</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>      <em><b>base</b> when</em> (amount &lt; 1000);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  				The team in this example causes that an additional fee has to be payed while debiting 
+                  				less than 1000 Euros from a "foreign" account.
+                  				
+                  <ul>
+                     <li>The base guard in line 4 ensures that <code>Account</code> objects only get 
+                        				<code>ForeignAccount</code> roles, if they belong to a different bank than the 
+                        				surrounding <code>ATM</code> team.<br />
+                        				It accesses the bank of the base via the <code>base</code> identifier.
+                        					
+                     </li>
+                     <li>The method binding guard in line 10 restricts the callin to 
+                        				<code>debitWithFee</code> to calls where the base method argument 
+                        				<code>amount</code> is lower than 1000.
+                        					
+                     </li>
+                     <li>A call to <code>Account.debit</code> causes a replace callin to 
+                        				<code>debitWithFee</code><em> only</em> if <em>both</em> predicates evaluate to true.
+                        					
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.3.html" rel="prev">&lt;&lt;&nbsp;&sect;5.3&nbsp;Implicit team activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s5.5.html" rel="next">&sect;5.5&nbsp;Unanticipated team activation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.5.html
new file mode 100644
index 0000000..4a9036a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.5.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.4.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4&nbsp;Guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+         <div class="sect depth2" id="s5.5">
+            <h2 class="sect">&sect;5.5&nbsp;Unanticipated team activation</h2>
+            <p>If an application should be adapted unanticipatedly by one or more teams, 
+               	this can be achieved without explicitly changing the program code of this application.
+               		
+            </p>
+            <p><span class="underline">General activation via config file:</span><br />
+               	Instead of adding the team initialization
+               	and activation code to the main program, it is possible to add the respective teams via a config file.
+               	Every line of this text file contains the fully qualified name of a compiled team, which has to be available
+               	on the classpath.
+               For the instantiation of these teams the default constructor is used, which means adding a team to
+               an application this way requires the team to provide a default constructor.
+               The activation order (see <a href="s5.1.html" title="&sect;5.1&nbsp;Effect of team activation"
+                  class="sect">&sect;5.1</a>) for these teams corresponds to the order 
+               in which they are listed in the config file.<br />
+               	Lines starting with a '#' denote comment lines.
+               		
+            </p>
+            <h5 class="listing">Example config file:</h5>
+            <div class="listing config frame"><pre><span class="comment"># Config file for an ObjectTeams application:</span>
+<em>mypackage1.MyTeam1</em>
+<span class="comment"># ...</span>
+<em>mypackageM.MyTeamN</em></pre></div>
+            <p>To get this config file recognized by the application the VM argument<br /><strong>'-Dot.teamconfig=&lt;<em>config_file_name</em>&gt;'</strong><br />
+               	has to be used when starting the application.
+               		
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               			In the ObjectTeams Development Tooling (OTDT) teams are activated unanticipatedly 
+               			via a special tab in the "Run-Configuration" (see <a href="http://www.objectteams.org/distrib/features.html#execution" class="ext">OTDT features</a>), instead.
+               		
+            </div>
+            <p><span class="underline">Activation adjustment example:</span><br />
+               	Teams added via the config file mechanism are activated by default. Because no reference to them is
+               	stored anywhere, it is not possible to deactivate them later.
+               	If deactivation of unanticipated added teams is required, this can be achieved by adding a manager team
+               	via config file and encapsulate the actual functionality in another team managed by the manager team.
+               	This way a functional team can be activated and deactivated as needed.
+               		
+            </p>
+            <h5 class="listing">Example code (Activation Adjustment):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> MyManagerTeam {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>private</b> FunctionalTeam myFunctionalTeam = <b>new</b> FunctionalTeam();</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyApplication {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <b>void</b> startAdaption() { myFunctionalTeam.activate(); }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    startAdaption <b>&lt;-</b> <b>before</b> startMethod;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    <b>void</b> stopAdaption() { myFunctionalTeam.deactivate(); }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>    stopAdaption <b>&lt;-</b> <b>after</b> stopMethod;</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing config frame"><pre><span class="comment"># Config file for the manager team example:</span>
+<em>MyManagerTeam</em></pre></div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li><code>startMethod</code> and <code>stopMethod</code> are methods which demand 
+                     			the activation and deactivation respectively.
+                     				
+                  </li>
+                  <li>If the activation/deactivation depends on other conditions these can be checked in addition.
+                     				
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.4.html" rel="prev">&lt;&lt;&nbsp;&sect;5.4&nbsp;Guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s5.html" rel="section">&sect;5&nbsp;Team Activation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.html
new file mode 100644
index 0000000..84e7093
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s5.html
@@ -0,0 +1,669 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s4.html" rel="prev">&lt;&lt;&nbsp;&sect;4&nbsp;Callin Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.html" rel="next">&sect;6&nbsp;Object Teams API&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s5">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;5&nbsp;Team Activation</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s5.html">&sect;5&nbsp;Team Activation</a></li>
+                  <li><a href="#s5.1">&sect;5.1&nbsp;Effect of team activation</a></li>
+                  <li><a href="#s5.2">&sect;5.2&nbsp;Explicit team activation</a></li>
+                  <li><a href="#s5.3">&sect;5.3&nbsp;Implicit team activation</a></li>
+                  <li><a href="#s5.4">&sect;5.4&nbsp;Guard predicates</a></li>
+                  <li><a href="#s5.5">&sect;5.5&nbsp;Unanticipated team activation</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>The concept of Activation</h3>
+               <div class="line"></div>
+               <div class="term">Binding activation</div>
+               <div class="termdesc">All <strong>callin</strong> bindings of a team only have effect if
+                  				the team is <strong>active</strong>. Activation may be caused by explicit
+                  				statements and also happens implicitly at certain points
+                  				during program execution.
+               </div>
+               <div class="line"></div>
+               <div class="term">Guard predicates</div>
+               <div class="termdesc">Callin bindings can further be controlled using guard predicates,
+                  				which can be attached to roles and teams at different levels. If a guard
+                  				predicate evaluates to <code>false</code>, all affected callin bindings
+                  				are disabled.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s5.1">
+               <h2 class="sect">&sect;5.1&nbsp;Effect of team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>Activating a team instance has the effect of enabling all its callin bindings. 
+                  	All effects defined in <a href="s4.html" title="&sect;4&nbsp;Callin Binding" class="sect">&sect;4</a> apply only if a corresponding 
+                  	team instance is active.<br />
+                  	The <strong>order</strong> of team activation controls the order of callin executions. 
+                  	If more than one team intercepts calls to the same base method, the most recently activated 
+                  	team has highest priority in that its before or replace callins are executed first while its after 
+                  	callins are executed last.
+                  		
+               </p>
+               <div class="sect depth3" id="s5.1.1">
+                  <h3 class="sect">&sect;5.1.1&nbsp;Global vs. thread local team activation<span class="toplink"><a href="#s5.1">&uarr;&nbsp;&sect;5.1</a></span></h3>
+                  <p>While <strong>thread local</strong> activation only enables the callin bindings of 
+                     		a team instance for a certain thread, <strong>global</strong> activation activates the 
+                     		team instance for all threads of the application.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.1.2">
+                  <h3 class="sect">&sect;5.1.2&nbsp;Effect on garbage collection<span class="toplink"><a href="#s5.1">&uarr;&nbsp;&sect;5.1</a></span></h3>
+                  <p>Any active team is referenced by internal infrastructure. 
+                     		Thus, a team cannot be reclaimed by the garbage collector while it is active.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.2">
+               <h2 class="sect">&sect;5.2&nbsp;Explicit team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <div class="subsect depth3" id="s5.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Activation block</span></h4>
+                  <p>A team can be activated thread local by the block construct</p>
+                  <div class="listing plain"><pre><b>within</b> (myTeam) { <i>stmts</i> }</pre></div>
+                  <p>If <em>stmts</em> has only one statement this can be abbreviated to
+                  </p>
+                  <div class="listing plain"><pre><b>within</b> (myTeam) <i>stmt</i></pre></div>
+                  <p>In these statements, <code>myTeam</code> must denote a team instance. 
+                     		For the time of executing this block, this team instance is activated for the current thread, 
+                     		which has entered the within block.
+                     			
+                  </p>
+                  <p>The <code>within</code> block statement guarantees that it leaves
+                     		the team in exactly the same activation state as it was in when
+                     		entering this block. This includes the cases of exceptions, meaning
+                     		that deactivation will also occur if the execution of the block
+                     		terminates abnormally.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Imperative activation</span></h4>
+                  <p>Each team class implicitly provides methods from the predefined interface 
+                     		<code>org.objectteams.ITeam</code> (super interface of all team classes) to control team 
+                     		activation disregarding the block structure of the program. The methods <code>activate()</code> 
+                     		and <code>deactivate()</code> are used to activate and deactivate a team instance for 
+                     		the current thread.<br />
+                     If a team should be de-/activated for another thread this can be done by the methods 
+                     <code>activate(Thread aThread)</code> and <code>deactivate(Thread aThread)</code>. 
+                     In order to achieve global activation for all threads the predefined constant 
+                     <code>org.objectteams.Team.ALL_THREADS</code> is passed to these methods (e.g. 
+                     <code>activate(Team.ALL_THREADS)</code>).<br />
+                     Note, that this methods make no guarantees with respect to exceptions.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Multiple and mixed activations</span></h4>
+                  <ul>
+                     <li>If <code>activate()</code> is invoked on a team instance
+                        				    that has been explicitly activated before, this statement has
+                        				    no effect at all (note the difference in <a href="#s5.3.a" title="&sect;5.3.(a)&nbsp;Team level methods" class="sect">&sect;5.3.(a)</a> below).
+                        				    <br />
+                        				    The same applies to deactivating an inactive team.
+                     </li>
+                     <li>If a team was already active when entering a <code>within</code>
+                        					block, it will remain active after leaving the block.
+                     </li>
+                     <li>If the team was active on entry of a <code>within</code> block
+                        					and if <code>deactivate()</code> is invoked on the same team
+                        					instance from within the <code>within</code> block,
+                        					leaving the block will re-activate the team.
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.3">
+               <h2 class="sect">&sect;5.3&nbsp;Implicit team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>Implicit team activation is intended to ensure that
+                  	whenever the control flow is passed to a team or one of its roles,
+                  	the team is implicitly activated for the current thread.
+                  Implicit activation can be configured at different levels (see <a href="#s5.3.d" title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                     class="sect">&sect;5.3.(d)</a>).
+                  	
+               </p>
+               <p>When implicit activation is enabled a programmer may assume,
+                  that whenever a role forwards calls to its base object via callout,
+                  the callin bindings of the same role will be active at that time.
+                  Exceptions to this rule have to be programmed explicitly.
+                  		
+               </p>
+               <div class="subsect depth3" id="s5.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Team level methods</span></h4>
+                  <p>While executing a <strong>team level method</strong>, the target team
+                     	    is always active. Activation is reset to the previous state
+                     	    when leaving the team method, unless the team has been explicitly activated during
+                     	    execution of the team method by a call to <code>activate()</code>.
+                     	    Explicit activation is stronger than implicit activation and thus persists after the
+                     	    team level method terminates. Ie., leaving a team level method will never reset
+                     	    an explicit activation.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Methods of externalized roles</span></h4>
+                  <p>Invoking a method on an <strong>externalized role</strong>
+                     	    (see <a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) also has the
+                     	    effect of temporary activation of the team containing the role for the current thread.
+                     	    Regarding deactivation the rule of <a href="#s5.3.a" title="&sect;5.3.(a)&nbsp;Team level methods" class="sect">&sect;5.3.(a)</a> above applies accordingly.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.3.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Nested teams</span></h4>
+                  <p>Implicit activation has additional consequences for nested teams 
+                     		(see <a href="s1.5.html" title="&sect;1.5&nbsp;Team and role nesting" class="sect">&sect;1.5</a>):
+                     
+                  </p>
+                  <ul>
+                     <li>Implicit activation of a team causes the activation of its outer teams.</li>
+                     <li>Implicit deactivation of a team causes the deactivation of its inner teams.</li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="s5.3.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Configuring implicit activation</span></h4>
+                  <p>Implicit activation is disabled by default and can be enabled by adding the annotation
+                     				<code>@org.objectteams.ImplicitTeamActivation</code>, which can be applied to a type or a method.
+                     				When applied to a method it is ensured that invoking this method will trigger implicit activation.
+                     				When the annotation is applied to a type this has the same effect as applying it to all externally
+                     				visible methods of the type. Member types are not affected and have to be annotated separately.
+                  </p>
+                  <p>The runtime environment can be configured globally by defining the system property 
+                     				<code>ot.implicit.team.activation</code> to one of these values:
+                  </p>
+                  <dl>
+                     <dt>NEVER</dt>
+                     <dd>Implicit activation is completely disabled.</dd>
+                     <dt>ANNOTATED</dt>
+                     <dd>This is the default: implicit activation applies only where declared by <code>@ImplicitTeamActivation</code>.
+                     </dd>
+                     <dt>ALWAYS</dt>
+                     <dd>Implicit activation applies to all externally visible methods (this was the default in OTJLD versions &le;1.2)</dd>
+                  </dl>
+               </div>
+               <p>Note that among the different mechanisms for activation, <code>within</code> is strongest, 
+                  	followed by <code>(de)activate()</code>, weakest is implicit activation. In this sense, 
+                  	explicit imperative (de)activation may override the block structure of implicit activation 
+                  	(by explicit activation within a team level method), but not that of a <code>within</code> 
+                  	block (by deactivation from a within block).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="s5.4">
+               <h2 class="sect">&sect;5.4&nbsp;Guard predicates<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <div class="syntaxlink"><a href="sA.7.html" title="&sect;A.7&nbsp;Guard predicates" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.7</a></div>
+               <p>The effect of callins can further be controlled using so called guard predicates. 
+                  	Guards appear at four different levels:
+                  		
+               </p>
+               <ul>
+                  <li>callin method binding</li>
+                  <li>role method</li>
+                  <li>role class</li>
+                  <li>team class</li>
+               </ul>
+               <p>Guards can be specified as <em>regular</em> guards or <code>base</code> guards, 
+                  	which affects the exact point in the control flow, where the guard will be evaluated.
+                  		
+               </p>
+               <div class="subsect depth3" id="s5.4.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">General syntax for guards</span></h4>
+                  <p>A guard is declared using the keyword <code>when</code> followed by a 
+                     		boolean expression in parentheses:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><em><b>when</b> (</em><i>predicateExpression</i><em>)</em></pre></div>
+                  <p>Depending on the kind of guard different objects are in scope using
+                     special identifiers like <code>this</code>, <code>base</code>.<br />
+                     Any predicate expression that evaluates to <code>true</code> enables
+                     the callin binding(s) to which it applies.
+                     Evaluation to <code>false</code> disables the callin binding(s).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.4.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">No side effects</span></h4>
+                  <p>A guard predicate should have no side effects. 
+                     			   A compiler should optionally check this condition, but inter-procedural analysis
+                     			   actually depends on the availability of appropriate means to mark any method as side-effect free.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s5.4.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Exceptions</span></h4>
+                  <p>A guard predicate should not throw any exceptions. 
+                     			   Yet, any exception thrown within a guard predicate cause the guard to evaluate to <code>false</code> 
+                     			   rather than propagating the exception, meaning that the evaluation of a guard predicate will never
+                     			   interrupt the current base behaviour.<br />
+                     			   A compiler should flag any checked exception that is thrown within a guard.
+                     			   Such diagnosis should by default be treated as an error, with the option of configuring
+                     			   its severity to warning or ignore.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.4.1">
+                  <h3 class="sect">&sect;5.4.1&nbsp;Regular guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>This group of guards evaluates within the context of a given role. 
+                     		These guards are evaluated <em>after</em> a callin target is lifted and 
+                     		<em>before</em> a callin bound role method is invoked.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s5.4.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Method binding guards</span></h4>
+                     <p>A guard may be attached to a callin method binding as in:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir) <b>&lt;-</b> <b>after</b> <b>void</b> baseMethod(<b>int</b> ib)
+  <b>when</b> (ir &gt; MyTeam.this.threshold);</pre></div>
+                     <p>Such a guard only affects the callin binding to which it is attached, 
+                        			i.e., this specific callin binding is only effective, 
+                        			if the predicate evaluates to <code>true</code>.
+                        			<br />
+                        			The following values are within the scope of the predicate expression, 
+                        			and thus can be used to express the condition:
+                        				
+                     </p>
+                     <ul>
+                        <li>The role instance denoted by <code>this</code>.<br />
+                           				Features of the role instance can also be accessed relative to
+                           				<code>this</code> with or without explicit qualifying <code>this</code>.
+                           					
+                        </li>
+                        <li>The team instance denoted by a qualified this reference as in 
+                           				<code>MyTeam.this</code>.
+                           					
+                        </li>
+                        <li>If the callin binding includes signatures (as in the example above): 
+                           				Parameters of the role method.<br />
+                           				If parameter mappings are involved, they will be evaluated before evaluating the guard.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Method guards</span></h4>
+                     <p>A method guard is similar to a method binding guard, but it applies 
+                        			to all callin method bindings of this method.<br />
+                        			A method guard is declared between the method signature and the method body:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>void</b> roleMethod(<b>int</b> ir)
+  <b>when</b> (ir &gt; MyTeam.this.threshold) { <i>body statements</i> }</pre></div>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Role level guards</span></h4>
+                     <p>When a guard is specified at the role level, i.e., directly before the 
+                        			class body of a role class, it applies to all callin method bindings of 
+                        			the role class:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole
+  <b>when</b> (value &gt; MyTeam.this.threshold)
+{
+    <b>int</b> value;
+    <i>other <b>class</b> body declarations</i>
+}</pre></div>
+                     <p>The following values are within the scope of the predicate expression:
+                        				
+                     </p>
+                     <ul>
+                        <li>The role instance denoted by <code>this</code> (explicit or implicit, see above). 
+                           				Thus, in the example <code>value</code> will be interpreted as a field of the enclosing role.
+                           					
+                        </li>
+                        <li>The team instance denoted by a qualified this reference as in <code>MyTeam.this</code></li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.1.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Team level guards</span></h4>
+                     <p>A guard specified in the header of a team class may disable the callin 
+                        			bindings of all contained role classes. The syntax corresponds to the syntax 
+                        			of role level guards.<br />
+                        			The only value directly available within team level guard is the 
+                        			team instance (denoted by <code>this</code>) and its features.
+                        				
+                     </p>
+                  </div>
+                  <p>Of course all guards can also access any visible static feature of a visible class.
+                     			
+                  </p>
+                  <p>Even if a guard has no direct effect, because, e.g., a role class has no callin 
+                     		bindings (maybe not even a role-base binding), predicates at such abstract 
+                     		levels are useful, because all predicates are inherited by all sub classes 
+                     		(explicit and implicit).
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="s5.4.2">
+                  <h3 class="sect">&sect;5.4.2&nbsp;Base guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>The intention behind base guards is to prevent lifting of a callin-target
+                     		if a guard evaluates to <code>false</code> and thus refuses to invoke the
+                     		callin bound role method. Using base guards it is easier to prevent any
+                     		side-effects caused by a callin binding, because lifting could cause side-effects
+                     		at two levels:
+                     			
+                  </p>
+                  <ul>
+                     <li>Creating a role on-demand already is a side-effect (observable e.g.
+                        			by the reflective function <code><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">hasRole (&sect;6.1)</a></code>)
+                        				
+                     </li>
+                     <li>Role creation triggers execution of a role constructor 
+                        			(see <a href="s2.3.1.c.html"
+                           title="&sect;2.3.1.(c)&nbsp;Custom lifting constructor"
+                           class="sect">custom lifting constructor (&sect;2.3.1.(c))</a>) 
+                        			which could produce arbitrary side-effects.
+                        				
+                     </li>
+                  </ul>
+                  <p>Both kinds of side-effects can be avoided using a base guard which prevents
+                     		unnecessary lifting.
+                     			
+                  </p>
+                  <p>Any guard (5.4.1 (b)-(e)) can be turned into a base guard by adding 
+                     		the modifier <code>base</code> as in:
+                     			
+                  </p>
+                  <div class="listing plain"><pre><b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyBase
+  <em><b>base</b> when</em> (base.value &gt; MyTeam.this.threshold)
+{
+    <i><b>class</b> body declarations</i>
+}</pre></div>
+                  <p>However, different scoping rules apply for the identifiers 
+                     		that can be used in a base guard:
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s5.4.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Base object reference</span></h4>
+                     <p>In all base guard predicates the special identifier <code>base</code> 
+                        			can be used to denote the base object that is about to be lifted.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Method binding guards</span></h4>
+                     <p>A base method binding guard may access parameters as passed to the
+                        			base method. Parameter mappings are not considered.<br />
+                        Additionally, for <code>after</code> callin bindings, the identifier <code>result</code> 
+                        may be used to refer to the result of the base method (if any).
+                        				
+                     </p>
+                     <div class="note">
+                        <h5>Note:</h5>
+                        <p>In order to achieve the same effect of accessing
+                           	the base method's result, a regular binding guard (not a base guard)
+                           	must use a suitable parameter mapping (see <a href="s4.4.c.html"
+                              title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                              class="sect">&sect;4.4.(c)</a>).
+                           					
+                        </p>
+                     </div>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.c">
+                     <h4 class="subsect">(c)&nbsp;<span class="title">Method guards</span></h4>
+                     <p>In contrast to regular method guards, a <em>base</em> guard attached to a role method 
+                        			cannot access any method parameters. See the next item (d) for values that are actually in scope.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.d">
+                     <h4 class="subsect">(d)&nbsp;<span class="title">Role level guards</span></h4>
+                     <p>Role level base guards may use these values:
+                        				
+                     </p>
+                     <ul>
+                        <li>The base instance using the special identifier <code>base</code>.
+                        </li>
+                        <li>The team instance using a qualified this references (<code>MyTeam.this</code>).
+                        </li>
+                     </ul>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.e">
+                     <h4 class="subsect">(e)&nbsp;<span class="title">Team level guards</span></h4>
+                     <p>Team level base guards have the same scope as role level base guards (d). 
+                        			However, the type of the role instance is not known here, i.e., here <code>base</code> 
+                        			has the static type <code>java.lang.Object</code>.
+                        				
+                     </p>
+                  </div>
+                  <div class="subsect depth4" id="s5.4.2.f">
+                     <h4 class="subsect">(f)&nbsp;<span class="title">Unbound roles</span></h4>
+                     <p>In contrast to regular guards, base guards cannot be attached to
+                        	unbound role classes nor to their methods.<br />
+                        	Only team level base guards are independent of role binding.
+                        				
+                     </p>
+                  </div><img src="../images/guards.png" alt="Overview: Guard predicates" /></div>
+               <div class="sect depth3" id="s5.4.3">
+                  <h3 class="sect">&sect;5.4.3&nbsp;Multiple guards<span class="toplink"><a href="#s5.4">&uarr;&nbsp;&sect;5.4</a></span></h3>
+                  <p>Due to the different ranges of applicability different guards may affect the same method binding. 
+                     		In that case all applicable guards are conjoined using a logical <code>and</code>.<br />
+                     Any guard is interpreted as the conjunction of these predicates (if present):
+                     			
+                  </p>
+                  <ul>
+                     <li>The direct predicate expression of the guard.</li>
+                     <li>The next outer guard along the chain 
+                        			<em>method binding -&gt; method -&gt; role level -&gt; team level</em></li>
+                     <li>The guard at the same level that is inherited from the <em>implicit</em> super role.
+                     </li>
+                     <li>The guard at the same level that is inherited from the <em>explicit</em> super role.
+                     </li>
+                  </ul>
+                  <h5 class="listing">Example code (Guard Predicates):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> ATM {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>private</b> Bank myBank;</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> ForeignAccount <b>playedBy</b> Account</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <em><b>base</b> when</em> (!ATM.this.myBank.equals(<em>base</em>.getBank()))</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <b>callin</b> <b>void</b> debitWithFee(<b>int</b> amount) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>      base.debitWithFee(fee+amount);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <b>void</b> debitWithFee(<b>int</b> i) <b>&lt;-</b> <b>replace</b> <b>void</b> debit(<b>int</b> amount)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>      <em><b>base</b> when</em> (amount &lt; 1000);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     				The team in this example causes that an additional fee has to be payed while debiting 
+                     				less than 1000 Euros from a "foreign" account.
+                     				
+                     <ul>
+                        <li>The base guard in line 4 ensures that <code>Account</code> objects only get 
+                           				<code>ForeignAccount</code> roles, if they belong to a different bank than the 
+                           				surrounding <code>ATM</code> team.<br />
+                           				It accesses the bank of the base via the <code>base</code> identifier.
+                           					
+                        </li>
+                        <li>The method binding guard in line 10 restricts the callin to 
+                           				<code>debitWithFee</code> to calls where the base method argument 
+                           				<code>amount</code> is lower than 1000.
+                           					
+                        </li>
+                        <li>A call to <code>Account.debit</code> causes a replace callin to 
+                           				<code>debitWithFee</code><em> only</em> if <em>both</em> predicates evaluate to true.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s5.5">
+               <h2 class="sect">&sect;5.5&nbsp;Unanticipated team activation<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;5</a></span></h2>
+               <p>If an application should be adapted unanticipatedly by one or more teams, 
+                  	this can be achieved without explicitly changing the program code of this application.
+                  		
+               </p>
+               <p><span class="underline">General activation via config file:</span><br />
+                  	Instead of adding the team initialization
+                  	and activation code to the main program, it is possible to add the respective teams via a config file.
+                  	Every line of this text file contains the fully qualified name of a compiled team, which has to be available
+                  	on the classpath.
+                  For the instantiation of these teams the default constructor is used, which means adding a team to
+                  an application this way requires the team to provide a default constructor.
+                  The activation order (see <a href="#s5.1" title="&sect;5.1&nbsp;Effect of team activation" class="sect">&sect;5.1</a>) for these teams corresponds to the order 
+                  in which they are listed in the config file.<br />
+                  	Lines starting with a '#' denote comment lines.
+                  		
+               </p>
+               <h5 class="listing">Example config file:</h5>
+               <div class="listing config frame"><pre><span class="comment"># Config file for an ObjectTeams application:</span>
+<em>mypackage1.MyTeam1</em>
+<span class="comment"># ...</span>
+<em>mypackageM.MyTeamN</em></pre></div>
+               <p>To get this config file recognized by the application the VM argument<br /><strong>'-Dot.teamconfig=&lt;<em>config_file_name</em>&gt;'</strong><br />
+                  	has to be used when starting the application.
+                  		
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  			In the ObjectTeams Development Tooling (OTDT) teams are activated unanticipatedly 
+                  			via a special tab in the "Run-Configuration" (see <a href="http://www.objectteams.org/distrib/features.html#execution" class="ext">OTDT features</a>), instead.
+                  		
+               </div>
+               <p><span class="underline">Activation adjustment example:</span><br />
+                  	Teams added via the config file mechanism are activated by default. Because no reference to them is
+                  	stored anywhere, it is not possible to deactivate them later.
+                  	If deactivation of unanticipated added teams is required, this can be achieved by adding a manager team
+                  	via config file and encapsulate the actual functionality in another team managed by the manager team.
+                  	This way a functional team can be activated and deactivated as needed.
+                  		
+               </p>
+               <h5 class="listing">Example code (Activation Adjustment):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> MyManagerTeam {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>private</b> FunctionalTeam myFunctionalTeam = <b>new</b> FunctionalTeam();</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>protected</b> <b>class</b> MyRole <b>playedBy</b> MyApplication {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>void</b> startAdaption() { myFunctionalTeam.activate(); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    startAdaption <b>&lt;-</b> <b>before</b> startMethod;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    <b>void</b> stopAdaption() { myFunctionalTeam.deactivate(); }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>    stopAdaption <b>&lt;-</b> <b>after</b> stopMethod;</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing config frame"><pre><span class="comment"># Config file for the manager team example:</span>
+<em>MyManagerTeam</em></pre></div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li><code>startMethod</code> and <code>stopMethod</code> are methods which demand 
+                        			the activation and deactivation respectively.
+                        				
+                     </li>
+                     <li>If the activation/deactivation depends on other conditions these can be checked in addition.
+                        				
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s4.html" rel="prev">&lt;&lt;&nbsp;&sect;4&nbsp;Callin Binding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.html" rel="next">&sect;6&nbsp;Object Teams API&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.a.html
new file mode 100644
index 0000000..b1334cc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.a.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.1.b.html" rel="next">&sect;6.1.(b)&nbsp;Behavioral reflection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+         <div class="subsect depth3" id="s6.1.a">
+            <h4 class="subsect">&sect;6.1.(a)&nbsp;<span class="title">Interface to the role registry</span></h4>
+            <p>Each team instance internally has a registry of known role objects indexed by their base object. 
+               		Programmers may make use of this registry using the following reflective methods defined in 
+               		<code>org.objectteams.ITeam</code>:
+               			
+            </p>
+            <dl>
+               <dt><code>boolean hasRole ( Object aBase ) ;</code></dt>
+               <dd>This method checks whether a role for the passed base object already exists in the target team.
+                  				
+               </dd>
+               <dt><code>boolean hasRole ( Object aBase, Class expectedRole ) ;</code></dt>
+               <dd>This method checks whether a instance of type <code>expectedRole</code> as a role for the passed base object 
+                  					<code>aBase</code> already exists in the target team.
+                  				    The role may also be of any subtype of the specified role type.
+                  				
+               </dd>
+               <dt><code>Object getRole ( Object aBase ) ;</code></dt>
+               <dd>If the passed base object <code>aBase</code> already has a role in the target team, this role is returned. 
+                  					Otherwise <code>null</code> is returned.
+                  				
+               </dd>
+               <dt><code>&lt;T&gt; T getRole ( Object aBase, Class&lt;T&gt; expectedRole ) ;</code></dt>
+               <dd>If the passed base object <code>aBase</code> already has a role in the target team that is assignable to the type represented by <code>expectedRole</code>, 
+                  					this role is returned. Otherwise <code>null</code> is returned.
+                  				
+               </dd>
+               <dt><code>Object[] getAllRoles () ;</code></dt>
+               <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                     class="sect">bound roles (&sect;2.1.(a))</a> in the target team.
+                  					<br />
+                  This method uses internal structures of weak references. For that reason it may return role instances which were about 
+                  to be reclaimed by the garbage collector. If performance permits, it is thus advisable to always call <code>System.gc()</code> 
+                  prior to calling <code>getAllRoles()</code> in order to achieve deterministic results (see also <a href="s2.1.f.html" title="&sect;2.1.(f)&nbsp;Effect on garbage collection"
+                     class="sect">&sect;2.1.(f)</a>).
+                  				
+               </dd>
+               <dt><code>&lt;T&gt; T[] getAllRoles ( Class&lt;T&gt; expectedRole ) ;</code></dt>
+               <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                     class="sect">bound roles (&sect;2.1.(a))</a> in the target team that are assignable to the type represented by <code>expectedRole</code>. 
+                  					Class <code>expectedRole</code> must be a bound role otherwise an <code>IllegalArgumentException</code> is thrown.
+                  <br />
+                  See the note about garbage collection above.
+                  				
+               </dd>
+               <dt><code>void unregisterRole ( Object aRole ) ;</code></dt>
+               <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                  					After calling this method the role should no longer be used.
+                  				
+               </dd>
+               <dt><code>void unregisterRole ( Object aRole, Class roleClass ) ;</code></dt>
+               <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                  					After calling this method the role should no longer be used. 
+                  					The only difference to the previous method is improved speed because no search for the corresponding registry 
+                  					has to be performed.
+                  				
+               </dd>
+            </dl>
+            <p>It is desirable and possible to use these methods within guards (see <a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>). 
+               		These methods allow to write the specification of guards in a more concise and more expressive way. Determined by the signature,
+               
+               		the first four methods can only be used in a base-level guard (<a href="s5.4.2.html" title="&sect;5.4.2&nbsp;Base guards" class="sect">&sect;5.4.2</a>) because they require a reference to a base object.
+               			
+            </p>
+            <h5 class="listing">Example code (Guards and Reflection):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> SpecialConditions {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>public</b> <b>void</b> participate(Account <b>as</b> BonusAccount ba) {}</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  <b>public</b> <b>class</b> BonusAccount <b>playedBy</b> Account</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>    <b>base</b> when(SpecialConditions.this.<em>hasRole</em>(base, BonusAccount.class))</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>  {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    <b>callin</b> <b>void</b> creditBonus(<b>int</b> amount) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>      base.creditBonus(amount + bonus);</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>    }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    <b>void</b> creditBonus(<b>int</b> amount) <b>&lt;-</b> <b>replace</b> <b>void</b> credit(<b>int</b> i)</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>      <b>base</b> <b>when</b> (i &gt; 1000);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               				This teams provides a bonus system for registered <code>Account</code>s. Every time an amount of more than 1000 is 
+               				deposited to a registered account, additional 1% of the amount is credited.
+               				 
+               <ul>
+                  <li>The team level method <code>participate</code> in line 2 uses declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) 
+                     to allow the passed <code>Account</code> object to participate the bonus system provided by the 
+                     <code>SpecialConditions</code> team.
+                     	
+                  </li>
+                  <li>The base guard in line 4 uses the reflective method <code>hasRole</code> to check whether the base object already has a role 
+                     	of type <code>BonusAccount</code> in the surrounding team. The expression <code>BonusAccount.class</code> returns 
+                     	the <code>java.lang.Class</code> object representing the role <code>BonusAccount</code> 
+                     	(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                        class="ext">JLS &sect;15.8.2</a>). 
+                     	This guard ensures, that only accounts explicitly registered via <code>participate</code> are ever decorated with a role of type <code>BonusAccount</code>.
+                     
+                  </li>
+                  <li>The method binding guard in line 10 restricts the callin to <code>creditBonus</code> to calls where 
+                     					the base method argument <code>amount</code> is greater than 1000.
+                     					
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.1.b.html" rel="next">&sect;6.1.(b)&nbsp;Behavioral reflection&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.b.html
new file mode 100644
index 0000000..6418225
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.b.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1.(a)&nbsp;Interface to the role registry</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.1.c.html" rel="next">&sect;6.1.(c)&nbsp;Class literals for roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+         <div class="subsect depth3" id="s6.1.b">
+            <h4 class="subsect">&sect;6.1.(b)&nbsp;<span class="title">Behavioral reflection</span></h4>
+            <p>The following reflective methods defined in org.objectteams.ITeam can be used to
+               			   inspect the dynamic behavior of a team:
+               			
+            </p>
+            <dl>
+               <dt><code>boolean isExecutingCallin () ;</code></dt>
+               <dd>This method is used to inspect whether a control flow has already been intercepted by at least one callin binding of the current
+                  team. 
+                  					It can be used to avoid undesirable re-entrance to a team.
+                  				
+               </dd>
+               <dt><code>boolean isActive () ;</code></dt>
+               <dd>This method checks whether the team instance is active for the current thread.
+                  				
+               </dd>
+               <dt><code>boolean isActive ( Thread aThread ) ;</code></dt>
+               <dd>This method checks whether the team instance is active for the thread <code>aThread</code>.
+                  				
+               </dd>
+            </dl>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1.(a)&nbsp;Interface to the role registry</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.1.c.html" rel="next">&sect;6.1.(c)&nbsp;Class literals for roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.c.html
new file mode 100644
index 0000000..123420c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.c.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1.(b)&nbsp;Behavioral reflection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+         <div class="subsect depth3" id="s6.1.c">
+            <h4 class="subsect">&sect;6.1.(c)&nbsp;<span class="title">Class literals for roles</span></h4>
+            <p>The Java syntax for so-called class literals, <code>MyClass<strong>.class</strong></code> 
+               		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                  class="ext">JLS &sect;15.8.2</a>) 
+               		can be used for role types with slightly changed semantics: Role types are virtual types (<a href="s1.3.1.html"
+                  title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                  class="sect">&sect;1.3.1</a>) 
+               		that are bound dynamically  (<a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                  class="sect">&sect;1.3.1.(e)</a>). This applies to role class literals, too. 
+               		From this follows the constraint that a role class literal can only be used within the non-static context of a team, 
+               		ie., for evaluating a role class literal an enclosing team instance must be in scope.
+               		<br />
+               Unlike regular type checking for role types, the class literal itself does not have a dependent type. 
+               Thus type checking of calls to methods like <code>hasRole(Object, Class)</code> cannot detect, whether the <code>Class</code> instance 
+               has actually been obtained from the correct team instance. Any attempt to pass a class that is not known 
+               as a bound role within the given team results in an <code>IllegalArgumentException</code> at run-time.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1.(b)&nbsp;Behavioral reflection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.1.html" rel="section">&sect;6.1&nbsp;Reflection</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.html
new file mode 100644
index 0000000..655996d
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.1.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.html" rel="next">&sect;6.2&nbsp;Other API Elements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+         <div class="sect depth2" id="s6.1">
+            <h2 class="sect">&sect;6.1&nbsp;Reflection</h2>
+            <p>Object Teams supports reflection with respect to teams, roles, and role-base relationships.
+               		
+            </p>
+            <div class="subsect depth3" id="s6.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Interface to the role registry</span></h4>
+               <p>Each team instance internally has a registry of known role objects indexed by their base object. 
+                  		Programmers may make use of this registry using the following reflective methods defined in 
+                  		<code>org.objectteams.ITeam</code>:
+                  			
+               </p>
+               <dl>
+                  <dt><code>boolean hasRole ( Object aBase ) ;</code></dt>
+                  <dd>This method checks whether a role for the passed base object already exists in the target team.
+                     				
+                  </dd>
+                  <dt><code>boolean hasRole ( Object aBase, Class expectedRole ) ;</code></dt>
+                  <dd>This method checks whether a instance of type <code>expectedRole</code> as a role for the passed base object 
+                     					<code>aBase</code> already exists in the target team.
+                     				    The role may also be of any subtype of the specified role type.
+                     				
+                  </dd>
+                  <dt><code>Object getRole ( Object aBase ) ;</code></dt>
+                  <dd>If the passed base object <code>aBase</code> already has a role in the target team, this role is returned. 
+                     					Otherwise <code>null</code> is returned.
+                     				
+                  </dd>
+                  <dt><code>&lt;T&gt; T getRole ( Object aBase, Class&lt;T&gt; expectedRole ) ;</code></dt>
+                  <dd>If the passed base object <code>aBase</code> already has a role in the target team that is assignable to the type represented by <code>expectedRole</code>, 
+                     					this role is returned. Otherwise <code>null</code> is returned.
+                     				
+                  </dd>
+                  <dt><code>Object[] getAllRoles () ;</code></dt>
+                  <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                        class="sect">bound roles (&sect;2.1.(a))</a> in the target team.
+                     					<br />
+                     This method uses internal structures of weak references. For that reason it may return role instances which were about 
+                     to be reclaimed by the garbage collector. If performance permits, it is thus advisable to always call <code>System.gc()</code> 
+                     prior to calling <code>getAllRoles()</code> in order to achieve deterministic results (see also <a href="s2.1.f.html" title="&sect;2.1.(f)&nbsp;Effect on garbage collection"
+                        class="sect">&sect;2.1.(f)</a>).
+                     				
+                  </dd>
+                  <dt><code>&lt;T&gt; T[] getAllRoles ( Class&lt;T&gt; expectedRole ) ;</code></dt>
+                  <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                        class="sect">bound roles (&sect;2.1.(a))</a> in the target team that are assignable to the type represented by <code>expectedRole</code>. 
+                     					Class <code>expectedRole</code> must be a bound role otherwise an <code>IllegalArgumentException</code> is thrown.
+                     <br />
+                     See the note about garbage collection above.
+                     				
+                  </dd>
+                  <dt><code>void unregisterRole ( Object aRole ) ;</code></dt>
+                  <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                     					After calling this method the role should no longer be used.
+                     				
+                  </dd>
+                  <dt><code>void unregisterRole ( Object aRole, Class roleClass ) ;</code></dt>
+                  <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                     					After calling this method the role should no longer be used. 
+                     					The only difference to the previous method is improved speed because no search for the corresponding registry 
+                     					has to be performed.
+                     				
+                  </dd>
+               </dl>
+               <p>It is desirable and possible to use these methods within guards (see <a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>). 
+                  		These methods allow to write the specification of guards in a more concise and more expressive way. Determined by the signature,
+                  
+                  		the first four methods can only be used in a base-level guard (<a href="s5.4.2.html" title="&sect;5.4.2&nbsp;Base guards" class="sect">&sect;5.4.2</a>) because they require a reference to a base object.
+                  			
+               </p>
+               <h5 class="listing">Example code (Guards and Reflection):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> SpecialConditions {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>public</b> <b>void</b> participate(Account <b>as</b> BonusAccount ba) {}</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  <b>public</b> <b>class</b> BonusAccount <b>playedBy</b> Account</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>    <b>base</b> when(SpecialConditions.this.<em>hasRole</em>(base, BonusAccount.class))</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>  {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    <b>callin</b> <b>void</b> creditBonus(<b>int</b> amount) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>      base.creditBonus(amount + bonus);</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>    }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    <b>void</b> creditBonus(<b>int</b> amount) <b>&lt;-</b> <b>replace</b> <b>void</b> credit(<b>int</b> i)</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>      <b>base</b> <b>when</b> (i &gt; 1000);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  				This teams provides a bonus system for registered <code>Account</code>s. Every time an amount of more than 1000 is 
+                  				deposited to a registered account, additional 1% of the amount is credited.
+                  				 
+                  <ul>
+                     <li>The team level method <code>participate</code> in line 2 uses declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) 
+                        to allow the passed <code>Account</code> object to participate the bonus system provided by the 
+                        <code>SpecialConditions</code> team.
+                        	
+                     </li>
+                     <li>The base guard in line 4 uses the reflective method <code>hasRole</code> to check whether the base object already has a role 
+                        	of type <code>BonusAccount</code> in the surrounding team. The expression <code>BonusAccount.class</code> returns 
+                        	the <code>java.lang.Class</code> object representing the role <code>BonusAccount</code> 
+                        	(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                           class="ext">JLS &sect;15.8.2</a>). 
+                        	This guard ensures, that only accounts explicitly registered via <code>participate</code> are ever decorated with a role of type <code>BonusAccount</code>.
+                        
+                     </li>
+                     <li>The method binding guard in line 10 restricts the callin to <code>creditBonus</code> to calls where 
+                        					the base method argument <code>amount</code> is greater than 1000.
+                        					
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="subsect depth3" id="s6.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Behavioral reflection</span></h4>
+               <p>The following reflective methods defined in org.objectteams.ITeam can be used to
+                  			   inspect the dynamic behavior of a team:
+                  			
+               </p>
+               <dl>
+                  <dt><code>boolean isExecutingCallin () ;</code></dt>
+                  <dd>This method is used to inspect whether a control flow has already been intercepted by at least one callin binding of the current
+                     team. 
+                     					It can be used to avoid undesirable re-entrance to a team.
+                     				
+                  </dd>
+                  <dt><code>boolean isActive () ;</code></dt>
+                  <dd>This method checks whether the team instance is active for the current thread.
+                     				
+                  </dd>
+                  <dt><code>boolean isActive ( Thread aThread ) ;</code></dt>
+                  <dd>This method checks whether the team instance is active for the thread <code>aThread</code>.
+                     				
+                  </dd>
+               </dl>
+            </div>
+            <div class="subsect depth3" id="s6.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Class literals for roles</span></h4>
+               <p>The Java syntax for so-called class literals, <code>MyClass<strong>.class</strong></code> 
+                  		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                     class="ext">JLS &sect;15.8.2</a>) 
+                  		can be used for role types with slightly changed semantics: Role types are virtual types (<a href="s1.3.1.html"
+                     title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3.1</a>) 
+                  		that are bound dynamically  (<a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                     class="sect">&sect;1.3.1.(e)</a>). This applies to role class literals, too. 
+                  		From this follows the constraint that a role class literal can only be used within the non-static context of a team, 
+                  		ie., for evaluating a role class literal an enclosing team instance must be in scope.
+                  		<br />
+                  Unlike regular type checking for role types, the class literal itself does not have a dependent type. 
+                  Thus type checking of calls to methods like <code>hasRole(Object, Class)</code> cannot detect, whether the <code>Class</code> instance 
+                  has actually been obtained from the correct team instance. Any attempt to pass a class that is not known 
+                  as a bound role within the given team results in an <code>IllegalArgumentException</code> at run-time.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.html" rel="next">&sect;6.2&nbsp;Other API Elements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.a.html
new file mode 100644
index 0000000..1602955
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.a.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.b.html" rel="next">&sect;6.2.(b)&nbsp;Interface for explicit lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="subsect depth3" id="s6.2.a">
+            <h4 class="subsect">&sect;6.2.(a)&nbsp;<span class="title">Interfaces for role encapsulation</span></h4>
+            <p>A set of pre-defined types exist that do <span class="underline">not</span> extend <code>java.lang.Object</code>
+               			and have <span class="underline">no</span> features except the operators <code>==</code> and <code>!=</code>.
+               			
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               				The JLS defines that each interface declares all methods defined in <code>java.lang.Object</code> 
+               				(<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#32392"
+                  class="ext">JLS &sect;9.2</a>) 
+               				and also each object referenced by an interface type can be widened to <code>java.lang.Object</code>.
+               				Compilers commonly implement this by declaring <code>java.lang.Object</code> the super-type of all interfaces.
+               				Such implementation has no visible difference with respect to the more complex definition in the JLS.
+               			
+            </div>
+            <p>These predefined types are
+               			
+            </p>
+            <dl>
+               <dt><code>org.objectteams.IConfined</code></dt>
+               <dd>regular interface</dd>
+               <dt><code>org.objectteams.ITeam.IConfined</code></dt>
+               <dd>role interface</dd>
+               <dt><code>org.objectteams.Team.Confined</code></dt>
+               <dd>role class</dd>
+            </dl>
+            <p>These types provide no new functionality but inheriting from these types influences the semantics with respect to encapsulation.
+               
+               		The purpose and usage of these types is described in <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.b.html" rel="next">&sect;6.2.(b)&nbsp;Interface for explicit lowering&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.b.html
new file mode 100644
index 0000000..3a97e4c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.b.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(a)&nbsp;Interfaces for role encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.c.html" rel="next">&sect;6.2.(c)&nbsp;Team activation methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="subsect depth3" id="s6.2.b">
+            <h4 class="subsect">&sect;6.2.(b)&nbsp;<span class="title">Interface for explicit lowering</span></h4>
+            <p>The following role interface exists for the purpose of allowing explicit lowering:
+               			
+            </p>
+            <dl>
+               <dt><code>org.objectteams.ITeam.ILowerable</code></dt>
+               <dd>role interface</dd>
+            </dl>
+            <p>This interface was introduced in detail in <a href="s2.2.d.html" title="&sect;2.2.(d)&nbsp;Explicit lowering"
+                  class="sect">&sect;2.2.(d)</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(a)&nbsp;Interfaces for role encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.c.html" rel="next">&sect;6.2.(c)&nbsp;Team activation methods&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.c.html
new file mode 100644
index 0000000..5b41b0e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.c.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(b)&nbsp;Interface for explicit lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.d.html" rel="next">&sect;6.2.(d)&nbsp;Exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="subsect depth3" id="s6.2.c">
+            <h4 class="subsect">&sect;6.2.(c)&nbsp;<span class="title">Team activation methods</span></h4>
+            <p>Every team can be activated and deactivated by predefined methods of the interface <code>org.objectteams.ITeam</code>.
+               			
+            </p>
+            <dl>
+               <dt><code>activate()</code> and <code>activate(Thread th)</code></dt>
+               <dd>Methods for activation of a team</dd>
+               <dt><code>deactivate()</code> and <code>deactivate(Thread th)</code></dt>
+               <dd>Methods for deactivation of a team</dd>
+            </dl>
+            <p>The usage of these Methods is described in <a href="s5.2.b.html" title="&sect;5.2.(b)&nbsp;Imperative activation"
+                  class="sect">&sect;5.2.(b)</a>.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.2.b.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(b)&nbsp;Interface for explicit lowering</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.d.html" rel="next">&sect;6.2.(d)&nbsp;Exceptions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.d.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.d.html
new file mode 100644
index 0000000..2c75794
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.d.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(c)&nbsp;Team activation methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.e.html" rel="next">&sect;6.2.(e)&nbsp;Role migration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="subsect depth3" id="s6.2.d">
+            <h4 class="subsect">&sect;6.2.(d)&nbsp;<span class="title">Exceptions</span></h4>
+            <p>The following <code>Exceptions</code> can be thrown during the execution of an ObjectTeam/Java program:
+               			
+            </p>
+            <dl>
+               <dt><code>ResultNotProvidedException</code></dt>
+               <dd>Thrown if a replace callin without a base call does not provide the necessary (primitive type) base result 
+                  					(see <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                     class="sect">&sect;4.3.(e)</a>).
+               </dd>
+               <dt><code>LiftingFailedException</code></dt>
+               <dd>Thrown if an actual ambiguity occurs during lifting (see <a href="s2.3.4.c.html" title="&sect;2.3.4.(c)&nbsp;Actual ambiguity"
+                     class="sect">&sect;2.3.4.(c)</a>).
+               </dd>
+               <dt><code>WrongRoleException</code></dt>
+               <dd>Thrown during lifting if the base object has, with respect to the same team instance, previously been lifted 
+                  					to a role type that is not conform to the currently requested type 
+                  					(see <a href="s2.3.4.d.html" title="&sect;2.3.4.(d)&nbsp;Mismatching role"
+                     class="sect">&sect;2.3.4.(d)</a> and <a href="s2.4.3.html"
+                     title="&sect;2.4.3&nbsp;Role creation in the presence of smart lifting"
+                     class="sect">&sect;2.4.3</a>).
+               </dd>
+               <dt><code>DuplicateRoleException</code></dt>
+               <dd>Thrown during explicit role creation, if a new role is created for a base object, which already has a role 
+                  					of the required type in the given team (see <a href="s2.4.1.c.html"
+                     title="&sect;2.4.1.(c)&nbsp;Duplicate role runtime check"
+                     class="sect">&sect;2.4.1.(c)</a>).
+               </dd>
+               <dt><code>RoleCastException</code></dt>
+               <dd>Thrown during cast of an externalized role, if the casted expression is anchored to a different team instance 
+                  					than the cast type (see <a href="s1.2.4.b.html" title="&sect;1.2.4.(b)&nbsp;Casting" class="sect">&sect;1.2.4.(b)</a>).
+               </dd>
+               <dt><code>LiftingVetoException</code></dt>
+               <dd>This exception is used internally to abort the process of lifting when a relevant guard predicate (<a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) evaluated to false. 
+                  					Such exceptions thrown from generated code will never appear in client code, so there is usually no need to catch a <code>LiftingVetoException</code>.
+                  					However, in some situations it is useful to explicitly <em>throw</em> a <code>LiftingVetoException</code> from a lifting constructor (<a href="s2.3.1.b.html"
+                     title="&sect;2.3.1.(b)&nbsp;Default lifting constructor"
+                     class="sect">&sect;2.3.1.(b)</a>) of a role.
+                  					This style allows to abort lifting even after the lifting constructor has started to work and also for method parameters
+                  requiring lifting.
+                  					If lifting was triggered due to a callin method binding, this binding will simply not trigger if a <code>LiftingVetoException</code> is thrown
+                  					while preparing the call to the role method.
+               </dd>
+            </dl>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.2.c.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(c)&nbsp;Team activation methods</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s6.2.e.html" rel="next">&sect;6.2.(e)&nbsp;Role migration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.e.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.e.html
new file mode 100644
index 0000000..0430535
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.e.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(d)&nbsp;Exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+         <div class="subsect depth3" id="s6.2.e">
+            <h4 class="subsect">&sect;6.2.(e)&nbsp;<span class="title">Role migration</span></h4>
+            <p>The following interfaces can be used to enable role migration:</p>
+            <dl>
+               <dt><code>IBaseMigratable</code></dt>
+               <dd>This interface declares a method
+                  <div class="listing plain"><pre>
+    <code>&lt;B&gt; <b>void</b> migrateToBase(B otherBase)</code> </pre></div>
+                  					and instructs the compiler to generate an implementation of this method 
+                  					for any bound role declaring <code>IBaseMigratable</code> as its super-interface.<br />
+                  					The effect of calling <code>migrateToBase</code> on a role instance is to re-bind this role to a new base instance.
+                  					The base instance must be compatible to the role's base class (in order to avoid problems during lifting the
+                  					compiler may require the base to be of the exact type of the role's base class).
+                  					Passing <code>null</code> to this method causes an <code>NullPointerException</code> to be thrown.
+               </dd>
+               <dt><code>ITeamMigratable</code></dt>
+               <dd>This interface declares a method 
+                  <div class="listing plain"><pre>
+    <code>&lt;R&gt; R&lt;@otherTeam&gt; migrateToTeam(<b>final</b> ITeam otherTeam)</code></pre></div> 
+                  					and instructs the compiler to
+                  					generate an implementation of this method for any role declaring <code>ITeamMigratable</code> as its super-interface.<br />
+                  					The effect of calling <code>migrateToTeam</code> on a role instance is to re-bind this role to become a contained part of a new team instance.
+                  					The team instance must be of the exact type of the role's enclosing team.
+                  					Passing <code>null</code> to this method causes a <code>NullPointerException</code> to be thrown.<br /><div class="note">
+                     <h5>Caveat:</h5>
+                     					This method intentionally breaks the rules of family polymorphism: any reference <code>R&lt;@previousTeam&gt; r</code>
+                     					which was established before migration will incorrectly imply that the role's enclosing team still is <code>previousTeam</code>,
+                     					which is no longer true after migration.
+                     					While this does not effect any method lookup (which is still safe), further assumptions based on a role's dependent type
+                     					are invalidated by team migration. The same holds for references from the migrating role to any sibling role instances.<br />
+                     					If the rules of family polymorphism should be maintained one should just refrain from declaring <code>ITeamMigratable</code>
+                     					as a role's super-interface.
+                  </div>
+               </dd>
+            </dl>
+            <p>For both methods the signature declared in the interface is over-generalized, yet the compiler performs the necessary checks
+               to
+               			   ensure that role, base and team instances are indeed compatible and additionally the return type of <code>migrateToTeam</code>
+               			   is checked as a self-type, i.e., it reflects the exact type of the call target.
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.2.d.html" rel="prev">&lt;&lt;&nbsp;&sect;6.2.(d)&nbsp;Exceptions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a>&nbsp;&gt;&nbsp;<a class="nav" href="s6.2.html" rel="section">&sect;6.2&nbsp;Other API Elements</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.html
new file mode 100644
index 0000000..7a20f10
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.2.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.1.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1&nbsp;Reflection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+         <div class="sect depth2" id="s6.2">
+            <h2 class="sect">&sect;6.2&nbsp;Other API Elements</h2>
+            <div class="subsect depth3" id="s6.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Interfaces for role encapsulation</span></h4>
+               <p>A set of pre-defined types exist that do <span class="underline">not</span> extend <code>java.lang.Object</code>
+                  			and have <span class="underline">no</span> features except the operators <code>==</code> and <code>!=</code>.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  				The JLS defines that each interface declares all methods defined in <code>java.lang.Object</code> 
+                  				(<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#32392"
+                     class="ext">JLS &sect;9.2</a>) 
+                  				and also each object referenced by an interface type can be widened to <code>java.lang.Object</code>.
+                  				Compilers commonly implement this by declaring <code>java.lang.Object</code> the super-type of all interfaces.
+                  				Such implementation has no visible difference with respect to the more complex definition in the JLS.
+                  			
+               </div>
+               <p>These predefined types are
+                  			
+               </p>
+               <dl>
+                  <dt><code>org.objectteams.IConfined</code></dt>
+                  <dd>regular interface</dd>
+                  <dt><code>org.objectteams.ITeam.IConfined</code></dt>
+                  <dd>role interface</dd>
+                  <dt><code>org.objectteams.Team.Confined</code></dt>
+                  <dd>role class</dd>
+               </dl>
+               <p>These types provide no new functionality but inheriting from these types influences the semantics with respect to encapsulation.
+                  
+                  		The purpose and usage of these types is described in <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s6.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Interface for explicit lowering</span></h4>
+               <p>The following role interface exists for the purpose of allowing explicit lowering:
+                  			
+               </p>
+               <dl>
+                  <dt><code>org.objectteams.ITeam.ILowerable</code></dt>
+                  <dd>role interface</dd>
+               </dl>
+               <p>This interface was introduced in detail in <a href="s2.2.d.html" title="&sect;2.2.(d)&nbsp;Explicit lowering"
+                     class="sect">&sect;2.2.(d)</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s6.2.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Team activation methods</span></h4>
+               <p>Every team can be activated and deactivated by predefined methods of the interface <code>org.objectteams.ITeam</code>.
+                  			
+               </p>
+               <dl>
+                  <dt><code>activate()</code> and <code>activate(Thread th)</code></dt>
+                  <dd>Methods for activation of a team</dd>
+                  <dt><code>deactivate()</code> and <code>deactivate(Thread th)</code></dt>
+                  <dd>Methods for deactivation of a team</dd>
+               </dl>
+               <p>The usage of these Methods is described in <a href="s5.2.b.html" title="&sect;5.2.(b)&nbsp;Imperative activation"
+                     class="sect">&sect;5.2.(b)</a>.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s6.2.d">
+               <h4 class="subsect">(d)&nbsp;<span class="title">Exceptions</span></h4>
+               <p>The following <code>Exceptions</code> can be thrown during the execution of an ObjectTeam/Java program:
+                  			
+               </p>
+               <dl>
+                  <dt><code>ResultNotProvidedException</code></dt>
+                  <dd>Thrown if a replace callin without a base call does not provide the necessary (primitive type) base result 
+                     					(see <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                        class="sect">&sect;4.3.(e)</a>).
+                  </dd>
+                  <dt><code>LiftingFailedException</code></dt>
+                  <dd>Thrown if an actual ambiguity occurs during lifting (see <a href="s2.3.4.c.html" title="&sect;2.3.4.(c)&nbsp;Actual ambiguity"
+                        class="sect">&sect;2.3.4.(c)</a>).
+                  </dd>
+                  <dt><code>WrongRoleException</code></dt>
+                  <dd>Thrown during lifting if the base object has, with respect to the same team instance, previously been lifted 
+                     					to a role type that is not conform to the currently requested type 
+                     					(see <a href="s2.3.4.d.html" title="&sect;2.3.4.(d)&nbsp;Mismatching role"
+                        class="sect">&sect;2.3.4.(d)</a> and <a href="s2.4.3.html"
+                        title="&sect;2.4.3&nbsp;Role creation in the presence of smart lifting"
+                        class="sect">&sect;2.4.3</a>).
+                  </dd>
+                  <dt><code>DuplicateRoleException</code></dt>
+                  <dd>Thrown during explicit role creation, if a new role is created for a base object, which already has a role 
+                     					of the required type in the given team (see <a href="s2.4.1.c.html"
+                        title="&sect;2.4.1.(c)&nbsp;Duplicate role runtime check"
+                        class="sect">&sect;2.4.1.(c)</a>).
+                  </dd>
+                  <dt><code>RoleCastException</code></dt>
+                  <dd>Thrown during cast of an externalized role, if the casted expression is anchored to a different team instance 
+                     					than the cast type (see <a href="s1.2.4.b.html" title="&sect;1.2.4.(b)&nbsp;Casting" class="sect">&sect;1.2.4.(b)</a>).
+                  </dd>
+                  <dt><code>LiftingVetoException</code></dt>
+                  <dd>This exception is used internally to abort the process of lifting when a relevant guard predicate (<a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) evaluated to false. 
+                     					Such exceptions thrown from generated code will never appear in client code, so there is usually no need to catch a <code>LiftingVetoException</code>.
+                     					However, in some situations it is useful to explicitly <em>throw</em> a <code>LiftingVetoException</code> from a lifting constructor (<a href="s2.3.1.b.html"
+                        title="&sect;2.3.1.(b)&nbsp;Default lifting constructor"
+                        class="sect">&sect;2.3.1.(b)</a>) of a role.
+                     					This style allows to abort lifting even after the lifting constructor has started to work and also for method parameters
+                     requiring lifting.
+                     					If lifting was triggered due to a callin method binding, this binding will simply not trigger if a <code>LiftingVetoException</code> is thrown
+                     					while preparing the call to the role method.
+                  </dd>
+               </dl>
+            </div>
+            <div class="subsect depth3" id="s6.2.e">
+               <h4 class="subsect">(e)&nbsp;<span class="title">Role migration</span></h4>
+               <p>The following interfaces can be used to enable role migration:</p>
+               <dl>
+                  <dt><code>IBaseMigratable</code></dt>
+                  <dd>This interface declares a method
+                     <div class="listing plain"><pre>
+    <code>&lt;B&gt; <b>void</b> migrateToBase(B otherBase)</code> </pre></div>
+                     					and instructs the compiler to generate an implementation of this method 
+                     					for any bound role declaring <code>IBaseMigratable</code> as its super-interface.<br />
+                     					The effect of calling <code>migrateToBase</code> on a role instance is to re-bind this role to a new base instance.
+                     					The base instance must be compatible to the role's base class (in order to avoid problems during lifting the
+                     					compiler may require the base to be of the exact type of the role's base class).
+                     					Passing <code>null</code> to this method causes an <code>NullPointerException</code> to be thrown.
+                  </dd>
+                  <dt><code>ITeamMigratable</code></dt>
+                  <dd>This interface declares a method 
+                     <div class="listing plain"><pre>
+    <code>&lt;R&gt; R&lt;@otherTeam&gt; migrateToTeam(<b>final</b> ITeam otherTeam)</code></pre></div> 
+                     					and instructs the compiler to
+                     					generate an implementation of this method for any role declaring <code>ITeamMigratable</code> as its super-interface.<br />
+                     					The effect of calling <code>migrateToTeam</code> on a role instance is to re-bind this role to become a contained part of a new team instance.
+                     					The team instance must be of the exact type of the role's enclosing team.
+                     					Passing <code>null</code> to this method causes a <code>NullPointerException</code> to be thrown.<br /><div class="note">
+                        <h5>Caveat:</h5>
+                        					This method intentionally breaks the rules of family polymorphism: any reference <code>R&lt;@previousTeam&gt; r</code>
+                        					which was established before migration will incorrectly imply that the role's enclosing team still is <code>previousTeam</code>,
+                        					which is no longer true after migration.
+                        					While this does not effect any method lookup (which is still safe), further assumptions based on a role's dependent type
+                        					are invalidated by team migration. The same holds for references from the migrating role to any sibling role instances.<br />
+                        					If the rules of family polymorphism should be maintained one should just refrain from declaring <code>ITeamMigratable</code>
+                        					as a role's super-interface.
+                     </div>
+                  </dd>
+               </dl>
+               <p>For both methods the signature declared in the interface is over-generalized, yet the compiler performs the necessary checks
+                  to
+                  			   ensure that role, base and team instances are indeed compatible and additionally the return type of <code>migrateToTeam</code>
+                  			   is checked as a self-type, i.e., it reflects the exact type of the call target.
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.1.html" rel="prev">&lt;&lt;&nbsp;&sect;6.1&nbsp;Reflection</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s6.html" rel="section">&sect;6&nbsp;Object Teams API</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.html
new file mode 100644
index 0000000..5c63088
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s6.html
@@ -0,0 +1,404 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s5.html" rel="prev">&lt;&lt;&nbsp;&sect;5&nbsp;Team Activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.html" rel="next">&sect;7&nbsp;Role Encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s6">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;6&nbsp;Object Teams API</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s6.html">&sect;6&nbsp;Object Teams API</a></li>
+                  <li><a href="#s6.1">&sect;6.1&nbsp;Reflection</a></li>
+                  <li><a href="#s6.2">&sect;6.2&nbsp;Other API Elements</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>The role of predefined types and methods</h3>
+               <div class="line"></div>
+               <div class="term">Application Programming Interface (API)</div>
+               <div class="termdesc">Some features of OT/J are supported without introducing new syntax but by predefined types and methods.</div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s6.1">
+               <h2 class="sect">&sect;6.1&nbsp;Reflection<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;6</a></span></h2>
+               <p>Object Teams supports reflection with respect to teams, roles, and role-base relationships.
+                  		
+               </p>
+               <div class="subsect depth3" id="s6.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Interface to the role registry</span></h4>
+                  <p>Each team instance internally has a registry of known role objects indexed by their base object. 
+                     		Programmers may make use of this registry using the following reflective methods defined in 
+                     		<code>org.objectteams.ITeam</code>:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>boolean hasRole ( Object aBase ) ;</code></dt>
+                     <dd>This method checks whether a role for the passed base object already exists in the target team.
+                        				
+                     </dd>
+                     <dt><code>boolean hasRole ( Object aBase, Class expectedRole ) ;</code></dt>
+                     <dd>This method checks whether a instance of type <code>expectedRole</code> as a role for the passed base object 
+                        					<code>aBase</code> already exists in the target team.
+                        				    The role may also be of any subtype of the specified role type.
+                        				
+                     </dd>
+                     <dt><code>Object getRole ( Object aBase ) ;</code></dt>
+                     <dd>If the passed base object <code>aBase</code> already has a role in the target team, this role is returned. 
+                        					Otherwise <code>null</code> is returned.
+                        				
+                     </dd>
+                     <dt><code>&lt;T&gt; T getRole ( Object aBase, Class&lt;T&gt; expectedRole ) ;</code></dt>
+                     <dd>If the passed base object <code>aBase</code> already has a role in the target team that is assignable to the type represented by <code>expectedRole</code>, 
+                        					this role is returned. Otherwise <code>null</code> is returned.
+                        				
+                     </dd>
+                     <dt><code>Object[] getAllRoles () ;</code></dt>
+                     <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                           class="sect">bound roles (&sect;2.1.(a))</a> in the target team.
+                        					<br />
+                        This method uses internal structures of weak references. For that reason it may return role instances which were about 
+                        to be reclaimed by the garbage collector. If performance permits, it is thus advisable to always call <code>System.gc()</code> 
+                        prior to calling <code>getAllRoles()</code> in order to achieve deterministic results (see also <a href="s2.1.f.html" title="&sect;2.1.(f)&nbsp;Effect on garbage collection"
+                           class="sect">&sect;2.1.(f)</a>).
+                        				
+                     </dd>
+                     <dt><code>&lt;T&gt; T[] getAllRoles ( Class&lt;T&gt; expectedRole ) ;</code></dt>
+                     <dd>Retrieves all existing (registered) <a href="s2.1.a.html" title="&sect;2.1.(a)&nbsp;Role-base binding"
+                           class="sect">bound roles (&sect;2.1.(a))</a> in the target team that are assignable to the type represented by <code>expectedRole</code>. 
+                        					Class <code>expectedRole</code> must be a bound role otherwise an <code>IllegalArgumentException</code> is thrown.
+                        <br />
+                        See the note about garbage collection above.
+                        				
+                     </dd>
+                     <dt><code>void unregisterRole ( Object aRole ) ;</code></dt>
+                     <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                        					After calling this method the role should no longer be used.
+                        				
+                     </dd>
+                     <dt><code>void unregisterRole ( Object aRole, Class roleClass ) ;</code></dt>
+                     <dd>This method unregisters the passed role object from the target team. Thus the corresponding base looses this role. 
+                        					After calling this method the role should no longer be used. 
+                        					The only difference to the previous method is improved speed because no search for the corresponding registry 
+                        					has to be performed.
+                        				
+                     </dd>
+                  </dl>
+                  <p>It is desirable and possible to use these methods within guards (see <a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>). 
+                     		These methods allow to write the specification of guards in a more concise and more expressive way. Determined by the signature,
+                     
+                     		the first four methods can only be used in a base-level guard (<a href="s5.4.2.html" title="&sect;5.4.2&nbsp;Base guards" class="sect">&sect;5.4.2</a>) because they require a reference to a base object.
+                     			
+                  </p>
+                  <h5 class="listing">Example code (Guards and Reflection):</h5>
+                  <div class="listing example frame">
+                     <table class="listing">
+                        <tr class="line odd">
+                           <td class="ln">1</td>
+                           <td><pre><b>public</b> <b>team</b> <b>class</b> SpecialConditions {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">2</td>
+                           <td><pre>  <b>public</b> <b>void</b> participate(Account <b>as</b> BonusAccount ba) {}</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">3</td>
+                           <td><pre>  <b>public</b> <b>class</b> BonusAccount <b>playedBy</b> Account</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">4</td>
+                           <td><pre>    <b>base</b> when(SpecialConditions.this.<em>hasRole</em>(base, BonusAccount.class))</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">5</td>
+                           <td><pre>  {</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">6</td>
+                           <td><pre>    <b>callin</b> <b>void</b> creditBonus(<b>int</b> amount) {</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">7</td>
+                           <td><pre>      base.creditBonus(amount + bonus);</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">8</td>
+                           <td><pre>    }</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">9</td>
+                           <td><pre>    <b>void</b> creditBonus(<b>int</b> amount) <b>&lt;-</b> <b>replace</b> <b>void</b> credit(<b>int</b> i)</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">10</td>
+                           <td><pre>      <b>base</b> <b>when</b> (i &gt; 1000);</pre></td>
+                        </tr>
+                        <tr class="line odd">
+                           <td class="ln">11</td>
+                           <td><pre>  }</pre></td>
+                        </tr>
+                        <tr class="line even">
+                           <td class="ln">12</td>
+                           <td><pre>}</pre></td>
+                        </tr>
+                     </table>
+                  </div>
+                  <div class="codecomment">
+                     <h5>Effects:</h5>
+                     				This teams provides a bonus system for registered <code>Account</code>s. Every time an amount of more than 1000 is 
+                     				deposited to a registered account, additional 1% of the amount is credited.
+                     				 
+                     <ul>
+                        <li>The team level method <code>participate</code> in line 2 uses declared lifting (see <a href="s2.3.2.html" title="&sect;2.3.2&nbsp;Declared lifting" class="sect">&sect;2.3.2</a>) 
+                           to allow the passed <code>Account</code> object to participate the bonus system provided by the 
+                           <code>SpecialConditions</code> team.
+                           	
+                        </li>
+                        <li>The base guard in line 4 uses the reflective method <code>hasRole</code> to check whether the base object already has a role 
+                           	of type <code>BonusAccount</code> in the surrounding team. The expression <code>BonusAccount.class</code> returns 
+                           	the <code>java.lang.Class</code> object representing the role <code>BonusAccount</code> 
+                           	(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                              class="ext">JLS &sect;15.8.2</a>). 
+                           	This guard ensures, that only accounts explicitly registered via <code>participate</code> are ever decorated with a role of type <code>BonusAccount</code>.
+                           
+                        </li>
+                        <li>The method binding guard in line 10 restricts the callin to <code>creditBonus</code> to calls where 
+                           					the base method argument <code>amount</code> is greater than 1000.
+                           					
+                        </li>
+                     </ul>
+                  </div>
+               </div>
+               <div class="subsect depth3" id="s6.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Behavioral reflection</span></h4>
+                  <p>The following reflective methods defined in org.objectteams.ITeam can be used to
+                     			   inspect the dynamic behavior of a team:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>boolean isExecutingCallin () ;</code></dt>
+                     <dd>This method is used to inspect whether a control flow has already been intercepted by at least one callin binding of the current
+                        team. 
+                        					It can be used to avoid undesirable re-entrance to a team.
+                        				
+                     </dd>
+                     <dt><code>boolean isActive () ;</code></dt>
+                     <dd>This method checks whether the team instance is active for the current thread.
+                        				
+                     </dd>
+                     <dt><code>boolean isActive ( Thread aThread ) ;</code></dt>
+                     <dd>This method checks whether the team instance is active for the thread <code>aThread</code>.
+                        				
+                     </dd>
+                  </dl>
+               </div>
+               <div class="subsect depth3" id="s6.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Class literals for roles</span></h4>
+                  <p>The Java syntax for so-called class literals, <code>MyClass<strong>.class</strong></code> 
+                     		(see <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530"
+                        class="ext">JLS &sect;15.8.2</a>) 
+                     		can be used for role types with slightly changed semantics: Role types are virtual types (<a href="s1.3.1.html"
+                        title="&sect;1.3.1&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3.1</a>) 
+                     		that are bound dynamically  (<a href="s1.3.1.e.html" title="&sect;1.3.1.(e)&nbsp;Dynamic binding of types"
+                        class="sect">&sect;1.3.1.(e)</a>). This applies to role class literals, too. 
+                     		From this follows the constraint that a role class literal can only be used within the non-static context of a team, 
+                     		ie., for evaluating a role class literal an enclosing team instance must be in scope.
+                     		<br />
+                     Unlike regular type checking for role types, the class literal itself does not have a dependent type. 
+                     Thus type checking of calls to methods like <code>hasRole(Object, Class)</code> cannot detect, whether the <code>Class</code> instance 
+                     has actually been obtained from the correct team instance. Any attempt to pass a class that is not known 
+                     as a bound role within the given team results in an <code>IllegalArgumentException</code> at run-time.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s6.2">
+               <h2 class="sect">&sect;6.2&nbsp;Other API Elements<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;6</a></span></h2>
+               <div class="subsect depth3" id="s6.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Interfaces for role encapsulation</span></h4>
+                  <p>A set of pre-defined types exist that do <span class="underline">not</span> extend <code>java.lang.Object</code>
+                     			and have <span class="underline">no</span> features except the operators <code>==</code> and <code>!=</code>.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     				The JLS defines that each interface declares all methods defined in <code>java.lang.Object</code> 
+                     				(<a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#32392"
+                        class="ext">JLS &sect;9.2</a>) 
+                     				and also each object referenced by an interface type can be widened to <code>java.lang.Object</code>.
+                     				Compilers commonly implement this by declaring <code>java.lang.Object</code> the super-type of all interfaces.
+                     				Such implementation has no visible difference with respect to the more complex definition in the JLS.
+                     			
+                  </div>
+                  <p>These predefined types are
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>org.objectteams.IConfined</code></dt>
+                     <dd>regular interface</dd>
+                     <dt><code>org.objectteams.ITeam.IConfined</code></dt>
+                     <dd>role interface</dd>
+                     <dt><code>org.objectteams.Team.Confined</code></dt>
+                     <dd>role class</dd>
+                  </dl>
+                  <p>These types provide no new functionality but inheriting from these types influences the semantics with respect to encapsulation.
+                     
+                     		The purpose and usage of these types is described in <a href="s7.html" title="&sect;7&nbsp;Role Encapsulation" class="sect">&sect;7</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Interface for explicit lowering</span></h4>
+                  <p>The following role interface exists for the purpose of allowing explicit lowering:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>org.objectteams.ITeam.ILowerable</code></dt>
+                     <dd>role interface</dd>
+                  </dl>
+                  <p>This interface was introduced in detail in <a href="s2.2.d.html" title="&sect;2.2.(d)&nbsp;Explicit lowering"
+                        class="sect">&sect;2.2.(d)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Team activation methods</span></h4>
+                  <p>Every team can be activated and deactivated by predefined methods of the interface <code>org.objectteams.ITeam</code>.
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>activate()</code> and <code>activate(Thread th)</code></dt>
+                     <dd>Methods for activation of a team</dd>
+                     <dt><code>deactivate()</code> and <code>deactivate(Thread th)</code></dt>
+                     <dd>Methods for deactivation of a team</dd>
+                  </dl>
+                  <p>The usage of these Methods is described in <a href="s5.2.b.html" title="&sect;5.2.(b)&nbsp;Imperative activation"
+                        class="sect">&sect;5.2.(b)</a>.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s6.2.d">
+                  <h4 class="subsect">(d)&nbsp;<span class="title">Exceptions</span></h4>
+                  <p>The following <code>Exceptions</code> can be thrown during the execution of an ObjectTeam/Java program:
+                     			
+                  </p>
+                  <dl>
+                     <dt><code>ResultNotProvidedException</code></dt>
+                     <dd>Thrown if a replace callin without a base call does not provide the necessary (primitive type) base result 
+                        					(see <a href="s4.3.e.html" title="&sect;4.3.(e)&nbsp;Fragile callin binding"
+                           class="sect">&sect;4.3.(e)</a>).
+                     </dd>
+                     <dt><code>LiftingFailedException</code></dt>
+                     <dd>Thrown if an actual ambiguity occurs during lifting (see <a href="s2.3.4.c.html" title="&sect;2.3.4.(c)&nbsp;Actual ambiguity"
+                           class="sect">&sect;2.3.4.(c)</a>).
+                     </dd>
+                     <dt><code>WrongRoleException</code></dt>
+                     <dd>Thrown during lifting if the base object has, with respect to the same team instance, previously been lifted 
+                        					to a role type that is not conform to the currently requested type 
+                        					(see <a href="s2.3.4.d.html" title="&sect;2.3.4.(d)&nbsp;Mismatching role"
+                           class="sect">&sect;2.3.4.(d)</a> and <a href="s2.4.3.html"
+                           title="&sect;2.4.3&nbsp;Role creation in the presence of smart lifting"
+                           class="sect">&sect;2.4.3</a>).
+                     </dd>
+                     <dt><code>DuplicateRoleException</code></dt>
+                     <dd>Thrown during explicit role creation, if a new role is created for a base object, which already has a role 
+                        					of the required type in the given team (see <a href="s2.4.1.c.html"
+                           title="&sect;2.4.1.(c)&nbsp;Duplicate role runtime check"
+                           class="sect">&sect;2.4.1.(c)</a>).
+                     </dd>
+                     <dt><code>RoleCastException</code></dt>
+                     <dd>Thrown during cast of an externalized role, if the casted expression is anchored to a different team instance 
+                        					than the cast type (see <a href="s1.2.4.b.html" title="&sect;1.2.4.(b)&nbsp;Casting" class="sect">&sect;1.2.4.(b)</a>).
+                     </dd>
+                     <dt><code>LiftingVetoException</code></dt>
+                     <dd>This exception is used internally to abort the process of lifting when a relevant guard predicate (<a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) evaluated to false. 
+                        					Such exceptions thrown from generated code will never appear in client code, so there is usually no need to catch a <code>LiftingVetoException</code>.
+                        					However, in some situations it is useful to explicitly <em>throw</em> a <code>LiftingVetoException</code> from a lifting constructor (<a href="s2.3.1.b.html"
+                           title="&sect;2.3.1.(b)&nbsp;Default lifting constructor"
+                           class="sect">&sect;2.3.1.(b)</a>) of a role.
+                        					This style allows to abort lifting even after the lifting constructor has started to work and also for method parameters
+                        requiring lifting.
+                        					If lifting was triggered due to a callin method binding, this binding will simply not trigger if a <code>LiftingVetoException</code> is thrown
+                        					while preparing the call to the role method.
+                     </dd>
+                  </dl>
+               </div>
+               <div class="subsect depth3" id="s6.2.e">
+                  <h4 class="subsect">(e)&nbsp;<span class="title">Role migration</span></h4>
+                  <p>The following interfaces can be used to enable role migration:</p>
+                  <dl>
+                     <dt><code>IBaseMigratable</code></dt>
+                     <dd>This interface declares a method
+                        <div class="listing plain"><pre>
+    <code>&lt;B&gt; <b>void</b> migrateToBase(B otherBase)</code> </pre></div>
+                        					and instructs the compiler to generate an implementation of this method 
+                        					for any bound role declaring <code>IBaseMigratable</code> as its super-interface.<br />
+                        					The effect of calling <code>migrateToBase</code> on a role instance is to re-bind this role to a new base instance.
+                        					The base instance must be compatible to the role's base class (in order to avoid problems during lifting the
+                        					compiler may require the base to be of the exact type of the role's base class).
+                        					Passing <code>null</code> to this method causes an <code>NullPointerException</code> to be thrown.
+                     </dd>
+                     <dt><code>ITeamMigratable</code></dt>
+                     <dd>This interface declares a method 
+                        <div class="listing plain"><pre>
+    <code>&lt;R&gt; R&lt;@otherTeam&gt; migrateToTeam(<b>final</b> ITeam otherTeam)</code></pre></div> 
+                        					and instructs the compiler to
+                        					generate an implementation of this method for any role declaring <code>ITeamMigratable</code> as its super-interface.<br />
+                        					The effect of calling <code>migrateToTeam</code> on a role instance is to re-bind this role to become a contained part of a new team instance.
+                        					The team instance must be of the exact type of the role's enclosing team.
+                        					Passing <code>null</code> to this method causes a <code>NullPointerException</code> to be thrown.<br /><div class="note">
+                           <h5>Caveat:</h5>
+                           					This method intentionally breaks the rules of family polymorphism: any reference <code>R&lt;@previousTeam&gt; r</code>
+                           					which was established before migration will incorrectly imply that the role's enclosing team still is <code>previousTeam</code>,
+                           					which is no longer true after migration.
+                           					While this does not effect any method lookup (which is still safe), further assumptions based on a role's dependent type
+                           					are invalidated by team migration. The same holds for references from the migrating role to any sibling role instances.<br />
+                           					If the rules of family polymorphism should be maintained one should just refrain from declaring <code>ITeamMigratable</code>
+                           					as a role's super-interface.
+                        </div>
+                     </dd>
+                  </dl>
+                  <p>For both methods the signature declared in the interface is over-generalized, yet the compiler performs the necessary checks
+                     to
+                     			   ensure that role, base and team instances are indeed compatible and additionally the return type of <code>migrateToTeam</code>
+                     			   is checked as a self-type, i.e., it reflects the exact type of the call target.
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s5.html" rel="prev">&lt;&lt;&nbsp;&sect;5&nbsp;Team Activation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.html" rel="next">&sect;7&nbsp;Role Encapsulation&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.1.html
new file mode 100644
index 0000000..a68cff2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.1.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.2.html" rel="next">&sect;7.2&nbsp;Confined roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+         <div class="sect depth2" id="s7.1">
+            <h2 class="sect">&sect;7.1&nbsp;Opaque roles</h2>
+            <p>The purpose of the two <code>IConfined</code> interfaces (see <a href="s6.2.a.html"
+                  title="&sect;6.2.(a)&nbsp;Interfaces for role encapsulation"
+                  class="sect">&sect;6.2.(a)</a>) is to define
+               <strong>opaque roles</strong>: Any role implementing <code>IConfined</code>
+               can be externalized using this type, such that external clients
+               cannot access any features of the role. The type <code>IConfined</code>
+               exposes no features and references of this type cannot be widened
+               to any type not even to <code>java.lang.Object</code>.
+               <br />
+               If the actual role type is furthermore invisible outside the team 
+               (by not declaring it <code>public</code>), it is perfectly safe to externalize
+               such roles using type <code>IConfined</code> (which is a public interface)
+               and pass them back to the owning team. The encapsulation
+               of the team is in no way breached by externalizing opaque roles,
+               which can only be used as a handle into internal state of the team.
+               	
+            </p>
+            <p>The difference between the two mentioned interfaces is that
+               <code>ITeam.IConfined</code> requires to use this type or any subtype
+               as externalized role. Such a reference contains the information of
+               the enclosing team. Even stricter control can be imposed using the
+               regular interface <code>IConfined</code>. Here not even team membership
+               is visible to clients using a reference of this type.
+               	
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.2.html" rel="next">&sect;7.2&nbsp;Confined roles&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.a.html
new file mode 100644
index 0000000..fbfcedd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.a.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.2.b.html" rel="next">&sect;7.2.(b)&nbsp;Arrays of Confined&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s7.2.html" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+         <div class="subsect depth3" id="s7.2.a">
+            <h4 class="subsect">&sect;7.2.(a)&nbsp;<span class="title">Inhibition of overriding</span></h4>
+            <p>The types <code>ITeam.IConfined</code> and <code>Team.Confined</code>
+               			cannot be overridden (cf. <a href="s1.3.1.c.html"
+                  title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                  class="sect">&sect;1.3.1.(c)</a>).
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s7.2.b.html" rel="next">&sect;7.2.(b)&nbsp;Arrays of Confined&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s7.2.html" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.b.html
new file mode 100644
index 0000000..0e4af07
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.b.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s7.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;7.2.(a)&nbsp;Inhibition of overriding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s7.2.html" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+         <div class="subsect depth3" id="s7.2.b">
+            <h4 class="subsect">&sect;7.2.(b)&nbsp;<span class="title">Arrays of Confined</span></h4>
+            <p>For any confined type <code>C</code>, i.e., a type which is not compatible to <code>Object</code>, an array of <code>C</code> is not compatible to an array of <code>Object</code> nor to <code>Object</code> itself. This rule ensures that confinement cannot be bypassed by a sequence of compatible assignments and casts.
+               			
+            </p>
+            <div class="note">
+               <h5>Upcoming:</h5>
+               				Only by widening to a non-role super-type, a role instance can
+               				be accessed from outside the team. In the future this can be inhibited by
+               				restricted inheritance.
+               			
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s7.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;7.2.(a)&nbsp;Inhibition of overriding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s7.2.html" rel="section">&sect;7.2&nbsp;Confined roles</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.html
new file mode 100644
index 0000000..918d47a
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.2.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s7.1.html" rel="prev">&lt;&lt;&nbsp;&sect;7.1&nbsp;Opaque roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+         <div class="sect depth2" id="s7.2">
+            <h2 class="sect">&sect;7.2&nbsp;Confined roles</h2>
+            <p>
+               			Subclassing <code>Team.Confined</code> with a protected class
+               			yields a role class to which no object outside the team will
+               			ever have a reference. 
+               			The point here is that instances of a role class with a regular super class 
+               			can be widened to this super class.
+               			Widening can occur either in an assignment or when invoking a method which the role
+               			inherits from the regular super class, where the <code>this</code> reference is widened.
+               			In both cases the widened reference is no longer protected by the team and can leak out.
+               This would break encapsulation of a role object that should only be accessible within the enclosing team.<br />
+               			Subclasses of <code>Team.Confined</code> are not compatible to any class outside their enclosing team (including <code>java.lang.Object</code>) and do not inherit any methods
+               			that have the danger of leaking <code>this</code>.
+               		
+            </p>
+            <div class="subsect depth3" id="s7.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Inhibition of overriding</span></h4>
+               <p>The types <code>ITeam.IConfined</code> and <code>Team.Confined</code>
+                  			cannot be overridden (cf. <a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>).
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s7.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Arrays of Confined</span></h4>
+               <p>For any confined type <code>C</code>, i.e., a type which is not compatible to <code>Object</code>, an array of <code>C</code> is not compatible to an array of <code>Object</code> nor to <code>Object</code> itself. This rule ensures that confinement cannot be bypassed by a sequence of compatible assignments and casts.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Upcoming:</h5>
+                  				Only by widening to a non-role super-type, a role instance can
+                  				be accessed from outside the team. In the future this can be inhibited by
+                  				restricted inheritance.
+                  			
+               </div>
+            </div>
+            <h5 class="listing">Example code (Role Encapsulation):</h5>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">1</td>
+                     <td><pre><b>public</b> <b>team</b> <b>class</b> Company {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">2</td>
+                     <td><pre>  <b>private</b> HashMap&lt;String,Employee&gt; employees;</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">3</td>
+                     <td><pre>  ...</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">4</td>
+                     <td><pre>  <b>protected</b> <b>class</b> Employee <em><b>implements</b> IConfined</em> {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">5</td>
+                     <td><pre>    <b>void</b> pay(<b>int</b> amount) { ... }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">6</td>
+                     <td><pre>    ...</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">7</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">8</td>
+                     <td><pre>  <b>public</b> <em>IConfined</em> getEmployee(String ID) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">9</td>
+                     <td><pre>    <b>return</b> employees.get(ID); <span class="comment">// implicit widening to IConfined</span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">10</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">11</td>
+                     <td><pre>  <b>public</b> <b>void</b> payBonus(<em>IConfined</em> emp, <b>int</b> amount) {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">12</td>
+                     <td><pre>    ((Employee)emp).pay(amount); <span class="comment">// explicit narrowing</span></pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">13</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">14</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="listing example frame">
+               <table class="listing">
+                  <tr class="line odd">
+                     <td class="ln">15</td>
+                     <td><pre><b>public</b> <b>class</b> Ma<b>in</b> {</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">16</td>
+                     <td><pre>  <b>public</b> <b>static</b> <b>void</b> main(String[] args) {</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">17</td>
+                     <td><pre>    <b>final</b> Company comp = <b>new</b> Company();</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">18</td>
+                     <td><pre>    <em>IConfined</em>&lt;@comp&gt; emp = comp.getEmployee("emp1");</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">19</td>
+                     <td><pre>    <span class="comment">// System.out.println(emp); &lt;– <span class="error"><strong>forbidden!</strong></span></span></pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">20</td>
+                     <td><pre>    comp.payBonus(emp, 100);</pre></td>
+                  </tr>
+                  <tr class="line odd">
+                     <td class="ln">21</td>
+                     <td><pre>  }</pre></td>
+                  </tr>
+                  <tr class="line even">
+                     <td class="ln">22</td>
+                     <td><pre>}</pre></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="codecomment">
+               <h5>Effects:</h5>
+               <ul>
+                  <li>The <code>protected</code> role <code>Employee</code> implements 
+                     					the above described interface <code>IConfined</code> and therefore 
+                     					becomes <strong>opaque</strong> (line 4). 
+                  </li>
+                  <li>Methods sharing such an opaque role with the outside of the enclosing team 
+                     					have to use the type <code>IConfined</code> (line 8, line 11).
+                  </li>
+                  <li>It is possible to obtain an instance of such a role by using the type <code>IConfined</code> (line 18).
+                  </li>
+                  <li>Trying to access any feature of this instance, for example <code>toString()</code>, 
+                     					will cause a compilation error (line 19).
+                  </li>
+                  <li>Passing the opaque role reference back into the team works well (line 20).</li>
+                  <li>Inside the team some conversions between the types <code>IConfined</code> 
+                     					and the intrinsic role type <code>Employee</code> may be necessary (line 9 and 12).
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s7.1.html" rel="prev">&lt;&lt;&nbsp;&sect;7.1&nbsp;Opaque roles</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s7.html" rel="section">&sect;7&nbsp;Role Encapsulation</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.html
new file mode 100644
index 0000000..b82a6f5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s7.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s6.html" rel="prev">&lt;&lt;&nbsp;&sect;6&nbsp;Object Teams API</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.html" rel="next">&sect;8&nbsp;Join Point Queries&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s7">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;7&nbsp;Role Encapsulation</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s7.html">&sect;7&nbsp;Role Encapsulation</a></li>
+                  <li><a href="#s7.1">&sect;7.1&nbsp;Opaque roles</a></li>
+                  <li><a href="#s7.2">&sect;7.2&nbsp;Confined roles</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Concepts of encapsulation</h3>
+               <div class="line"></div>
+               <div class="term">Protected roles</div>
+               <div class="termdesc">A role with visibility <code>protected</code> cannot be externalized, which means its type 
+                  				cannot be used outside the declaring team (<a href="s1.2.3.html" title="&sect;1.2.3&nbsp;Protected roles" class="sect">&sect;1.2.3</a>).
+               </div>
+               <div class="line"></div>
+               <div class="term">Confined roles</div>
+               <div class="termdesc">Confined roles are encapsulated even stricter than protected roles: the compiler will ensure that 
+                  				by no means any object outside the enclosing team will ever have a reference to a confined role.
+               </div>
+               <div class="line"></div>
+               <div class="term">Opaque roles</div>
+               <div class="termdesc">Opaque roles build on the guarantees of confined roles but allow to be shared in a limited way such that
+                  				no information is exposed.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s7.1">
+               <h2 class="sect">&sect;7.1&nbsp;Opaque roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;7</a></span></h2>
+               <p>The purpose of the two <code>IConfined</code> interfaces (see <a href="s6.2.a.html"
+                     title="&sect;6.2.(a)&nbsp;Interfaces for role encapsulation"
+                     class="sect">&sect;6.2.(a)</a>) is to define
+                  <strong>opaque roles</strong>: Any role implementing <code>IConfined</code>
+                  can be externalized using this type, such that external clients
+                  cannot access any features of the role. The type <code>IConfined</code>
+                  exposes no features and references of this type cannot be widened
+                  to any type not even to <code>java.lang.Object</code>.
+                  <br />
+                  If the actual role type is furthermore invisible outside the team 
+                  (by not declaring it <code>public</code>), it is perfectly safe to externalize
+                  such roles using type <code>IConfined</code> (which is a public interface)
+                  and pass them back to the owning team. The encapsulation
+                  of the team is in no way breached by externalizing opaque roles,
+                  which can only be used as a handle into internal state of the team.
+                  	
+               </p>
+               <p>The difference between the two mentioned interfaces is that
+                  <code>ITeam.IConfined</code> requires to use this type or any subtype
+                  as externalized role. Such a reference contains the information of
+                  the enclosing team. Even stricter control can be imposed using the
+                  regular interface <code>IConfined</code>. Here not even team membership
+                  is visible to clients using a reference of this type.
+                  	
+               </p>
+            </div>
+            <div class="sect depth2" id="s7.2">
+               <h2 class="sect">&sect;7.2&nbsp;Confined roles<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;7</a></span></h2>
+               <p>
+                  			Subclassing <code>Team.Confined</code> with a protected class
+                  			yields a role class to which no object outside the team will
+                  			ever have a reference. 
+                  			The point here is that instances of a role class with a regular super class 
+                  			can be widened to this super class.
+                  			Widening can occur either in an assignment or when invoking a method which the role
+                  			inherits from the regular super class, where the <code>this</code> reference is widened.
+                  			In both cases the widened reference is no longer protected by the team and can leak out.
+                  This would break encapsulation of a role object that should only be accessible within the enclosing team.<br />
+                  			Subclasses of <code>Team.Confined</code> are not compatible to any class outside their enclosing team (including <code>java.lang.Object</code>) and do not inherit any methods
+                  			that have the danger of leaking <code>this</code>.
+                  		
+               </p>
+               <div class="subsect depth3" id="s7.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Inhibition of overriding</span></h4>
+                  <p>The types <code>ITeam.IConfined</code> and <code>Team.Confined</code>
+                     			cannot be overridden (cf. <a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a>).
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s7.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Arrays of Confined</span></h4>
+                  <p>For any confined type <code>C</code>, i.e., a type which is not compatible to <code>Object</code>, an array of <code>C</code> is not compatible to an array of <code>Object</code> nor to <code>Object</code> itself. This rule ensures that confinement cannot be bypassed by a sequence of compatible assignments and casts.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Upcoming:</h5>
+                     				Only by widening to a non-role super-type, a role instance can
+                     				be accessed from outside the team. In the future this can be inhibited by
+                     				restricted inheritance.
+                     			
+                  </div>
+               </div>
+               <h5 class="listing">Example code (Role Encapsulation):</h5>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">1</td>
+                        <td><pre><b>public</b> <b>team</b> <b>class</b> Company {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">2</td>
+                        <td><pre>  <b>private</b> HashMap&lt;String,Employee&gt; employees;</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">3</td>
+                        <td><pre>  ...</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">4</td>
+                        <td><pre>  <b>protected</b> <b>class</b> Employee <em><b>implements</b> IConfined</em> {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">5</td>
+                        <td><pre>    <b>void</b> pay(<b>int</b> amount) { ... }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">6</td>
+                        <td><pre>    ...</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">7</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">8</td>
+                        <td><pre>  <b>public</b> <em>IConfined</em> getEmployee(String ID) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">9</td>
+                        <td><pre>    <b>return</b> employees.get(ID); <span class="comment">// implicit widening to IConfined</span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">10</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">11</td>
+                        <td><pre>  <b>public</b> <b>void</b> payBonus(<em>IConfined</em> emp, <b>int</b> amount) {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">12</td>
+                        <td><pre>    ((Employee)emp).pay(amount); <span class="comment">// explicit narrowing</span></pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">13</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">14</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="listing example frame">
+                  <table class="listing">
+                     <tr class="line odd">
+                        <td class="ln">15</td>
+                        <td><pre><b>public</b> <b>class</b> Ma<b>in</b> {</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">16</td>
+                        <td><pre>  <b>public</b> <b>static</b> <b>void</b> main(String[] args) {</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">17</td>
+                        <td><pre>    <b>final</b> Company comp = <b>new</b> Company();</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">18</td>
+                        <td><pre>    <em>IConfined</em>&lt;@comp&gt; emp = comp.getEmployee("emp1");</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">19</td>
+                        <td><pre>    <span class="comment">// System.out.println(emp); &lt;– <span class="error"><strong>forbidden!</strong></span></span></pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">20</td>
+                        <td><pre>    comp.payBonus(emp, 100);</pre></td>
+                     </tr>
+                     <tr class="line odd">
+                        <td class="ln">21</td>
+                        <td><pre>  }</pre></td>
+                     </tr>
+                     <tr class="line even">
+                        <td class="ln">22</td>
+                        <td><pre>}</pre></td>
+                     </tr>
+                  </table>
+               </div>
+               <div class="codecomment">
+                  <h5>Effects:</h5>
+                  <ul>
+                     <li>The <code>protected</code> role <code>Employee</code> implements 
+                        					the above described interface <code>IConfined</code> and therefore 
+                        					becomes <strong>opaque</strong> (line 4). 
+                     </li>
+                     <li>Methods sharing such an opaque role with the outside of the enclosing team 
+                        					have to use the type <code>IConfined</code> (line 8, line 11).
+                     </li>
+                     <li>It is possible to obtain an instance of such a role by using the type <code>IConfined</code> (line 18).
+                     </li>
+                     <li>Trying to access any feature of this instance, for example <code>toString()</code>, 
+                        					will cause a compilation error (line 19).
+                     </li>
+                     <li>Passing the opaque role reference back into the team works well (line 20).</li>
+                     <li>Inside the team some conversions between the types <code>IConfined</code> 
+                        					and the intrinsic role type <code>Employee</code> may be necessary (line 9 and 12).
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s6.html" rel="prev">&lt;&lt;&nbsp;&sect;6&nbsp;Object Teams API</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.html" rel="next">&sect;8&nbsp;Join Point Queries&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.1.html
new file mode 100644
index 0000000..89553ea
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.1.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.2.html" rel="next">&sect;8.2&nbsp;Query expressions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+         <div class="sect depth2" id="s8.1">
+            <h2 class="sect">&sect;8.1&nbsp;Join point queries</h2>
+            <p><strong><em>This section will describe the query language used to define sets
+                     	of join points. As of version 1.4.0 of the OTDT this query language is not yet supported.</em></strong></p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.2.html" rel="next">&sect;8.2&nbsp;Query expressions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.2.html
new file mode 100644
index 0000000..3809a54
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s8.1.html" rel="prev">&lt;&lt;&nbsp;&sect;8.1&nbsp;Join point queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.3.html" rel="next">&sect;8.3&nbsp;OT/J meta model&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+         <div class="sect depth2" id="s8.2">
+            <h2 class="sect">&sect;8.2&nbsp;Query expressions</h2>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s8.1.html" rel="prev">&lt;&lt;&nbsp;&sect;8.1&nbsp;Join point queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s8.3.html" rel="next">&sect;8.3&nbsp;OT/J meta model&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.3.html
new file mode 100644
index 0000000..7f975e1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s8.2.html" rel="prev">&lt;&lt;&nbsp;&sect;8.2&nbsp;Query expressions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+         <div class="sect depth2" id="s8.3">
+            <h2 class="sect">&sect;8.3&nbsp;OT/J meta model</h2>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s8.2.html" rel="prev">&lt;&lt;&nbsp;&sect;8.2&nbsp;Query expressions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s8.html" rel="section">&sect;8&nbsp;Join Point Queries</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.html
new file mode 100644
index 0000000..34b80e2
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s8.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s7.html" rel="prev">&lt;&lt;&nbsp;&sect;7&nbsp;Role Encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.html" rel="next">&sect;9&nbsp;Value Dependent Classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s8">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;8&nbsp;Join Point Queries</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s8.html">&sect;8&nbsp;Join Point Queries</a></li>
+                  <li><a href="#s8.1">&sect;8.1&nbsp;Join point queries</a></li>
+                  <li><a href="#s8.2">&sect;8.2&nbsp;Query expressions</a></li>
+                  <li><a href="#s8.3">&sect;8.3&nbsp;OT/J meta model</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Defining sets of join points for interception</h3>
+               <div class="line"></div>
+               <div class="term">join point</div>
+               <div class="termdesc">In OT/J a join point is considered to be an element
+                  of the program. A meta model exists which defines the <strong>kinds</strong> 
+                  of join points that can be identified.
+               </div>
+               <div class="line"></div>
+               <div class="term">join point interception</div>
+               <div class="termdesc">The purpose of identifying join points is to intercept program execution at these points 
+                  				by means of <em>callin</em> bindings.
+               </div>
+               <div class="line"></div>
+               <div class="term">join point query</div>
+               <div class="termdesc">Sets of join points are defined using functional queries of the program's reflective representation.</div>
+               <div class="line"></div>
+               <div class="term"><i>pointcuts</i></div>
+               <div class="termdesc">Dynamic "pointcuts" comparable to AspectJ's <code>cflow</code> or even the Trace-Matches approach 
+                  				are not subject to the join point language of OT/J. These features will be added at a different level 
+                  				of abstraction. Note, that guard predicates (<a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) subsume the dynamic 
+                  				capabilities of the pointcuts <code>if, target, this, args</code>.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s8.1">
+               <h2 class="sect">&sect;8.1&nbsp;Join point queries<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+               <p><strong><em>This section will describe the query language used to define sets
+                        	of join points. As of version 1.4.0 of the OTDT this query language is not yet supported.</em></strong></p>
+            </div>
+            <div class="sect depth2" id="s8.2">
+               <h2 class="sect">&sect;8.2&nbsp;Query expressions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+            </div>
+            <div class="sect depth2" id="s8.3">
+               <h2 class="sect">&sect;8.3&nbsp;OT/J meta model<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;8</a></span></h2>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s7.html" rel="prev">&lt;&lt;&nbsp;&sect;7&nbsp;Role Encapsulation</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.html" rel="next">&sect;9&nbsp;Value Dependent Classes&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.a.html
new file mode 100644
index 0000000..80d4bfa
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.a.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.1.b.html" rel="next">&sect;9.1.(b)&nbsp;Value parameter application&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+         <div class="subsect depth3" id="s9.1.a">
+            <h4 class="subsect">&sect;9.1.(a)&nbsp;<span class="title">Value parameter declaration</span></h4>
+            <p>Within the angle brackets that mark the parameters of a generic class also value parameters 
+               		can be declared. In contrast to a type parameter, a value parameter is denoted as a pair 
+               		of two identifiers: a type and a free name, e.g., 
+               			
+            </p>
+            <div class="listing plain"><pre><b>class</b> MyClass<em>&lt;YourType aName&gt;</em> { ...</pre></div>
+            <p>Note that value parameters are valid for classes only, not for interfaces.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.1.b.html" rel="next">&sect;9.1.(b)&nbsp;Value parameter application&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.b.html
new file mode 100644
index 0000000..ec0bc27
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1.(a)&nbsp;Value parameter declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.1.c.html" rel="next">&sect;9.1.(c)&nbsp;Role types as dependent types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+         <div class="subsect depth3" id="s9.1.b">
+            <h4 class="subsect">&sect;9.1.(b)&nbsp;<span class="title">Value parameter application</span></h4>
+            <p>Within the given class (<code>MyClass</code>) the parameter name (<code>aName</code>) can be used 
+               		like a final field of the given type (<code>YourType</code>). In contrast to regular final fields 
+               		the assignment to this name occurs even before the constructor is executed.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.1.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1.(a)&nbsp;Value parameter declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.1.c.html" rel="next">&sect;9.1.(c)&nbsp;Role types as dependent types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.c.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.c.html
new file mode 100644
index 0000000..5d4b856
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.c.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1.(b)&nbsp;Value parameter application</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+         <div class="subsect depth3" id="s9.1.c">
+            <h4 class="subsect">&sect;9.1.(c)&nbsp;<span class="title">Role types as dependent types</span></h4>
+            <p>Any role type can be interpreted as a value dependent type, however, in the declaration 
+               		of a role type the value parameter remains implicit: it is identical to the enclosing team instance.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1.(b)&nbsp;Value parameter application</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.1.html" rel="section">&sect;9.1&nbsp;Defining classes with value parameters</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.html
new file mode 100644
index 0000000..20736cc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.1.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.html" rel="next">&sect;9.2&nbsp;Using classes with value parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+         <div class="sect depth2" id="s9.1">
+            <h2 class="sect">&sect;9.1&nbsp;Defining classes with value parameters</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.9.1" title="&sect;A.9.1&nbsp;TypeParameter" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.1</a></div>
+            <div class="subsect depth3" id="s9.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Value parameter declaration</span></h4>
+               <p>Within the angle brackets that mark the parameters of a generic class also value parameters 
+                  		can be declared. In contrast to a type parameter, a value parameter is denoted as a pair 
+                  		of two identifiers: a type and a free name, e.g., 
+                  			
+               </p>
+               <div class="listing plain"><pre><b>class</b> MyClass<em>&lt;YourType aName&gt;</em> { ...</pre></div>
+               <p>Note that value parameters are valid for classes only, not for interfaces.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s9.1.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Value parameter application</span></h4>
+               <p>Within the given class (<code>MyClass</code>) the parameter name (<code>aName</code>) can be used 
+                  		like a final field of the given type (<code>YourType</code>). In contrast to regular final fields 
+                  		the assignment to this name occurs even before the constructor is executed.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s9.1.c">
+               <h4 class="subsect">(c)&nbsp;<span class="title">Role types as dependent types</span></h4>
+               <p>Any role type can be interpreted as a value dependent type, however, in the declaration 
+                  		of a role type the value parameter remains implicit: it is identical to the enclosing team instance.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.html" rel="next">&sect;9.2&nbsp;Using classes with value parameters&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.a.html
new file mode 100644
index 0000000..a1198e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.a.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.1.html" rel="section">&sect;9.2.1&nbsp;Parameter substitution</a></div>
+         <div class="subsect depth4" id="s9.2.1.a">
+            <h4 class="subsect">&sect;9.2.1.(a)&nbsp;<span class="title">Instance constrained type parameters</span></h4>
+            <p>In addition to normal usage, a value parameter can be applied nested to a regular type parameter:
+               				
+            </p>
+            <div class="listing plain"><pre><b>class</b> MyClass&lt;YourType aName, DependentParam&lt;<em>@aName&gt;</em>&gt; { ...</pre></div>
+            <p>
+               					Here the type parameter <code>DependentParam</code> is constrained to be anchored to <code>aName</code>.
+               				
+            </p>
+            <p>If a value parameter is used as a constraint for a regular type parameter 
+               					any substitution for the type parameter must also supply a value matching the value parameter. 
+               				    The class from above could be applied like this:				    
+               				
+            </p>
+            <div class="listing plain"><pre><b>final</b> YourType anchor = <b>new</b> YourType();
+MyClass <em>&lt;anchor, YourDependent&lt;<strong>anchor</strong>&gt;&gt;</em></pre></div>
+            <p>Within the declaring element (class or method)
+               				   applications of the type variable representing the instance constrained type parameter 
+               				   must repeat the anchor verbatim, i.e., no substitutions are performed here. 
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.1.html" rel="section">&sect;9.2.1&nbsp;Parameter substitution</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.html
new file mode 100644
index 0000000..40c96a5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.1.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.2.html" rel="next">&sect;9.2.2&nbsp;Type conformance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+         <div class="sect depth3" id="s9.2.1">
+            <h3 class="sect">&sect;9.2.1&nbsp;Parameter substitution</h3>
+            <p>Substitution of a type anchor of a class <code>MyClass&lt;YourType p&gt;</code> is denoted as 
+               		<code>MyClass&lt;@v&gt;</code>.
+               	In this term <code>v</code> must be a value which is conform to the declaration of the value 
+               	parameter "<code>YourType p</code>", ie., <code>v</code> must have the static type <code>YourType</code>.
+               	<br />
+               The value passed for substituting a type anchor must be a path of variables declared as <code>final</code>.
+               Obviously, only the first element in such a path can be a local variable or a method argument, 
+               all other elements have to be fields. The reason for requiring final variables is 
+               in type checking as discussed next.
+               			
+            </p>
+            <div class="note">
+               <h5>Note:</h5>
+               				Externalized roles as defined in <a href="s1.2.2.b.html"
+                  title="&sect;1.2.2.(b)&nbsp;Declaration with anchored type"
+                  class="sect">&sect;1.2.2.(b)</a> are 
+               				a special case of types with a value parameter, where the value 
+               				is an instance of the enclosing team.
+               			
+            </div>
+            <div class="subsect depth4" id="s9.2.1.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Instance constrained type parameters</span></h4>
+               <p>In addition to normal usage, a value parameter can be applied nested to a regular type parameter:
+                  				
+               </p>
+               <div class="listing plain"><pre><b>class</b> MyClass&lt;YourType aName, DependentParam&lt;<em>@aName&gt;</em>&gt; { ...</pre></div>
+               <p>
+                  					Here the type parameter <code>DependentParam</code> is constrained to be anchored to <code>aName</code>.
+                  				
+               </p>
+               <p>If a value parameter is used as a constraint for a regular type parameter 
+                  					any substitution for the type parameter must also supply a value matching the value parameter. 
+                  				    The class from above could be applied like this:				    
+                  				
+               </p>
+               <div class="listing plain"><pre><b>final</b> YourType anchor = <b>new</b> YourType();
+MyClass <em>&lt;anchor, YourDependent&lt;<strong>anchor</strong>&gt;&gt;</em></pre></div>
+               <p>Within the declaring element (class or method)
+                  				   applications of the type variable representing the instance constrained type parameter 
+                  				   must repeat the anchor verbatim, i.e., no substitutions are performed here. 
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.2.html" rel="next">&sect;9.2.2&nbsp;Type conformance&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.a.html
new file mode 100644
index 0000000..f5c1da0
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.a.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.2.b.html" rel="next">&sect;9.2.2.(b)&nbsp;Conformance of raw types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.2.html" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+         <div class="subsect depth4" id="s9.2.2.a">
+            <h4 class="subsect">&sect;9.2.2.(a)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+            <p>Only two substitutions are considered for determining anchor identity:
+               				
+            </p>
+            <ol>
+               <li>If a method signature uses <code>this</code> as the anchor of any of its types, 
+                  		type checking an application of this method performs the following substitutions:
+                  		<br />
+                  A simple <code>this</code> expression is substituted by the actual call target 
+                  of the method application.
+                  <br />
+                  A qualified <code>Outer.this</code> expression is substituted by the corresponding 
+                  enclosing instance of the call target.
+               </li>
+               <li>Assignments from a <code>final</code> identifier to another <code>final</code> 
+                  					identifier are transitively followed, i.e., if <code>t1, t2</code> are final, 
+                  					after an assignment <code>t1=t2</code> the types <code>C&lt;@t1&gt;</code> and 
+                  					<code>C&lt;@t2&gt;</code> are considered identical. Otherwise <code>C&lt;@t1&gt;</code> 
+                  					and <code>C&lt;@t2&gt;</code> are incommensurable.
+                  					<br />
+                  Attaching an actual parameter to a formal parameter in a method call is also considered 
+                  as an assignment with respect to this rule.
+               </li>
+            </ol>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.2.2.b.html" rel="next">&sect;9.2.2.(b)&nbsp;Conformance of raw types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.2.html" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.b.html
new file mode 100644
index 0000000..5a1d7e4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.b.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2.2.(a)&nbsp;Substitutions for type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.2.html" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+         <div class="subsect depth4" id="s9.2.2.b">
+            <h4 class="subsect">&sect;9.2.2.(b)&nbsp;<span class="title">Conformance of raw types</span></h4>
+            <p>After anchors have been proven identical, the raw types are checked for compatibility 
+               			using the standard Java rules.
+               				
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.2.2.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2.2.(a)&nbsp;Substitutions for type anchors</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.2.html" rel="section">&sect;9.2.2&nbsp;Type conformance</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.html
new file mode 100644
index 0000000..c769258
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.2.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2.1&nbsp;Parameter substitution</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+         <div class="sect depth3" id="s9.2.2">
+            <h3 class="sect">&sect;9.2.2&nbsp;Type conformance</h3>
+            <p>Two value dependent types (anchored types) are considered conform only if the anchors 
+               		of both types refer to <i>the same object(s)</i>.  The compiler must be able to statically 
+               		analyze this anchor identity.
+               			
+            </p>
+            <div class="subsect depth4" id="s9.2.2.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+               <p>Only two substitutions are considered for determining anchor identity:
+                  				
+               </p>
+               <ol>
+                  <li>If a method signature uses <code>this</code> as the anchor of any of its types, 
+                     		type checking an application of this method performs the following substitutions:
+                     		<br />
+                     A simple <code>this</code> expression is substituted by the actual call target 
+                     of the method application.
+                     <br />
+                     A qualified <code>Outer.this</code> expression is substituted by the corresponding 
+                     enclosing instance of the call target.
+                  </li>
+                  <li>Assignments from a <code>final</code> identifier to another <code>final</code> 
+                     					identifier are transitively followed, i.e., if <code>t1, t2</code> are final, 
+                     					after an assignment <code>t1=t2</code> the types <code>C&lt;@t1&gt;</code> and 
+                     					<code>C&lt;@t2&gt;</code> are considered identical. Otherwise <code>C&lt;@t1&gt;</code> 
+                     					and <code>C&lt;@t2&gt;</code> are incommensurable.
+                     					<br />
+                     Attaching an actual parameter to a formal parameter in a method call is also considered 
+                     as an assignment with respect to this rule.
+                  </li>
+               </ol>
+            </div>
+            <div class="subsect depth4" id="s9.2.2.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Conformance of raw types</span></h4>
+               <p>After anchors have been proven identical, the raw types are checked for compatibility 
+                  			using the standard Java rules.
+                  				
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2.1&nbsp;Parameter substitution</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.2.html" rel="section">&sect;9.2&nbsp;Using classes with value parameters</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.html
new file mode 100644
index 0000000..cfa9d63
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.2.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.1.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1&nbsp;Defining classes with value parameters</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.3.html" rel="next">&sect;9.3&nbsp;Restrictions and limitations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+         <div class="sect depth2" id="s9.2">
+            <h2 class="sect">&sect;9.2&nbsp;Using classes with value parameters</h2>
+            <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                  class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+            <p>When using a class which declares one or more value parameters (type anchors) 
+               	a corresponding <strong>anchor value</strong> has to be provided.
+               		
+            </p>
+            <div class="sect depth3" id="s9.2.1">
+               <h3 class="sect">&sect;9.2.1&nbsp;Parameter substitution<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9.2</a></span></h3>
+               <p>Substitution of a type anchor of a class <code>MyClass&lt;YourType p&gt;</code> is denoted as 
+                  		<code>MyClass&lt;@v&gt;</code>.
+                  	In this term <code>v</code> must be a value which is conform to the declaration of the value 
+                  	parameter "<code>YourType p</code>", ie., <code>v</code> must have the static type <code>YourType</code>.
+                  	<br />
+                  The value passed for substituting a type anchor must be a path of variables declared as <code>final</code>.
+                  Obviously, only the first element in such a path can be a local variable or a method argument, 
+                  all other elements have to be fields. The reason for requiring final variables is 
+                  in type checking as discussed next.
+                  			
+               </p>
+               <div class="note">
+                  <h5>Note:</h5>
+                  				Externalized roles as defined in <a href="s1.2.2.b.html"
+                     title="&sect;1.2.2.(b)&nbsp;Declaration with anchored type"
+                     class="sect">&sect;1.2.2.(b)</a> are 
+                  				a special case of types with a value parameter, where the value 
+                  				is an instance of the enclosing team.
+                  			
+               </div>
+               <div class="subsect depth4" id="s9.2.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Instance constrained type parameters</span></h4>
+                  <p>In addition to normal usage, a value parameter can be applied nested to a regular type parameter:
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>class</b> MyClass&lt;YourType aName, DependentParam&lt;<em>@aName&gt;</em>&gt; { ...</pre></div>
+                  <p>
+                     					Here the type parameter <code>DependentParam</code> is constrained to be anchored to <code>aName</code>.
+                     				
+                  </p>
+                  <p>If a value parameter is used as a constraint for a regular type parameter 
+                     					any substitution for the type parameter must also supply a value matching the value parameter. 
+                     				    The class from above could be applied like this:				    
+                     				
+                  </p>
+                  <div class="listing plain"><pre><b>final</b> YourType anchor = <b>new</b> YourType();
+MyClass <em>&lt;anchor, YourDependent&lt;<strong>anchor</strong>&gt;&gt;</em></pre></div>
+                  <p>Within the declaring element (class or method)
+                     				   applications of the type variable representing the instance constrained type parameter 
+                     				   must repeat the anchor verbatim, i.e., no substitutions are performed here. 
+                     				
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth3" id="s9.2.2">
+               <h3 class="sect">&sect;9.2.2&nbsp;Type conformance<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9.2</a></span></h3>
+               <p>Two value dependent types (anchored types) are considered conform only if the anchors 
+                  		of both types refer to <i>the same object(s)</i>.  The compiler must be able to statically 
+                  		analyze this anchor identity.
+                  			
+               </p>
+               <div class="subsect depth4" id="s9.2.2.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                  <p>Only two substitutions are considered for determining anchor identity:
+                     				
+                  </p>
+                  <ol>
+                     <li>If a method signature uses <code>this</code> as the anchor of any of its types, 
+                        		type checking an application of this method performs the following substitutions:
+                        		<br />
+                        A simple <code>this</code> expression is substituted by the actual call target 
+                        of the method application.
+                        <br />
+                        A qualified <code>Outer.this</code> expression is substituted by the corresponding 
+                        enclosing instance of the call target.
+                     </li>
+                     <li>Assignments from a <code>final</code> identifier to another <code>final</code> 
+                        					identifier are transitively followed, i.e., if <code>t1, t2</code> are final, 
+                        					after an assignment <code>t1=t2</code> the types <code>C&lt;@t1&gt;</code> and 
+                        					<code>C&lt;@t2&gt;</code> are considered identical. Otherwise <code>C&lt;@t1&gt;</code> 
+                        					and <code>C&lt;@t2&gt;</code> are incommensurable.
+                        					<br />
+                        Attaching an actual parameter to a formal parameter in a method call is also considered 
+                        as an assignment with respect to this rule.
+                     </li>
+                  </ol>
+               </div>
+               <div class="subsect depth4" id="s9.2.2.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Conformance of raw types</span></h4>
+                  <p>After anchors have been proven identical, the raw types are checked for compatibility 
+                     			using the standard Java rules.
+                     				
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.1.html" rel="prev">&lt;&lt;&nbsp;&sect;9.1&nbsp;Defining classes with value parameters</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.3.html" rel="next">&sect;9.3&nbsp;Restrictions and limitations&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.a.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.a.html
new file mode 100644
index 0000000..27b0b61
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.a.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.3.b.html" rel="next">&sect;9.3.(b)&nbsp;Only first parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.3.html" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+         <div class="subsect depth3" id="s9.3.a">
+            <h4 class="subsect">&sect;9.3.(a)&nbsp;<span class="title">No overriding</span></h4>
+            <p>Types with value parameters that are declared outside a team cannot be overridden, 
+               		as roles can be. Therefor, implicit inheritance does not apply for these types.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="s9.3.b.html" rel="next">&sect;9.3.(b)&nbsp;Only first parameter&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.3.html" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.b.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.b.html
new file mode 100644
index 0000000..9864912
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.b.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.3.(a)&nbsp;No overriding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.3.html" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+         <div class="subsect depth3" id="s9.3.b">
+            <h4 class="subsect">&sect;9.3.(b)&nbsp;<span class="title">Only first parameter</span></h4>
+            <div class="note">
+               <p>Currently only the first parameter of a class may be a value parameter. 
+                  				This restriction may be removed in the future.
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.3.a.html" rel="prev">&lt;&lt;&nbsp;&sect;9.3.(a)&nbsp;No overriding</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a>&nbsp;&gt;&nbsp;<a class="nav" href="s9.3.html" rel="section">&sect;9.3&nbsp;Restrictions and limitations</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.html
new file mode 100644
index 0000000..3365171
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.3.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.2.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2&nbsp;Using classes with value parameters</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+         <div class="sect depth2" id="s9.3">
+            <h2 class="sect">&sect;9.3&nbsp;Restrictions and limitations</h2>
+            <div class="subsect depth3" id="s9.3.a">
+               <h4 class="subsect">(a)&nbsp;<span class="title">No overriding</span></h4>
+               <p>Types with value parameters that are declared outside a team cannot be overridden, 
+                  		as roles can be. Therefor, implicit inheritance does not apply for these types.
+                  			
+               </p>
+            </div>
+            <div class="subsect depth3" id="s9.3.b">
+               <h4 class="subsect">(b)&nbsp;<span class="title">Only first parameter</span></h4>
+               <div class="note">
+                  <p>Currently only the first parameter of a class may be a value parameter. 
+                     				This restriction may be removed in the future.
+                  </p>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.2.html" rel="prev">&lt;&lt;&nbsp;&sect;9.2&nbsp;Using classes with value parameters</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="s9.html" rel="section">&sect;9&nbsp;Value Dependent Classes</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.html
new file mode 100644
index 0000000..4e0bd60
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/s9.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s8.html" rel="prev">&lt;&lt;&nbsp;&sect;8&nbsp;Join Point Queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.html" rel="next">&sect;A&nbsp;OT/J Syntax&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="s9">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;9&nbsp;Value Dependent Classes</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="s9.html">&sect;9&nbsp;Value Dependent Classes</a></li>
+                  <li><a href="#s9.1">&sect;9.1&nbsp;Defining classes with value parameters</a></li>
+                  <li><a href="#s9.2">&sect;9.2&nbsp;Using classes with value parameters</a></li>
+                  <li><a href="#s9.3">&sect;9.3&nbsp;Restrictions and limitations</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Generalizing externalized roles</h3>
+               <div class="line"></div>
+               <div class="term">Type Value Parameter</div>
+               <div class="termdesc">In addition to regular generics, a class may declare parameters that represent an object value. 
+                  				Such a value parameter is called the <strong>type anchor</strong> for this class, 
+                  				the class's type is said to be <strong>anchored</strong> to this parameter.
+               </div>
+               <div class="line"></div>
+               <div class="term">Value Dependent Classes</div>
+               <div class="termdesc">A class that declares one or more value parameters depends on the 
+                  				runtime instance(s) denoted by its anchor(s).
+               </div>
+               <div class="line"></div>
+               <div class="term">Externalized Roles</div>
+               <div class="termdesc">The concept of externalized roles (<a href="s1.2.2.html" title="&sect;1.2.2&nbsp;Externalized roles" class="sect">&sect;1.2.2</a>) 
+                  				is a special case of the concepts presented here.
+               </div>
+               <div class="line"></div>
+            </div>
+            <div class="sect depth2" id="s9.1">
+               <h2 class="sect">&sect;9.1&nbsp;Defining classes with value parameters<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.9.1" title="&sect;A.9.1&nbsp;TypeParameter" class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.1</a></div>
+               <div class="subsect depth3" id="s9.1.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">Value parameter declaration</span></h4>
+                  <p>Within the angle brackets that mark the parameters of a generic class also value parameters 
+                     		can be declared. In contrast to a type parameter, a value parameter is denoted as a pair 
+                     		of two identifiers: a type and a free name, e.g., 
+                     			
+                  </p>
+                  <div class="listing plain"><pre><b>class</b> MyClass<em>&lt;YourType aName&gt;</em> { ...</pre></div>
+                  <p>Note that value parameters are valid for classes only, not for interfaces.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.1.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Value parameter application</span></h4>
+                  <p>Within the given class (<code>MyClass</code>) the parameter name (<code>aName</code>) can be used 
+                     		like a final field of the given type (<code>YourType</code>). In contrast to regular final fields 
+                     		the assignment to this name occurs even before the constructor is executed.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.1.c">
+                  <h4 class="subsect">(c)&nbsp;<span class="title">Role types as dependent types</span></h4>
+                  <p>Any role type can be interpreted as a value dependent type, however, in the declaration 
+                     		of a role type the value parameter remains implicit: it is identical to the enclosing team instance.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="s9.2">
+               <h2 class="sect">&sect;9.2&nbsp;Using classes with value parameters<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="syntaxlink"><a href="sA.html#sA.9.2" title="&sect;A.9.2&nbsp;ActualTypeArgument"
+                     class="syntax">&rarr;&nbsp;Syntax&nbsp;&sect;A.9.2</a></div>
+               <p>When using a class which declares one or more value parameters (type anchors) 
+                  	a corresponding <strong>anchor value</strong> has to be provided.
+                  		
+               </p>
+               <div class="sect depth3" id="s9.2.1">
+                  <h3 class="sect">&sect;9.2.1&nbsp;Parameter substitution<span class="toplink"><a href="#s9.2">&uarr;&nbsp;&sect;9.2</a></span></h3>
+                  <p>Substitution of a type anchor of a class <code>MyClass&lt;YourType p&gt;</code> is denoted as 
+                     		<code>MyClass&lt;@v&gt;</code>.
+                     	In this term <code>v</code> must be a value which is conform to the declaration of the value 
+                     	parameter "<code>YourType p</code>", ie., <code>v</code> must have the static type <code>YourType</code>.
+                     	<br />
+                     The value passed for substituting a type anchor must be a path of variables declared as <code>final</code>.
+                     Obviously, only the first element in such a path can be a local variable or a method argument, 
+                     all other elements have to be fields. The reason for requiring final variables is 
+                     in type checking as discussed next.
+                     			
+                  </p>
+                  <div class="note">
+                     <h5>Note:</h5>
+                     				Externalized roles as defined in <a href="s1.2.2.b.html"
+                        title="&sect;1.2.2.(b)&nbsp;Declaration with anchored type"
+                        class="sect">&sect;1.2.2.(b)</a> are 
+                     				a special case of types with a value parameter, where the value 
+                     				is an instance of the enclosing team.
+                     			
+                  </div>
+                  <div class="subsect depth4" id="s9.2.1.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Instance constrained type parameters</span></h4>
+                     <p>In addition to normal usage, a value parameter can be applied nested to a regular type parameter:
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>class</b> MyClass&lt;YourType aName, DependentParam&lt;<em>@aName&gt;</em>&gt; { ...</pre></div>
+                     <p>
+                        					Here the type parameter <code>DependentParam</code> is constrained to be anchored to <code>aName</code>.
+                        				
+                     </p>
+                     <p>If a value parameter is used as a constraint for a regular type parameter 
+                        					any substitution for the type parameter must also supply a value matching the value parameter. 
+                        				    The class from above could be applied like this:				    
+                        				
+                     </p>
+                     <div class="listing plain"><pre><b>final</b> YourType anchor = <b>new</b> YourType();
+MyClass <em>&lt;anchor, YourDependent&lt;<strong>anchor</strong>&gt;&gt;</em></pre></div>
+                     <p>Within the declaring element (class or method)
+                        				   applications of the type variable representing the instance constrained type parameter 
+                        				   must repeat the anchor verbatim, i.e., no substitutions are performed here. 
+                        				
+                     </p>
+                  </div>
+               </div>
+               <div class="sect depth3" id="s9.2.2">
+                  <h3 class="sect">&sect;9.2.2&nbsp;Type conformance<span class="toplink"><a href="#s9.2">&uarr;&nbsp;&sect;9.2</a></span></h3>
+                  <p>Two value dependent types (anchored types) are considered conform only if the anchors 
+                     		of both types refer to <i>the same object(s)</i>.  The compiler must be able to statically 
+                     		analyze this anchor identity.
+                     			
+                  </p>
+                  <div class="subsect depth4" id="s9.2.2.a">
+                     <h4 class="subsect">(a)&nbsp;<span class="title">Substitutions for type anchors</span></h4>
+                     <p>Only two substitutions are considered for determining anchor identity:
+                        				
+                     </p>
+                     <ol>
+                        <li>If a method signature uses <code>this</code> as the anchor of any of its types, 
+                           		type checking an application of this method performs the following substitutions:
+                           		<br />
+                           A simple <code>this</code> expression is substituted by the actual call target 
+                           of the method application.
+                           <br />
+                           A qualified <code>Outer.this</code> expression is substituted by the corresponding 
+                           enclosing instance of the call target.
+                        </li>
+                        <li>Assignments from a <code>final</code> identifier to another <code>final</code> 
+                           					identifier are transitively followed, i.e., if <code>t1, t2</code> are final, 
+                           					after an assignment <code>t1=t2</code> the types <code>C&lt;@t1&gt;</code> and 
+                           					<code>C&lt;@t2&gt;</code> are considered identical. Otherwise <code>C&lt;@t1&gt;</code> 
+                           					and <code>C&lt;@t2&gt;</code> are incommensurable.
+                           					<br />
+                           Attaching an actual parameter to a formal parameter in a method call is also considered 
+                           as an assignment with respect to this rule.
+                        </li>
+                     </ol>
+                  </div>
+                  <div class="subsect depth4" id="s9.2.2.b">
+                     <h4 class="subsect">(b)&nbsp;<span class="title">Conformance of raw types</span></h4>
+                     <p>After anchors have been proven identical, the raw types are checked for compatibility 
+                        			using the standard Java rules.
+                        				
+                     </p>
+                  </div>
+               </div>
+            </div>
+            <div class="sect depth2" id="s9.3">
+               <h2 class="sect">&sect;9.3&nbsp;Restrictions and limitations<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;9</a></span></h2>
+               <div class="subsect depth3" id="s9.3.a">
+                  <h4 class="subsect">(a)&nbsp;<span class="title">No overriding</span></h4>
+                  <p>Types with value parameters that are declared outside a team cannot be overridden, 
+                     		as roles can be. Therefor, implicit inheritance does not apply for these types.
+                     			
+                  </p>
+               </div>
+               <div class="subsect depth3" id="s9.3.b">
+                  <h4 class="subsect">(b)&nbsp;<span class="title">Only first parameter</span></h4>
+                  <div class="note">
+                     <p>Currently only the first parameter of a class may be a value parameter. 
+                        				This restriction may be removed in the future.
+                     </p>
+                  </div>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s8.html" rel="prev">&lt;&lt;&nbsp;&sect;8&nbsp;Join Point Queries</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.html" rel="next">&sect;A&nbsp;OT/J Syntax&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.1.html
new file mode 100644
index 0000000..e43eebd
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.1.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.0.2.html" rel="next">&sect;A.0.2&nbsp;Inheriting scoped keywords&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+         <div class="sect depth3" id="sA.0.1">
+            <h3 class="sect">&sect;A.0.1&nbsp;Scoped keywords</h3>
+            <p>The following names are keywords in OT/J only if they appear within a team or role class, 
+               		ie., after the keyword <strong class="blue">team</strong> has been recognized:
+               			
+            </p>
+            <div class="listing plain"><pre>as, base, callin, playedBy, precedence, tsuper, with, when</pre></div>
+            <p>These names are keywords only in the context of a callin or callout binding 
+               		respectively (<a href="sA.3.html" title="&sect;A.3&nbsp;Method bindings" class="sect">&sect;A.3</a>):
+               			
+            </p>
+            <div class="listing plain"><pre>after, before, replace, get, set</pre></div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.0.2.html" rel="next">&sect;A.0.2&nbsp;Inheriting scoped keywords&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.2.html
new file mode 100644
index 0000000..cd2a7ce
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.2.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.0.1.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0.1&nbsp;Scoped keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.0.3.html" rel="next">&sect;A.0.3&nbsp;Internal names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+         <div class="sect depth3" id="sA.0.2">
+            <h3 class="sect">&sect;A.0.2&nbsp;Inheriting scoped keywords</h3>
+            <p>While regular Java classes may use the scoped keywords 
+               		(<a href="sA.0.1.html" title="&sect;A.0.1&nbsp;Scoped keywords" class="sect">&sect;A.0.1</a>) of OT/J freely, it is an error if a role class 
+               		inherits a feature whose name is a scoped keyword.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.0.1.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0.1&nbsp;Scoped keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.0.3.html" rel="next">&sect;A.0.3&nbsp;Internal names&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.3.html
new file mode 100644
index 0000000..1c8a553
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.3.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.0.2.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0.2&nbsp;Inheriting scoped keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+         <div class="sect depth3" id="sA.0.3">
+            <h3 class="sect">&sect;A.0.3&nbsp;Internal names</h3>
+            <p>Compiler and runtime environment generate internal methods and fields which start with 
+               		the prefix <code>_OT$</code>. It is illegal to use any of these methods and fields within client code.
+               			
+            </p>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.0.2.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0.2&nbsp;Inheriting scoped keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a>&nbsp;&gt;&nbsp;<a class="nav" href="sA.0.html" rel="section">&sect;A.0&nbsp;Keywords</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.html
new file mode 100644
index 0000000..6f370b5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.0.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.1.html" rel="next">&sect;A.1&nbsp;Class definitions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.0">
+            <h2 class="sect">&sect;A.0&nbsp;Keywords</h2>
+            <p>The keywords introduced by OT/J have different scopes, which means outside their
+               	given scope these keywords can be used for regular identifiers. Only these names
+               	are keywords unconditionally:
+               		
+            </p>
+            <div class="listing plain"><pre>readonly, team, within</pre></div>
+            <div class="sect depth3" id="sA.0.1">
+               <h3 class="sect">&sect;A.0.1&nbsp;Scoped keywords<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A.0</a></span></h3>
+               <p>The following names are keywords in OT/J only if they appear within a team or role class, 
+                  		ie., after the keyword <strong class="blue">team</strong> has been recognized:
+                  			
+               </p>
+               <div class="listing plain"><pre>as, base, callin, playedBy, precedence, tsuper, with, when</pre></div>
+               <p>These names are keywords only in the context of a callin or callout binding 
+                  		respectively (<a href="sA.3.html" title="&sect;A.3&nbsp;Method bindings" class="sect">&sect;A.3</a>):
+                  			
+               </p>
+               <div class="listing plain"><pre>after, before, replace, get, set</pre></div>
+            </div>
+            <div class="sect depth3" id="sA.0.2">
+               <h3 class="sect">&sect;A.0.2&nbsp;Inheriting scoped keywords<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A.0</a></span></h3>
+               <p>While regular Java classes may use the scoped keywords 
+                  		(<a href="#sA.0.1" title="&sect;A.0.1&nbsp;Scoped keywords" class="sect">&sect;A.0.1</a>) of OT/J freely, it is an error if a role class 
+                  		inherits a feature whose name is a scoped keyword.
+                  			
+               </p>
+            </div>
+            <div class="sect depth3" id="sA.0.3">
+               <h3 class="sect">&sect;A.0.3&nbsp;Internal names<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A.0</a></span></h3>
+               <p>Compiler and runtime environment generate internal methods and fields which start with 
+                  		the prefix <code>_OT$</code>. It is illegal to use any of these methods and fields within client code.
+                  			
+               </p>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.1.html" rel="next">&sect;A.1&nbsp;Class definitions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.1.html
new file mode 100644
index 0000000..0c833a1
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.1.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.0.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0&nbsp;Keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.2.html" rel="next">&sect;A.2&nbsp;Modifiers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.1">
+            <h2 class="sect">&sect;A.1&nbsp;Class definitions</h2>
+            <p>Class definitions add two new keywords <code>team</code> and
+               	<code>playedBy</code>. Classes which use these keywords are called
+               	<strong>teams</strong> and <strong>bound roles</strong>, respectively.
+               	Any class that inherits from a bound role class (either by an 
+               	<code>extends</code> clause or by implicit inheritance, cf. 
+               	<a href="s1.3.1.c.html"
+                  title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                  class="sect">&sect;1.3.1.(c)</a>) is again a bound role class.
+               		
+            </p>
+            <table class="syntaxrule" id="sA.1.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.1.1</td>
+                  <td class="rule"><span class="title">ClassDeclaration</span><br /><em>[Modifiers] </em><strong class="blue"><em>[</em>team<em>]</em></strong> class <em>Identifier [</em>extends <em>Type] [</em>implements <em>TypeList]</em><br /><span class="indent5"></span><strong class="blue"><em>[</em>playedBy <em>Type] [Guard]</em></strong><em> ClassBody</em></td>
+               </tr>
+            </table>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li>A class which has a <code>playedBy</code> clause (a <strong>bound
+                        					role</strong> class) may not be declared static and 
+                     					must be directly contained in a class that has the 
+                     					<code>team</code> modifier (a <strong>team</strong> class).
+                  </li>
+                  <li>A class which inherits from a team class must have the
+                     					<code>team</code> modifier, too.
+                  </li>
+                  <li>A class which has a guard (see <a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) 
+                     					must be a team or a role.
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.0.html" rel="prev">&lt;&lt;&nbsp;&sect;A.0&nbsp;Keywords</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.2.html" rel="next">&sect;A.2&nbsp;Modifiers&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.10.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.10.html
new file mode 100644
index 0000000..6759f6f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.10.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.9.html" rel="prev">&lt;&lt;&nbsp;&sect;A.9&nbsp;Value dependent types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.10">
+            <h2 class="sect">&sect;A.10&nbsp;Packages and imports</h2>
+            <table class="syntaxrule" id="sA.10.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.10.1</td>
+                  <td class="rule"><span class="title">PackageDeclaration</span><br />...<br /><strong class="blue">team </strong><em>QualifiedName</em> ;
+                     		
+                  </td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.10.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.10.2</td>
+                  <td class="rule"><span class="title">Import</span><br />...<br /><strong>import </strong><strong class="blue">base </strong><em>QualifiedName</em> ;
+                     		
+                  </td>
+               </tr>
+            </table>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.9.html" rel="prev">&lt;&lt;&nbsp;&sect;A.9&nbsp;Value dependent types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.2.html
new file mode 100644
index 0000000..fedbbba
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.2.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.1.html" rel="prev">&lt;&lt;&nbsp;&sect;A.1&nbsp;Class definitions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.3.html" rel="next">&sect;A.3&nbsp;Method bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.2">
+            <h2 class="sect">&sect;A.2&nbsp;Modifiers</h2>
+            <p>The rule for method modifiers adds one keyword: <code>callin</code>:
+               		
+            </p>
+            <table class="syntaxrule" id="sA.2.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.2.1</td>
+                  <td class="rule"><span class="title">Modifier</span><br />... <br /><strong class="blue">callin</strong></td>
+               </tr>
+            </table>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li>The class of a method which has the <code>callin</code> modifier 
+                     					may not be declared static and must be directly contained in a team class.
+                  </li>
+                  <li>A method that has the <code>callin</code> modifier may not
+                     					appear in an explicit method call (rule Apply in JLS).
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.1.html" rel="prev">&lt;&lt;&nbsp;&sect;A.1&nbsp;Class definitions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.3.html" rel="next">&sect;A.3&nbsp;Method bindings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.3.html
new file mode 100644
index 0000000..9cc33ec
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.3.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.2.html" rel="prev">&lt;&lt;&nbsp;&sect;A.2&nbsp;Modifiers</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.4.html" rel="next">&sect;A.4&nbsp;Parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.3">
+            <h2 class="sect">&sect;A.3&nbsp;Method bindings</h2>
+            <p>The rule of items declarable in a class body is augmented by method 
+               		   bindings:
+               		
+            </p>
+            <table class="syntaxrule" id="sA.3.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.1</td>
+                  <td class="rule"><span class="title">ClassBodyDeclaration</span><br />... <br /><strong class="blue"><em>CalloutBinding</em></strong><br /><strong class="blue"><em>CallinBinding</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.2</td>
+                  <td class="rule"><span class="title">CalloutBinding</span><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind MethodSpec CalloutParameterMappings</strong></em><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind CalloutModifier FieldSpec</strong></em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.3">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.3</td>
+                  <td class="rule"><span class="title">Callin binding</span><br /><em>[ Identifier </em>:<em> ] [TypeArguments]</em><strong class="blue"><em> MethodSpec</em> &lt;- <em>CallinModifier MethodSpecs </em><br /><span class="indent5"></span>
+                        			[<em>Guard</em>]<em> CallinParameterMappings</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.4">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.4</td>
+                  <td class="rule"><span class="title">MethodSpec</span><br /><em>Identifier</em><br /><em>ResultType MethodDeclarator</em></td>
+               </tr>
+            </table>
+            <div class="note">
+               			Note, that <em>ResultType</em> and <em>MethodDeclarator</em> are not explicit in the 
+               			overall syntax of the Java language specification. For convenience we refer to the definition in 
+               			section <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40420"
+                  class="ext">8.4. Method Declarations</a> 
+               			of the Java language specification.
+               		
+            </div>
+            <table class="syntaxrule" id="sA.3.5">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.5</td>
+                  <td class="rule"><span class="title">MethodSpecs</span><br /><strong class="blue"><em>MethodSpec [</em>, <em>MethodSpecs]</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.6">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.6</td>
+                  <td class="rule"><span class="title">CalloutKind</span><br /><strong class="blue">-&gt;<br />=&gt;</strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.7">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.7</td>
+                  <td class="rule"><span class="title">CallinModifier</span><br /><strong class="blue">before</strong><br /><strong class="blue">after</strong><br /><strong class="blue">replace</strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.8">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.8</td>
+                  <td class="rule"><span class="title">CalloutModifier</span><br /><strong class="blue">get</strong><br /><strong class="blue">set</strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.3.9">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.3.9</td>
+                  <td class="rule"><span class="title">FieldSpec</span><br /><em>[Type] Identifier</em></td>
+               </tr>
+            </table>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li><code>CalloutBinding</code>s and <code>CallinBinding</code>s
+                     					may occur only in bound role classes.
+                  </li>
+                  <li>A <code>CalloutBinding</code> or <code>CallinBinding</code> 
+                     					may not mix identifiers and full signatures (<code>MethodDeclarationHead</code>) 
+                     					for its method specifiers (<code>MethodSpec</code>).
+                     					<br />
+                     					Binding a full method signature to a field requires the <code>FieldSpec</code>
+                     					to include the <code>Type</code>.
+                  </li>
+                  <li>The method specifier at the left hand side of a 
+                     					<code>CallinBinding</code> which has the <code>replace</code> modifier 
+                     					must refer to a method that has the <code>callin</code> modifier.
+                  </li>
+                  <li>The <code>Modifier</code> of a callout binding can only be one of the visility
+                     					modifiers <code>public</code>, <code>protected</code> or <code>private</code>. 
+                     					A short callout binding (i.e., without signatures) must not specify 
+                     					a visibility modifier.
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.2.html" rel="prev">&lt;&lt;&nbsp;&sect;A.2&nbsp;Modifiers</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.4.html" rel="next">&sect;A.4&nbsp;Parameter mappings&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.4.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.4.html
new file mode 100644
index 0000000..4af459f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.4.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.3.html" rel="prev">&lt;&lt;&nbsp;&sect;A.3&nbsp;Method bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.5.html" rel="next">&sect;A.5&nbsp;Statements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.4">
+            <h2 class="sect">&sect;A.4&nbsp;Parameter mappings</h2>
+            <table class="syntaxrule" id="sA.4.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.1</td>
+                  <td class="rule"><span class="title">CalloutParameterMappings</span><br /><strong class="blue">with { <em>CalloutParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.4.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.2</td>
+                  <td class="rule"><span class="title">CallinParameterMappings</span><br /><strong class="blue">with { <em>CallinParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.4.3">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.3</td>
+                  <td class="rule"><span class="title">CalloutParameterMappingList</span><br /><strong class="blue"><em>CalloutParameterMapping [</em>,<em> CalloutParameterMappingList]</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.4.4">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.4</td>
+                  <td class="rule"><span class="title">CallinParameterMappingList</span><br /><strong class="blue"><em>CallinParameterMapping [</em>,<em> CallinParameterMappingList]</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.4.5">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.5</td>
+                  <td class="rule"><span class="title">CalloutParameterMapping</span><br /><em>Expression</em><strong class="blue"> -&gt; </strong><em>Identifier</em><br /><strong class="blue">result &lt;- </strong><em>Expression</em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.4.6">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.4.6</td>
+                  <td class="rule"><span class="title">CallinParameterMapping</span><br /><em>Identifier</em><strong class="blue"> &lt;- </strong><em>Expression</em><br /><em>Expression</em><strong class="blue"> -&gt; </strong><strong class="blue">result</strong></td>
+               </tr>
+            </table>
+            <div class="note">
+               <h5>Note:</h5>
+               			By defining ";" as an option for parameter mappings, the grammar enforces that
+               			method bindings without a parameter mapping are terminated by a ";".
+               			Also method bindings with parameter mappings may optionally be terminated by a ";",
+               			which in that case is interpreted as an empty member declaration, following the
+               			same pattern how non-abstract methods in Java may optionally have a trailing ";".
+               		
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.3.html" rel="prev">&lt;&lt;&nbsp;&sect;A.3&nbsp;Method bindings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.5.html" rel="next">&sect;A.5&nbsp;Statements&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.5.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.5.html
new file mode 100644
index 0000000..56a384e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.5.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.4.html" rel="prev">&lt;&lt;&nbsp;&sect;A.4&nbsp;Parameter mappings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.6.html" rel="next">&sect;A.6&nbsp;Types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.5">
+            <h2 class="sect">&sect;A.5&nbsp;Statements</h2>
+            <table class="syntaxrule" id="sA.5.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.5.1</td>
+                  <td class="rule"><span class="title">Statement</span><br />... <br /><em><strong class="blue">Within</strong><br /><strong class="blue">BaseCall</strong><br /><strong class="blue">TSuperCall</strong></em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.5.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.5.2</td>
+                  <td class="rule"><span class="title">Within</span><br /><strong class="blue">within</strong> ( <em>Expression</em> ) <em>Statement</em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.5.3">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.5.3</td>
+                  <td class="rule"><span class="title">BaseCall</span><br /><strong class="blue">base</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                     			<br /><strong class="blue">base</strong> ( <em>Arguments<sub>opt</sub></em> )
+                     		
+                  </td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.5.4">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.5.4</td>
+                  <td class="rule"><span class="title">TSuperCall</span><br /><strong class="blue">tsuper</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                     			<br /><strong class="blue">tsuper</strong> ( <em>Arguments<sub>opt</sub></em> )
+                     		
+                  </td>
+               </tr>
+            </table>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li>The expression of a <code>Within</code> must evaluate
+                     	  				to an instance of a team class.
+                  </li>
+                  <li>The first form of a <code>BaseCall</code> may occur only
+                     	  				in the body of a method that has the <code>callin</code> modifier.
+                     	  				The identifier must be the name of the enclosing method.
+                  </li>
+                  <li>The second form of a <code>BaseCall</code> may occur only in a constructor of a 
+                     	  				bound role class.
+                  </li>
+                  <li>The first form of a <code>TSuperCall</code> may occur only in a method of
+                     	  				a role class.
+                  </li>
+                  <li>The second form of a <code>TSuperCall</code> may occur only in a constructor of a 
+                     	  				role class.
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.4.html" rel="prev">&lt;&lt;&nbsp;&sect;A.4&nbsp;Parameter mappings</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.6.html" rel="next">&sect;A.6&nbsp;Types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.6.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.6.html
new file mode 100644
index 0000000..257c375
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.6.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.5.html" rel="prev">&lt;&lt;&nbsp;&sect;A.5&nbsp;Statements</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.7.html" rel="next">&sect;A.7&nbsp;Guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.6">
+            <h2 class="sect">&sect;A.6&nbsp;Types</h2>
+            <table class="syntaxrule" id="sA.6.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.6.1</td>
+                  <td class="rule"><span class="title">Type</span><br />... <br /><strong class="blue"><em>LiftingType</em></strong><br /><strong class="blue"><em>AnchoredType</em></strong></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.6.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.6.2</td>
+                  <td class="rule"><span class="title">LiftingType</span><br /><em>Type</em><strong class="blue"> as </strong><em>Type</em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.6.3">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.6.3</td>
+                  <td class="rule"><span class="title">AnchoredType</span><br /><strong class="blue"><em>Path</em></strong>.<em>Type</em></td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.6.4">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.6.4</td>
+                  <td class="rule"><span class="title">Path</span><br /><em>Identifier</em><br /><strong class="blue"><em>Path</em></strong>.<em>Identifier</em></td>
+               </tr>
+            </table>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li id="sA.6.a"><span class="title">Location</span><br />
+                     					A <code>LiftingType</code> may only occur in the parameter list 
+                     					of a method of a team class.
+                     				
+                  </li>
+                  <li id="sA.6.b"><span class="title">Role in scope</span><br />
+                     					The right hand side type in a <code>LiftingType</code> 
+                     					must be a class directly contained in the enclosing team class 
+                     					(the class may be acquired by <a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">implicit inheritance (&sect;1.3.1.(c))</a>).
+                     				
+                  </li>
+                  <li id="sA.6.c"><span class="title">Team path</span><br /><em>Note, that the syntax of &sect;A.6.3/4 is deprecated in favor of <a href="sA.9.html" title="&sect;A.9&nbsp;Value dependent types" class="sect">&sect;A.9</a></em>.
+                     					<br />
+                     					The path in an <code>AnchoredType</code> must refer to an instance of a team class. 
+                     					Each identifier in the path must be declared with the <code>final</code> modifier.
+                     				
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.5.html" rel="prev">&lt;&lt;&nbsp;&sect;A.5&nbsp;Statements</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.7.html" rel="next">&sect;A.7&nbsp;Guard predicates&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.7.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.7.html
new file mode 100644
index 0000000..d0c1953
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.7.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.6.html" rel="prev">&lt;&lt;&nbsp;&sect;A.6&nbsp;Types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.8.html" rel="next">&sect;A.8&nbsp;Precedence declaration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.7">
+            <h2 class="sect">&sect;A.7&nbsp;Guard predicates</h2>
+            <table class="syntaxrule" id="sA.7.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.7.1</td>
+                  <td class="rule"><span class="title">Guard</span><br /><strong class="blue"><em>[</em>base<em>]</em> when</strong> ( <em>Expression</em> )
+                     		
+                  </td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.7.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.7.2</td>
+                  <td class="rule"><span class="title">MethodDeclaration</span><br />...<br /><em>MethodHeader <strong class="blue">[Guard]</strong>  MethodBody</em></td>
+               </tr>
+            </table>
+            <p>Other rules referring to <em><code>Guard</code></em>: 
+               		   <a href="sA.html#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration"
+                  class="sect">ClassDeclaration (&sect;A.1.1)</a>, 
+               <a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">CallinBinding (&sect;A.3.3)</a></p>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li>The <code>Expression</code> in a guard must have type <code>boolean</code>.
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.6.html" rel="prev">&lt;&lt;&nbsp;&sect;A.6&nbsp;Types</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.8.html" rel="next">&sect;A.8&nbsp;Precedence declaration&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.8.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.8.html
new file mode 100644
index 0000000..9ba58db
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.8.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.7.html" rel="prev">&lt;&lt;&nbsp;&sect;A.7&nbsp;Guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.9.html" rel="next">&sect;A.9&nbsp;Value dependent types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.8">
+            <h2 class="sect">&sect;A.8&nbsp;Precedence declaration</h2>
+            <table class="syntaxrule" id="sA.8.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.8.1</td>
+                  <td class="rule"><span class="title">PrecedenceDeclaration</span><br /><strong class="blue">precedence</strong><em> CallinNameList</em> ;
+                     		
+                  </td>
+               </tr>
+            </table>
+            <table class="syntaxrule" id="sA.8.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.8.2</td>
+                  <td class="rule"><span class="title">CallinNameList</span><br /><em>Name [, CallinNameList]</em></td>
+               </tr>
+            </table>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.7.html" rel="prev">&lt;&lt;&nbsp;&sect;A.7&nbsp;Guard predicates</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.9.html" rel="next">&sect;A.9&nbsp;Value dependent types&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.9.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.9.html
new file mode 100644
index 0000000..aa0c154
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.9.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.8.html" rel="prev">&lt;&lt;&nbsp;&sect;A.8&nbsp;Precedence declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.10.html" rel="next">&sect;A.10&nbsp;Packages and imports&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+         <div class="sect depth2" id="sA.9">
+            <h2 class="sect">&sect;A.9&nbsp;Value dependent types</h2>
+            <table class="syntaxrule" id="sA.9.1">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.9.1</td>
+                  <td class="rule"><span class="title">TypeParameter</span><br /><em>TypeVariable [TypeBound]</em><br /><strong class="blue"><em>ReferenceType Name</em></strong></td>
+               </tr>
+            </table>
+            <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#108850"
+                  class="ext">JLS 3 &sect;4.4</a></p>
+            <table class="syntaxrule" id="sA.9.2">
+               <tr>
+                  <td class="sect">&sect;&nbsp;A.9.2</td>
+                  <td class="rule"><span class="title">ActualTypeArgument</span><br /><em>ReferenceType</em><br /><em>Wildcard</em><br /><strong class="blue"><em>@Name</em></strong></td>
+               </tr>
+            </table>
+            <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#107353"
+                  class="ext">JLS 3 &sect;4.5.1</a></p>
+            <div class="constraints">
+               <h5 class="constraints">Contextual constraints:</h5>
+               <ol class="constraints">
+                  <li id="sA.9.a"><span class="title">ActualTypeParameter</span><br />
+                     					An <code>ActualTypeArgument</code> of the form  <code>@Name</code> may only occur 
+                     					as a parameter of a simple name type reference.
+                     				
+                  </li>
+               </ol>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.8.html" rel="prev">&lt;&lt;&nbsp;&sect;A.8&nbsp;Precedence declaration</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sA.10.html" rel="next">&sect;A.10&nbsp;Packages and imports&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sA.html" rel="section">&sect;A&nbsp;OT/J Syntax</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.html
new file mode 100644
index 0000000..1f31660
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sA.html
@@ -0,0 +1,509 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="s9.html" rel="prev">&lt;&lt;&nbsp;&sect;9&nbsp;Value Dependent Classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.html" rel="next">&sect;B&nbsp;Changes between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="sA">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;A&nbsp;OT/J Syntax</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="sA.html">&sect;A&nbsp;OT/J Syntax</a></li>
+                  <li><a href="#sA.0">&sect;A.0&nbsp;Keywords</a></li>
+                  <li><a href="#sA.1">&sect;A.1&nbsp;Class definitions</a></li>
+                  <li><a href="#sA.2">&sect;A.2&nbsp;Modifiers</a></li>
+                  <li><a href="#sA.3">&sect;A.3&nbsp;Method bindings</a></li>
+                  <li><a href="#sA.4">&sect;A.4&nbsp;Parameter mappings</a></li>
+                  <li><a href="#sA.5">&sect;A.5&nbsp;Statements</a></li>
+                  <li><a href="#sA.6">&sect;A.6&nbsp;Types</a></li>
+                  <li><a href="#sA.7">&sect;A.7&nbsp;Guard predicates</a></li>
+                  <li><a href="#sA.8">&sect;A.8&nbsp;Precedence declaration</a></li>
+                  <li><a href="#sA.9">&sect;A.9&nbsp;Value dependent types</a></li>
+                  <li><a href="#sA.10">&sect;A.10&nbsp;Packages and imports</a></li>
+               </ul>
+            </div>
+            <div class="intro">
+               <h3>Notation</h3>
+               <p>The following grammar rules extend the Java grammar given in the 
+                  	<a href="http://java.sun.com/docs/books/jls/second_edition/html/syntax.doc.html"
+                     class="ext">Java Language Specification</a>.
+                  	We adopt the conventions of printing non-terminal symbols in italic font
+                  	(e.g., <tt><em>ClassDeclaration</em></tt>), 
+                  	and terminal symbols in roman font (e.g., <tt>class</tt>).
+                  	Names printed in black refer to definitions from the original Java grammar.
+                  	Object Teams additions are printed in <strong class="blue">blue boldface</strong>.
+                  	For those rules that simply add a new option to an existing rule,
+                  	the original options are indicated by an ellipse (<code>...</code>).
+                  		
+               </p>
+            </div>
+            <div class="sect depth2" id="sA.0">
+               <h2 class="sect">&sect;A.0&nbsp;Keywords<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The keywords introduced by OT/J have different scopes, which means outside their
+                  	given scope these keywords can be used for regular identifiers. Only these names
+                  	are keywords unconditionally:
+                  		
+               </p>
+               <div class="listing plain"><pre>readonly, team, within</pre></div>
+               <div class="sect depth3" id="sA.0.1">
+                  <h3 class="sect">&sect;A.0.1&nbsp;Scoped keywords<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>The following names are keywords in OT/J only if they appear within a team or role class, 
+                     		ie., after the keyword <strong class="blue">team</strong> has been recognized:
+                     			
+                  </p>
+                  <div class="listing plain"><pre>as, base, callin, playedBy, precedence, tsuper, with, when</pre></div>
+                  <p>These names are keywords only in the context of a callin or callout binding 
+                     		respectively (<a href="#sA.3" title="&sect;A.3&nbsp;Method bindings" class="sect">&sect;A.3</a>):
+                     			
+                  </p>
+                  <div class="listing plain"><pre>after, before, replace, get, set</pre></div>
+               </div>
+               <div class="sect depth3" id="sA.0.2">
+                  <h3 class="sect">&sect;A.0.2&nbsp;Inheriting scoped keywords<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>While regular Java classes may use the scoped keywords 
+                     		(<a href="#sA.0.1" title="&sect;A.0.1&nbsp;Scoped keywords" class="sect">&sect;A.0.1</a>) of OT/J freely, it is an error if a role class 
+                     		inherits a feature whose name is a scoped keyword.
+                     			
+                  </p>
+               </div>
+               <div class="sect depth3" id="sA.0.3">
+                  <h3 class="sect">&sect;A.0.3&nbsp;Internal names<span class="toplink"><a href="#sA.0">&uarr;&nbsp;&sect;A.0</a></span></h3>
+                  <p>Compiler and runtime environment generate internal methods and fields which start with 
+                     		the prefix <code>_OT$</code>. It is illegal to use any of these methods and fields within client code.
+                     			
+                  </p>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.1">
+               <h2 class="sect">&sect;A.1&nbsp;Class definitions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>Class definitions add two new keywords <code>team</code> and
+                  	<code>playedBy</code>. Classes which use these keywords are called
+                  	<strong>teams</strong> and <strong>bound roles</strong>, respectively.
+                  	Any class that inherits from a bound role class (either by an 
+                  	<code>extends</code> clause or by implicit inheritance, cf. 
+                  	<a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a>) is again a bound role class.
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.1.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.1.1</td>
+                     <td class="rule"><span class="title">ClassDeclaration</span><br /><em>[Modifiers] </em><strong class="blue"><em>[</em>team<em>]</em></strong> class <em>Identifier [</em>extends <em>Type] [</em>implements <em>TypeList]</em><br /><span class="indent5"></span><strong class="blue"><em>[</em>playedBy <em>Type] [Guard]</em></strong><em> ClassBody</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>A class which has a <code>playedBy</code> clause (a <strong>bound
+                           					role</strong> class) may not be declared static and 
+                        					must be directly contained in a class that has the 
+                        					<code>team</code> modifier (a <strong>team</strong> class).
+                     </li>
+                     <li>A class which inherits from a team class must have the
+                        					<code>team</code> modifier, too.
+                     </li>
+                     <li>A class which has a guard (see <a href="s5.4.html" title="&sect;5.4&nbsp;Guard predicates" class="sect">&sect;5.4</a>) 
+                        					must be a team or a role.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.2">
+               <h2 class="sect">&sect;A.2&nbsp;Modifiers<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The rule for method modifiers adds one keyword: <code>callin</code>:
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.2.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.2.1</td>
+                     <td class="rule"><span class="title">Modifier</span><br />... <br /><strong class="blue">callin</strong></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The class of a method which has the <code>callin</code> modifier 
+                        					may not be declared static and must be directly contained in a team class.
+                     </li>
+                     <li>A method that has the <code>callin</code> modifier may not
+                        					appear in an explicit method call (rule Apply in JLS).
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.3">
+               <h2 class="sect">&sect;A.3&nbsp;Method bindings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <p>The rule of items declarable in a class body is augmented by method 
+                  		   bindings:
+                  		
+               </p>
+               <table class="syntaxrule" id="sA.3.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.1</td>
+                     <td class="rule"><span class="title">ClassBodyDeclaration</span><br />... <br /><strong class="blue"><em>CalloutBinding</em></strong><br /><strong class="blue"><em>CallinBinding</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.2</td>
+                     <td class="rule"><span class="title">CalloutBinding</span><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind MethodSpec CalloutParameterMappings</strong></em><br /><em>[Modifier] [TypeArguments] <strong class="blue">MethodSpec CalloutKind CalloutModifier FieldSpec</strong></em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.3</td>
+                     <td class="rule"><span class="title">Callin binding</span><br /><em>[ Identifier </em>:<em> ] [TypeArguments]</em><strong class="blue"><em> MethodSpec</em> &lt;- <em>CallinModifier MethodSpecs </em><br /><span class="indent5"></span>
+                           			[<em>Guard</em>]<em> CallinParameterMappings</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.4</td>
+                     <td class="rule"><span class="title">MethodSpec</span><br /><em>Identifier</em><br /><em>ResultType MethodDeclarator</em></td>
+                  </tr>
+               </table>
+               <div class="note">
+                  			Note, that <em>ResultType</em> and <em>MethodDeclarator</em> are not explicit in the 
+                  			overall syntax of the Java language specification. For convenience we refer to the definition in 
+                  			section <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#40420"
+                     class="ext">8.4. Method Declarations</a> 
+                  			of the Java language specification.
+                  		
+               </div>
+               <table class="syntaxrule" id="sA.3.5">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.5</td>
+                     <td class="rule"><span class="title">MethodSpecs</span><br /><strong class="blue"><em>MethodSpec [</em>, <em>MethodSpecs]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.6">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.6</td>
+                     <td class="rule"><span class="title">CalloutKind</span><br /><strong class="blue">-&gt;<br />=&gt;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.7">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.7</td>
+                     <td class="rule"><span class="title">CallinModifier</span><br /><strong class="blue">before</strong><br /><strong class="blue">after</strong><br /><strong class="blue">replace</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.8">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.8</td>
+                     <td class="rule"><span class="title">CalloutModifier</span><br /><strong class="blue">get</strong><br /><strong class="blue">set</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.3.9">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.3.9</td>
+                     <td class="rule"><span class="title">FieldSpec</span><br /><em>[Type] Identifier</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li><code>CalloutBinding</code>s and <code>CallinBinding</code>s
+                        					may occur only in bound role classes.
+                     </li>
+                     <li>A <code>CalloutBinding</code> or <code>CallinBinding</code> 
+                        					may not mix identifiers and full signatures (<code>MethodDeclarationHead</code>) 
+                        					for its method specifiers (<code>MethodSpec</code>).
+                        					<br />
+                        					Binding a full method signature to a field requires the <code>FieldSpec</code>
+                        					to include the <code>Type</code>.
+                     </li>
+                     <li>The method specifier at the left hand side of a 
+                        					<code>CallinBinding</code> which has the <code>replace</code> modifier 
+                        					must refer to a method that has the <code>callin</code> modifier.
+                     </li>
+                     <li>The <code>Modifier</code> of a callout binding can only be one of the visility
+                        					modifiers <code>public</code>, <code>protected</code> or <code>private</code>. 
+                        					A short callout binding (i.e., without signatures) must not specify 
+                        					a visibility modifier.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.4">
+               <h2 class="sect">&sect;A.4&nbsp;Parameter mappings<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.4.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.1</td>
+                     <td class="rule"><span class="title">CalloutParameterMappings</span><br /><strong class="blue">with { <em>CalloutParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.2</td>
+                     <td class="rule"><span class="title">CallinParameterMappings</span><br /><strong class="blue">with { <em>CallinParameterMappingList [,]</em> }</strong><br /><strong class="blue">;</strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.3</td>
+                     <td class="rule"><span class="title">CalloutParameterMappingList</span><br /><strong class="blue"><em>CalloutParameterMapping [</em>,<em> CalloutParameterMappingList]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.4</td>
+                     <td class="rule"><span class="title">CallinParameterMappingList</span><br /><strong class="blue"><em>CallinParameterMapping [</em>,<em> CallinParameterMappingList]</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.5">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.5</td>
+                     <td class="rule"><span class="title">CalloutParameterMapping</span><br /><em>Expression</em><strong class="blue"> -&gt; </strong><em>Identifier</em><br /><strong class="blue">result &lt;- </strong><em>Expression</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.4.6">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.4.6</td>
+                     <td class="rule"><span class="title">CallinParameterMapping</span><br /><em>Identifier</em><strong class="blue"> &lt;- </strong><em>Expression</em><br /><em>Expression</em><strong class="blue"> -&gt; </strong><strong class="blue">result</strong></td>
+                  </tr>
+               </table>
+               <div class="note">
+                  <h5>Note:</h5>
+                  			By defining ";" as an option for parameter mappings, the grammar enforces that
+                  			method bindings without a parameter mapping are terminated by a ";".
+                  			Also method bindings with parameter mappings may optionally be terminated by a ";",
+                  			which in that case is interpreted as an empty member declaration, following the
+                  			same pattern how non-abstract methods in Java may optionally have a trailing ";".
+                  		
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.5">
+               <h2 class="sect">&sect;A.5&nbsp;Statements<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.5.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.1</td>
+                     <td class="rule"><span class="title">Statement</span><br />... <br /><em><strong class="blue">Within</strong><br /><strong class="blue">BaseCall</strong><br /><strong class="blue">TSuperCall</strong></em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.2</td>
+                     <td class="rule"><span class="title">Within</span><br /><strong class="blue">within</strong> ( <em>Expression</em> ) <em>Statement</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.3</td>
+                     <td class="rule"><span class="title">BaseCall</span><br /><strong class="blue">base</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                        			<br /><strong class="blue">base</strong> ( <em>Arguments<sub>opt</sub></em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.5.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.5.4</td>
+                     <td class="rule"><span class="title">TSuperCall</span><br /><strong class="blue">tsuper</strong> . <em>Identifier</em> ( <em>Arguments<sub>opt</sub></em> )
+                        			<br /><strong class="blue">tsuper</strong> ( <em>Arguments<sub>opt</sub></em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The expression of a <code>Within</code> must evaluate
+                        	  				to an instance of a team class.
+                     </li>
+                     <li>The first form of a <code>BaseCall</code> may occur only
+                        	  				in the body of a method that has the <code>callin</code> modifier.
+                        	  				The identifier must be the name of the enclosing method.
+                     </li>
+                     <li>The second form of a <code>BaseCall</code> may occur only in a constructor of a 
+                        	  				bound role class.
+                     </li>
+                     <li>The first form of a <code>TSuperCall</code> may occur only in a method of
+                        	  				a role class.
+                     </li>
+                     <li>The second form of a <code>TSuperCall</code> may occur only in a constructor of a 
+                        	  				role class.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.6">
+               <h2 class="sect">&sect;A.6&nbsp;Types<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.6.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.1</td>
+                     <td class="rule"><span class="title">Type</span><br />... <br /><strong class="blue"><em>LiftingType</em></strong><br /><strong class="blue"><em>AnchoredType</em></strong></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.2</td>
+                     <td class="rule"><span class="title">LiftingType</span><br /><em>Type</em><strong class="blue"> as </strong><em>Type</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.3">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.3</td>
+                     <td class="rule"><span class="title">AnchoredType</span><br /><strong class="blue"><em>Path</em></strong>.<em>Type</em></td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.6.4">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.6.4</td>
+                     <td class="rule"><span class="title">Path</span><br /><em>Identifier</em><br /><strong class="blue"><em>Path</em></strong>.<em>Identifier</em></td>
+                  </tr>
+               </table>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li id="sA.6.a"><span class="title">Location</span><br />
+                        					A <code>LiftingType</code> may only occur in the parameter list 
+                        					of a method of a team class.
+                        				
+                     </li>
+                     <li id="sA.6.b"><span class="title">Role in scope</span><br />
+                        					The right hand side type in a <code>LiftingType</code> 
+                        					must be a class directly contained in the enclosing team class 
+                        					(the class may be acquired by <a href="s1.3.1.c.html"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">implicit inheritance (&sect;1.3.1.(c))</a>).
+                        				
+                     </li>
+                     <li id="sA.6.c"><span class="title">Team path</span><br /><em>Note, that the syntax of &sect;A.6.3/4 is deprecated in favor of <a href="#sA.9" title="&sect;A.9&nbsp;Value dependent types" class="sect">&sect;A.9</a></em>.
+                        					<br />
+                        					The path in an <code>AnchoredType</code> must refer to an instance of a team class. 
+                        					Each identifier in the path must be declared with the <code>final</code> modifier.
+                        				
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.7">
+               <h2 class="sect">&sect;A.7&nbsp;Guard predicates<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.7.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.7.1</td>
+                     <td class="rule"><span class="title">Guard</span><br /><strong class="blue"><em>[</em>base<em>]</em> when</strong> ( <em>Expression</em> )
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.7.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.7.2</td>
+                     <td class="rule"><span class="title">MethodDeclaration</span><br />...<br /><em>MethodHeader <strong class="blue">[Guard]</strong>  MethodBody</em></td>
+                  </tr>
+               </table>
+               <p>Other rules referring to <em><code>Guard</code></em>: 
+                  		   <a href="#sA.1.1" title="&sect;A.1.1&nbsp;ClassDeclaration" class="sect">ClassDeclaration (&sect;A.1.1)</a>, 
+                  <a href="#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">CallinBinding (&sect;A.3.3)</a></p>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li>The <code>Expression</code> in a guard must have type <code>boolean</code>.
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.8">
+               <h2 class="sect">&sect;A.8&nbsp;Precedence declaration<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.8.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.8.1</td>
+                     <td class="rule"><span class="title">PrecedenceDeclaration</span><br /><strong class="blue">precedence</strong><em> CallinNameList</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.8.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.8.2</td>
+                     <td class="rule"><span class="title">CallinNameList</span><br /><em>Name [, CallinNameList]</em></td>
+                  </tr>
+               </table>
+            </div>
+            <div class="sect depth2" id="sA.9">
+               <h2 class="sect">&sect;A.9&nbsp;Value dependent types<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.9.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.9.1</td>
+                     <td class="rule"><span class="title">TypeParameter</span><br /><em>TypeVariable [TypeBound]</em><br /><strong class="blue"><em>ReferenceType Name</em></strong></td>
+                  </tr>
+               </table>
+               <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#108850"
+                     class="ext">JLS 3 &sect;4.4</a></p>
+               <table class="syntaxrule" id="sA.9.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.9.2</td>
+                     <td class="rule"><span class="title">ActualTypeArgument</span><br /><em>ReferenceType</em><br /><em>Wildcard</em><br /><strong class="blue"><em>@Name</em></strong></td>
+                  </tr>
+               </table>
+               <p>See <a href="http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#107353"
+                     class="ext">JLS 3 &sect;4.5.1</a></p>
+               <div class="constraints">
+                  <h5 class="constraints">Contextual constraints:</h5>
+                  <ol class="constraints">
+                     <li id="sA.9.a"><span class="title">ActualTypeParameter</span><br />
+                        					An <code>ActualTypeArgument</code> of the form  <code>@Name</code> may only occur 
+                        					as a parameter of a simple name type reference.
+                        				
+                     </li>
+                  </ol>
+               </div>
+            </div>
+            <div class="sect depth2" id="sA.10">
+               <h2 class="sect">&sect;A.10&nbsp;Packages and imports<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;A</a></span></h2>
+               <table class="syntaxrule" id="sA.10.1">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.10.1</td>
+                     <td class="rule"><span class="title">PackageDeclaration</span><br />...<br /><strong class="blue">team </strong><em>QualifiedName</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+               <table class="syntaxrule" id="sA.10.2">
+                  <tr>
+                     <td class="sect">&sect;&nbsp;A.10.2</td>
+                     <td class="rule"><span class="title">Import</span><br />...<br /><strong>import </strong><strong class="blue">base </strong><em>QualifiedName</em> ;
+                        		
+                     </td>
+                  </tr>
+               </table>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="s9.html" rel="prev">&lt;&lt;&nbsp;&sect;9&nbsp;Value Dependent Classes</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.html" rel="next">&sect;B&nbsp;Changes between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.1.html
new file mode 100644
index 0000000..a336843
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.1.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.1.2.html" rel="next">&sect;B.1.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+         <div class="subsect depth3" id="sB.1.1">
+            <h4 class="subsect">&sect;B.1.(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+            <ul>
+               <li><a href="s3.2.a.html" title="&sect;3.2.(a)&nbsp;with clause" class="sect">&sect;3.2.(a)</a> :
+                  				<strong>Parameter mappings</strong><p>
+                     				Disallow parameter mappings in a role interface.
+                     			
+                  </p>
+               </li>
+               <li><a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> :
+                  				<strong>Replace bindings</strong><p>
+                     				Disallow unsafe use of polymorphism and primitive type conversions.
+                     			
+                  </p>
+               </li>
+               <li><a href="s6.1.a.html"
+                     title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                     class="sect">&sect;6.1.(a)</a> :
+                  				<strong>Signatures of reflective methods</strong><p>
+                     					Made two methods generic so that return values can be used without the need of casting.
+                     				
+                  </p>
+               </li>
+               <li><a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a> :
+                  				<strong>Confined roles</strong><p>
+                     					Improved explanation.
+                     				
+                  </p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.1.2.html" rel="next">&sect;B.1.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.2.html
new file mode 100644
index 0000000..9afd6d9
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.2.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sB.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1.(1)&nbsp;Between OTJLD 1.0 and OTJLD 1.1</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.1.3.html" rel="next">&sect;B.1.(3)&nbsp;Between OTJLD 1.2 and OTJLD 1.3&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+         <div class="subsect depth3" id="sB.1.2">
+            <h4 class="subsect">&sect;B.1.(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+            <ul>
+               <li><a href="s1.2.1.e.html" title="&sect;1.2.1.(e)&nbsp;Role features"
+                     class="sect">&sect;1.2.1.(e)</a>:
+                  				<strong>Visibility of role features</strong><p>
+                     					Clarification has been added that a role can always access all the 
+                     					features that its enclosing team has access to.
+                     				
+                  </p>
+               </li>
+               <li><a href="s2.1.2.e.html" title="&sect;2.1.2.(e)&nbsp;No free type parameters"
+                     class="sect">&sect;2.1.2.(e)</a>:
+                  				<strong>Generic roles/bases</strong><p>
+                     					Relaxed the rules about generic bound roles. This change also subsumes what previously was a specific restriction in
+                     <a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                        class="sect">&sect;4.1.(b)</a>.
+                     				
+                  </p>
+               </li>
+               <li><a href="s3.1.i.html" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                     class="sect">&sect;3.1.(i)</a> and <a href="s3.5.f.html" title="&sect;3.5.(f)&nbsp;Shorthand definition"
+                     class="sect">&sect;3.5.(f)</a>:
+                  				<strong>Visibility of shorthand callout</strong><p>
+                     					A role method defined by a shorthand callout binding can now specify a visibility modifier
+                     					(see also <a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>), 
+                     					otherwise it inherits the visibility modifier of it's bound base method/field.
+                     				
+                  </p>
+               </li>
+               <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                  				<strong>Visibility of inferred callout</strong><p>
+                     					Role methods inferred as a callout binding are either <code>public</code>
+                     					(inferred via interface) or <code>private</code> inferred from 
+                     					self call / field access. 
+                     				
+                  </p>
+               </li>
+               <li><a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                  				<strong>No explicit use of inferred callout to field</strong><p>
+                     					Clarification has been added that an accessor method generated for an inferred callout to field
+                     					can not be explicitly invoked. 
+                     				
+                  </p>
+               </li>
+               <li><a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                     class="sect">&sect;4.1.(b)</a>:
+                  				<strong>No callin in generic role</strong><p>
+                     					A restriction has been made explicit that a generic role cannot define callin bindings. 
+                     				
+                  </p>
+               </li>
+               <li><a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">&sect;4.2.(d)</a> :
+                  				<strong>Callin methods</strong><p>Slightly rephrased and extended the rule to make explicit that a callin method can
+                     					indeed be intercepted using a second level callin binding.
+                     				
+                  </p>
+               </li>
+               <li><a href="s6.1.a.html"
+                     title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                     class="sect">&sect;6.1.(a)</a> :
+                  				<strong>Reflective methods <code>getAllRoles</code></strong><p>
+                     					More precision: answer only <em>bound</em> roles.
+                     				
+                  </p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sB.1.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1.(1)&nbsp;Between OTJLD 1.0 and OTJLD 1.1</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.1.3.html" rel="next">&sect;B.1.(3)&nbsp;Between OTJLD 1.2 and OTJLD 1.3&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.3.html
new file mode 100644
index 0000000..1e05cb3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.3.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sB.1.2.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+         <div class="subsect depth3" id="sB.1.3">
+            <h4 class="subsect">&sect;B.1.(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+            <ul>
+               <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                     class="sect">&sect;1.2.4.(c)</a> :
+                  					<strong>Syntax for role class literals</strong><p>Previously, the syntax <code>R&lt;@t&gt;.class</code> was not supported.
+                     						This restriction has been removed.
+                     					
+                  </p>
+               </li>
+               <li><a href="s1.3.html"
+                     title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                     class="sect">&sect;1.3</a> :
+                  					<strong>Teams extending non-team classes</strong><p>Previously, <code>org.objectteams.Team</code> was the super class of all team classes.
+                     					As a consequence a team could not extend a non-team class.
+                     					This restriction has been removed by introducing a new super-type of all teams,
+                     					the interface <code>org.objectteams.ITeam</code>.
+                     					This change also affects some paragraphs in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a> as members
+                     					have been moved to the new interface.
+                     					
+                  </p>
+               </li>
+               <li><a href="s4.4.c.html"
+                     title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                     class="sect">&sect;4.4.(c)</a> :
+                  					<strong>Further restrict result mapping in after callin bindings</strong><p>Clarify that <code>after</code> callin bindings cannot use the <code>-&gt;</code>
+                     					token to map a result value.
+                     					
+                  </p>
+               </li>
+               <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                     class="sect">&sect;4.10</a>, <a href="s4.10.a.html" title="&sect;4.10.(a)&nbsp;Fresh type parameter"
+                     class="sect">&sect;4.10.(a)</a> :
+                  	<strong>Generic callin bindings</strong><p>Minor changes to give room for new paragraph <a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                        class="sect">&sect;4.10.(e)</a>.
+                  </p>
+               </li>
+               <li><a href="s5.4.1.a.html" title="&sect;5.4.1.(a)&nbsp;Method binding guards"
+                     class="sect">&sect;5.4.1.(a)</a> :
+                  	<strong>Scope of regular binding guard</strong><p>Removed an erroneous sentence about the special identifier <code>result</code> in a regular method binding guard.
+                     		Since parameter mappings are applied before evaluating the guard, the result value can be accessed through
+                     		a result mapping (<a href="s4.4.c.html"
+                        title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                        class="sect">&sect;4.4.(c)</a>). Furthermore, the sentence actually confused
+                     		base and role sides.
+                     	
+                  </p>
+               </li>
+               <li><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>, <a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">&sect;A.3.3</a> :
+                  	<strong>Syntax: generic method bindings</strong><p>The location of possible type parameters in a method binding has been made explicit.</p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sB.1.2.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.1.html" rel="section">&sect;B.1&nbsp;Paragraphs changed between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.html
new file mode 100644
index 0000000..e5a8960
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.1.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.html" rel="next">&sect;B.2&nbsp;Additions between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+         <div class="sect depth2" id="sB.1">
+            <h2 class="sect">&sect;B.1&nbsp;Paragraphs changed between versions</h2>
+            <div class="subsect depth3" id="sB.1.1">
+               <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+               <ul>
+                  <li><a href="s3.2.a.html" title="&sect;3.2.(a)&nbsp;with clause" class="sect">&sect;3.2.(a)</a> :
+                     				<strong>Parameter mappings</strong><p>
+                        				Disallow parameter mappings in a role interface.
+                        			
+                     </p>
+                  </li>
+                  <li><a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> :
+                     				<strong>Replace bindings</strong><p>
+                        				Disallow unsafe use of polymorphism and primitive type conversions.
+                        			
+                     </p>
+                  </li>
+                  <li><a href="s6.1.a.html"
+                        title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                        class="sect">&sect;6.1.(a)</a> :
+                     				<strong>Signatures of reflective methods</strong><p>
+                        					Made two methods generic so that return values can be used without the need of casting.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a> :
+                     				<strong>Confined roles</strong><p>
+                        					Improved explanation.
+                        				
+                     </p>
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="sB.1.2">
+               <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+               <ul>
+                  <li><a href="s1.2.1.e.html" title="&sect;1.2.1.(e)&nbsp;Role features"
+                        class="sect">&sect;1.2.1.(e)</a>:
+                     				<strong>Visibility of role features</strong><p>
+                        					Clarification has been added that a role can always access all the 
+                        					features that its enclosing team has access to.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s2.1.2.e.html" title="&sect;2.1.2.(e)&nbsp;No free type parameters"
+                        class="sect">&sect;2.1.2.(e)</a>:
+                     				<strong>Generic roles/bases</strong><p>
+                        					Relaxed the rules about generic bound roles. This change also subsumes what previously was a specific restriction in
+                        <a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                           class="sect">&sect;4.1.(b)</a>.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s3.1.i.html" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                        class="sect">&sect;3.1.(i)</a> and <a href="s3.5.f.html" title="&sect;3.5.(f)&nbsp;Shorthand definition"
+                        class="sect">&sect;3.5.(f)</a>:
+                     				<strong>Visibility of shorthand callout</strong><p>
+                        					A role method defined by a shorthand callout binding can now specify a visibility modifier
+                        					(see also <a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>), 
+                        					otherwise it inherits the visibility modifier of it's bound base method/field.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                     				<strong>Visibility of inferred callout</strong><p>
+                        					Role methods inferred as a callout binding are either <code>public</code>
+                        					(inferred via interface) or <code>private</code> inferred from 
+                        					self call / field access. 
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                     				<strong>No explicit use of inferred callout to field</strong><p>
+                        					Clarification has been added that an accessor method generated for an inferred callout to field
+                        					can not be explicitly invoked. 
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                        class="sect">&sect;4.1.(b)</a>:
+                     				<strong>No callin in generic role</strong><p>
+                        					A restriction has been made explicit that a generic role cannot define callin bindings. 
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">&sect;4.2.(d)</a> :
+                     				<strong>Callin methods</strong><p>Slightly rephrased and extended the rule to make explicit that a callin method can
+                        					indeed be intercepted using a second level callin binding.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s6.1.a.html"
+                        title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                        class="sect">&sect;6.1.(a)</a> :
+                     				<strong>Reflective methods <code>getAllRoles</code></strong><p>
+                        					More precision: answer only <em>bound</em> roles.
+                        				
+                     </p>
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="sB.1.3">
+               <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+               <ul>
+                  <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                        class="sect">&sect;1.2.4.(c)</a> :
+                     					<strong>Syntax for role class literals</strong><p>Previously, the syntax <code>R&lt;@t&gt;.class</code> was not supported.
+                        						This restriction has been removed.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s1.3.html"
+                        title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                        class="sect">&sect;1.3</a> :
+                     					<strong>Teams extending non-team classes</strong><p>Previously, <code>org.objectteams.Team</code> was the super class of all team classes.
+                        					As a consequence a team could not extend a non-team class.
+                        					This restriction has been removed by introducing a new super-type of all teams,
+                        					the interface <code>org.objectteams.ITeam</code>.
+                        					This change also affects some paragraphs in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a> as members
+                        					have been moved to the new interface.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s4.4.c.html"
+                        title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                        class="sect">&sect;4.4.(c)</a> :
+                     					<strong>Further restrict result mapping in after callin bindings</strong><p>Clarify that <code>after</code> callin bindings cannot use the <code>-&gt;</code>
+                        					token to map a result value.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                        class="sect">&sect;4.10</a>, <a href="s4.10.a.html" title="&sect;4.10.(a)&nbsp;Fresh type parameter"
+                        class="sect">&sect;4.10.(a)</a> :
+                     	<strong>Generic callin bindings</strong><p>Minor changes to give room for new paragraph <a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                           class="sect">&sect;4.10.(e)</a>.
+                     </p>
+                  </li>
+                  <li><a href="s5.4.1.a.html" title="&sect;5.4.1.(a)&nbsp;Method binding guards"
+                        class="sect">&sect;5.4.1.(a)</a> :
+                     	<strong>Scope of regular binding guard</strong><p>Removed an erroneous sentence about the special identifier <code>result</code> in a regular method binding guard.
+                        		Since parameter mappings are applied before evaluating the guard, the result value can be accessed through
+                        		a result mapping (<a href="s4.4.c.html"
+                           title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                           class="sect">&sect;4.4.(c)</a>). Furthermore, the sentence actually confused
+                        		base and role sides.
+                        	
+                     </p>
+                  </li>
+                  <li><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>, <a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">&sect;A.3.3</a> :
+                     	<strong>Syntax: generic method bindings</strong><p>The location of possible type parameters in a method binding has been made explicit.</p>
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.html" rel="next">&sect;B.2&nbsp;Additions between versions&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.1.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.1.html
new file mode 100644
index 0000000..2fefc6e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.1.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.2.html" rel="next">&sect;B.2.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+         <div class="subsect depth3" id="sB.2.1">
+            <h4 class="subsect">&sect;B.2.(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+            <ul>
+               <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                     class="sect">&sect;1.2.4.(c)</a>: 
+                  				<strong>Role class literal</strong><p>
+                     					Made existing feature explicit and introduce new qualified class literal for externalized roles.
+                     				
+                  </p>
+               </li>
+               <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a> : 
+                  				<strong>Inferred callout</strong><p>
+                     					New feature.
+                     				
+                  </p>
+               </li>
+               <li><a href="s4.6.a.html"
+                     title="&sect;4.6.(a)&nbsp;Private methods from super classes"
+                     class="sect">&sect;4.6.(a)</a> : 
+                  				<strong>Callin-binding private methods from super classes</strong><p>
+                     				Added a necessary restriction.
+                     				
+                  </p>
+               </li>
+               <li><a href="s4.9.html" title="&sect;4.9&nbsp;Callin inheritance" class="sect">&sect;4.9</a> :	
+                  				<strong>Callin inheritance</strong><p>
+                     					Clarified issues that where under-specified or insufficiently explained, specifically:
+                     				
+                  </p>
+                  <ul>
+                     <li>Effect of callin bindings on inherited or overridden base methods 
+                        						(<a href="s4.9.1.html" title="&sect;4.9.1&nbsp;Base side inheritance"
+                           class="sect">&sect;4.9.1</a>).
+                     </li>
+                     <li>Interplay of callin bindings and base methods with covariant return types 
+                        						(<a href="s4.9.3.html" title="&sect;4.9.3&nbsp;Covariant return types"
+                           class="sect">&sect;4.9.3</a>)
+                     </li>
+                  </ul>
+               </li>
+               <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                     class="sect">&sect;4.10</a>:
+                  				<strong>Generic replace bindings</strong><p>
+                     					Reconcile type safety of replace bindings as introduced in <a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>
+                     					with desirable flexibility by using type parameters.
+                     				
+                  </p>
+               </li>
+               <li><a href="s7.2.b.html" title="&sect;7.2.(b)&nbsp;Arrays of Confined"
+                     class="sect">&sect;7.2.(b)</a> : 
+                  				<strong>Arrays of Confined</strong><p>
+                     					Added a necessary restriction.
+                     				
+                  </p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.2.html" rel="next">&sect;B.2.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.2.html
new file mode 100644
index 0000000..d9902bc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.2.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sB.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.2.(1)&nbsp;Between OTJLD 1.0 and OTJLD 1.1</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.3.html" rel="next">&sect;B.2.(3)&nbsp;Between OTJLD 1.2 and OTJLD 1.3&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+         <div class="subsect depth3" id="sB.2.2">
+            <h4 class="subsect">&sect;B.2.(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+            <ul>
+               <li><a href="s1.2.2.h.html" title="&sect;1.2.2.(h)&nbsp;Externalized creation"
+                     class="sect">&sect;1.2.2.(h)</a> :
+                  					<strong>Externalized creation</strong><p>Added alternative syntax using value parameter and changed title.</p>
+               </li>
+               <li><a href="s1.2.5.f.html" title="&sect;1.2.5.(f)&nbsp;Imports in role files"
+                     class="sect">&sect;1.2.5.(f)</a> :
+                  					<strong>Imports in role files</strong><p>Added a missing rule defining the effect of imports in role files.</p>
+               </li>
+               <li><a href="s1.3.1.c.html"
+                     title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                     class="sect">&sect;1.3.1.(c)</a> :
+                  					<strong>@Override annotation for roles</strong><p>The regular <code>@Override</code> annotation (Java &ge;5) has been extended to apply to role classes, too.
+					
+                  </p>
+               </li>
+               <li><a href="s1.3.1.k.html" title="&sect;1.3.1.(k)&nbsp;Covariant return types"
+                     class="sect">&sect;1.3.1.(k)</a> :
+                  					<strong>Covariant return types</strong><p>Necessary constraint for covariant return types in the presence of both implicit and explicit inheritance.
+                     					
+                  </p>
+               </li>
+               <li><a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                     class="sect">&sect;2.1.2.(c)</a> :
+                  					<strong>Binding to final base class</strong><p>It has been added that binding to a final base class is now considered as decapsulation, too.
+                     					
+                  </p>
+               </li>
+               <li><a href="s2.2.f.html" title="&sect;2.2.(f)&nbsp;Ambiguous lowering"
+                     class="sect">&sect;2.2.(f)</a> :
+                  					<strong>Ambiguous lowering</strong><p>A diagnostic has been added to detect situations where lowering might be intended
+                     					   but fails because the declared type is <code>java.lang.Object</code>,
+                     					   which makes a potential lowering translation unnecessary and thus ambiguous.
+                     					
+                  </p>
+               </li>
+               <li><a href="s2.3.2.e.html" title="&sect;2.3.2.(e)&nbsp;Generic declared lifting"
+                     class="sect">&sect;2.3.2.(e)</a> :
+                  					<strong>Generic declared lifting</strong><p>Support passing unrelated base types into the same method with declared lifting.
+                     					
+                  </p>
+               </li>
+               <li><a href="s2.6.g.html"
+                     title="&sect;2.6.(g)&nbsp;Decapsulation via base reference"
+                     class="sect">&sect;2.6.(g)</a> :
+                  					<strong>Decapsulation via base reference</strong><p>Extended applicability of decapsulation to two more positions.
+                     					
+                  </p>
+               </li>
+               <li><a href="s4.3.f.html" title="&sect;4.3.(f)&nbsp;Base super calls" class="sect">&sect;4.3.(f)</a> :
+                  					<strong>Base super call</strong><p>Support base calls directly to the super version of the bound base method,
+                     					thus bypassing both the exact bound base method and also any further callins
+                     					relating to this base method or its super version.
+                     					
+                  </p>
+               </li>
+               <li><a href="s5.4.b.html" title="&sect;5.4.(b)&nbsp;No side effects" class="sect">&sect;5.4.(b)</a> :
+                  					<strong>Side-effects in guard predicates</strong><p>Migrate previous note about a future feature to a regular paragraph.</p>
+               </li>
+               <li><a href="s5.4.c.html" title="&sect;5.4.(c)&nbsp;Exceptions" class="sect">&sect;5.4.(c)</a> :
+                  					<strong>Exceptions in guard predicates</strong><p>Clarify the effect of exceptions thrown from a guard predicate.</p>
+               </li>
+               <li><a href="s6.2.d.html" title="&sect;6.2.(d)&nbsp;Exceptions" class="sect">&sect;6.2.(d)</a> :
+                  				    <strong>LiftingVetoException</strong><p>Added documentation for the mostly internal <code>LiftingVetoException</code> and how
+                     				    it could actually be used in client code.
+                     				    
+                  </p>
+               </li>
+               <li><a href="s6.2.e.html" title="&sect;6.2.(e)&nbsp;Role migration" class="sect">&sect;6.2.(e)</a> :
+                  				    <strong>Role migration</strong><p>Added two interfaces to add migration capabilities to a role class.
+                     				    
+                  </p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sB.2.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.2.(1)&nbsp;Between OTJLD 1.0 and OTJLD 1.1</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"><a href="sB.2.3.html" rel="next">&sect;B.2.(3)&nbsp;Between OTJLD 1.2 and OTJLD 1.3&nbsp;&gt;&gt;</a></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.3.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.3.html
new file mode 100644
index 0000000..379f7d4
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.3.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sB.2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;B.2.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+         <div class="subsect depth3" id="sB.2.3">
+            <h4 class="subsect">&sect;B.2.(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+            <ul>
+               <li><a href="s3.1.k.html" title="&sect;3.1.(k)&nbsp;Callout to generic method"
+                     class="sect">&sect;3.1.(k)</a> :
+                  					<strong>Callout to generic method</strong><p>Added a rule on how a callout binding may refer to a generic base method.
+                     					
+                  </p>
+               </li>
+               <li><a href="s4.1.h.html" title="&sect;4.1.(h)&nbsp;Method of enclosing class"
+                     class="sect">&sect;4.1.(h)</a> :
+                  	<strong>Binding to team methods</strong><p><code>before</code> and <code>after</code> callin bindings can now
+                     		bind to methods of an enclosing class, too.
+                     	
+                  </p>
+               </li>
+               <li><a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                     class="sect">&sect;4.10.(e)</a> :
+                  	<strong>Propagating type parameters in callin bindings</strong><p>
+                     		In addition to capturing covariant return types, a callin binding
+                     		may also declared type parameters in order to propagate genericity
+                     		from its base method to the role method.
+                     	
+                  </p>
+               </li>
+               <li><a href="s5.3.d.html"
+                     title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                     class="sect">&sect;5.3.(d)</a> :
+                  	<strong>Configuring implicit activation</strong><p>Mechanisms have been added for configuring implicit team activation.
+                     	The default has been changed to not apply implicit activation.
+                     	A corresponding note has also been added to <a href="s5.3.html" title="&sect;5.3&nbsp;Implicit team activation"
+                        class="sect">&sect;5.3</a></p>
+               </li>
+               <li><a href="s9.2.1.a.html"
+                     title="&sect;9.2.1.(a)&nbsp;Instance constrained type parameters"
+                     class="sect">&sect;9.2.1.(a)</a> :
+                  	<strong>Instance constrained type parameter</strong><p>
+                     		Type anchors can now be applied to type parameters, too, 
+                     		thus expressing a new kind of constraint on the type parameter.
+                     	
+                  </p>
+               </li>
+            </ul>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sB.2.2.html" rel="prev">&lt;&lt;&nbsp;&sect;B.2.(2)&nbsp;Between OTJLD 1.1 and OTJLD 1.2</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a>&nbsp;&gt;&nbsp;<a class="nav" href="sB.2.html" rel="section">&sect;B.2&nbsp;Additions between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.html
new file mode 100644
index 0000000..aaf2b28
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.2.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sB.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1&nbsp;Paragraphs changed between versions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+         <div class="sect depth2" id="sB.2">
+            <h2 class="sect">&sect;B.2&nbsp;Additions between versions</h2>
+            <div class="subsect depth3" id="sB.2.1">
+               <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+               <ul>
+                  <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                        class="sect">&sect;1.2.4.(c)</a>: 
+                     				<strong>Role class literal</strong><p>
+                        					Made existing feature explicit and introduce new qualified class literal for externalized roles.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a> : 
+                     				<strong>Inferred callout</strong><p>
+                        					New feature.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s4.6.a.html"
+                        title="&sect;4.6.(a)&nbsp;Private methods from super classes"
+                        class="sect">&sect;4.6.(a)</a> : 
+                     				<strong>Callin-binding private methods from super classes</strong><p>
+                        				Added a necessary restriction.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s4.9.html" title="&sect;4.9&nbsp;Callin inheritance" class="sect">&sect;4.9</a> :	
+                     				<strong>Callin inheritance</strong><p>
+                        					Clarified issues that where under-specified or insufficiently explained, specifically:
+                        				
+                     </p>
+                     <ul>
+                        <li>Effect of callin bindings on inherited or overridden base methods 
+                           						(<a href="s4.9.1.html" title="&sect;4.9.1&nbsp;Base side inheritance"
+                              class="sect">&sect;4.9.1</a>).
+                        </li>
+                        <li>Interplay of callin bindings and base methods with covariant return types 
+                           						(<a href="s4.9.3.html" title="&sect;4.9.3&nbsp;Covariant return types"
+                              class="sect">&sect;4.9.3</a>)
+                        </li>
+                     </ul>
+                  </li>
+                  <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                        class="sect">&sect;4.10</a>:
+                     				<strong>Generic replace bindings</strong><p>
+                        					Reconcile type safety of replace bindings as introduced in <a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>
+                        					with desirable flexibility by using type parameters.
+                        				
+                     </p>
+                  </li>
+                  <li><a href="s7.2.b.html" title="&sect;7.2.(b)&nbsp;Arrays of Confined"
+                        class="sect">&sect;7.2.(b)</a> : 
+                     				<strong>Arrays of Confined</strong><p>
+                        					Added a necessary restriction.
+                        				
+                     </p>
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="sB.2.2">
+               <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+               <ul>
+                  <li><a href="s1.2.2.h.html" title="&sect;1.2.2.(h)&nbsp;Externalized creation"
+                        class="sect">&sect;1.2.2.(h)</a> :
+                     					<strong>Externalized creation</strong><p>Added alternative syntax using value parameter and changed title.</p>
+                  </li>
+                  <li><a href="s1.2.5.f.html" title="&sect;1.2.5.(f)&nbsp;Imports in role files"
+                        class="sect">&sect;1.2.5.(f)</a> :
+                     					<strong>Imports in role files</strong><p>Added a missing rule defining the effect of imports in role files.</p>
+                  </li>
+                  <li><a href="s1.3.1.c.html"
+                        title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                        class="sect">&sect;1.3.1.(c)</a> :
+                     					<strong>@Override annotation for roles</strong><p>The regular <code>@Override</code> annotation (Java &ge;5) has been extended to apply to role classes, too.
+					
+                     </p>
+                  </li>
+                  <li><a href="s1.3.1.k.html" title="&sect;1.3.1.(k)&nbsp;Covariant return types"
+                        class="sect">&sect;1.3.1.(k)</a> :
+                     					<strong>Covariant return types</strong><p>Necessary constraint for covariant return types in the presence of both implicit and explicit inheritance.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                        class="sect">&sect;2.1.2.(c)</a> :
+                     					<strong>Binding to final base class</strong><p>It has been added that binding to a final base class is now considered as decapsulation, too.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s2.2.f.html" title="&sect;2.2.(f)&nbsp;Ambiguous lowering"
+                        class="sect">&sect;2.2.(f)</a> :
+                     					<strong>Ambiguous lowering</strong><p>A diagnostic has been added to detect situations where lowering might be intended
+                        					   but fails because the declared type is <code>java.lang.Object</code>,
+                        					   which makes a potential lowering translation unnecessary and thus ambiguous.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s2.3.2.e.html" title="&sect;2.3.2.(e)&nbsp;Generic declared lifting"
+                        class="sect">&sect;2.3.2.(e)</a> :
+                     					<strong>Generic declared lifting</strong><p>Support passing unrelated base types into the same method with declared lifting.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s2.6.g.html"
+                        title="&sect;2.6.(g)&nbsp;Decapsulation via base reference"
+                        class="sect">&sect;2.6.(g)</a> :
+                     					<strong>Decapsulation via base reference</strong><p>Extended applicability of decapsulation to two more positions.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s4.3.f.html" title="&sect;4.3.(f)&nbsp;Base super calls" class="sect">&sect;4.3.(f)</a> :
+                     					<strong>Base super call</strong><p>Support base calls directly to the super version of the bound base method,
+                        					thus bypassing both the exact bound base method and also any further callins
+                        					relating to this base method or its super version.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s5.4.b.html" title="&sect;5.4.(b)&nbsp;No side effects" class="sect">&sect;5.4.(b)</a> :
+                     					<strong>Side-effects in guard predicates</strong><p>Migrate previous note about a future feature to a regular paragraph.</p>
+                  </li>
+                  <li><a href="s5.4.c.html" title="&sect;5.4.(c)&nbsp;Exceptions" class="sect">&sect;5.4.(c)</a> :
+                     					<strong>Exceptions in guard predicates</strong><p>Clarify the effect of exceptions thrown from a guard predicate.</p>
+                  </li>
+                  <li><a href="s6.2.d.html" title="&sect;6.2.(d)&nbsp;Exceptions" class="sect">&sect;6.2.(d)</a> :
+                     				    <strong>LiftingVetoException</strong><p>Added documentation for the mostly internal <code>LiftingVetoException</code> and how
+                        				    it could actually be used in client code.
+                        				    
+                     </p>
+                  </li>
+                  <li><a href="s6.2.e.html" title="&sect;6.2.(e)&nbsp;Role migration" class="sect">&sect;6.2.(e)</a> :
+                     				    <strong>Role migration</strong><p>Added two interfaces to add migration capabilities to a role class.
+                        				    
+                     </p>
+                  </li>
+               </ul>
+            </div>
+            <div class="subsect depth3" id="sB.2.3">
+               <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+               <ul>
+                  <li><a href="s3.1.k.html" title="&sect;3.1.(k)&nbsp;Callout to generic method"
+                        class="sect">&sect;3.1.(k)</a> :
+                     					<strong>Callout to generic method</strong><p>Added a rule on how a callout binding may refer to a generic base method.
+                        					
+                     </p>
+                  </li>
+                  <li><a href="s4.1.h.html" title="&sect;4.1.(h)&nbsp;Method of enclosing class"
+                        class="sect">&sect;4.1.(h)</a> :
+                     	<strong>Binding to team methods</strong><p><code>before</code> and <code>after</code> callin bindings can now
+                        		bind to methods of an enclosing class, too.
+                        	
+                     </p>
+                  </li>
+                  <li><a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                        class="sect">&sect;4.10.(e)</a> :
+                     	<strong>Propagating type parameters in callin bindings</strong><p>
+                        		In addition to capturing covariant return types, a callin binding
+                        		may also declared type parameters in order to propagate genericity
+                        		from its base method to the role method.
+                        	
+                     </p>
+                  </li>
+                  <li><a href="s5.3.d.html"
+                        title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                        class="sect">&sect;5.3.(d)</a> :
+                     	<strong>Configuring implicit activation</strong><p>Mechanisms have been added for configuring implicit team activation.
+                        	The default has been changed to not apply implicit activation.
+                        	A corresponding note has also been added to <a href="s5.3.html" title="&sect;5.3&nbsp;Implicit team activation"
+                           class="sect">&sect;5.3</a></p>
+                  </li>
+                  <li><a href="s9.2.1.a.html"
+                        title="&sect;9.2.1.(a)&nbsp;Instance constrained type parameters"
+                        class="sect">&sect;9.2.1.(a)</a> :
+                     	<strong>Instance constrained type parameter</strong><p>
+                        		Type anchors can now be applied to type parameters, too, 
+                        		thus expressing a new kind of constraint on the type parameter.
+                        	
+                     </p>
+                  </li>
+               </ul>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sB.1.html" rel="prev">&lt;&lt;&nbsp;&sect;B.1&nbsp;Paragraphs changed between versions</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"><a class="nav" href="sB.html" rel="section">&sect;B&nbsp;Changes between versions</a></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.html
new file mode 100644
index 0000000..582bc0e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/sB.html
@@ -0,0 +1,387 @@
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+      <meta name="copyright"
+            content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+      <link rel="stylesheet" type="text/css" href="../css/ot.css" />
+      <link rel="stylesheet" type="text/css" href="../css/otjld.css" />
+      <title>OT/J Language Definition v1.3</title>
+   </head>
+   <body class="otdt">
+      <div id="content">
+         <table class="nav">
+            <tr>
+               <td class="back"><a id="top"></a><a href="sA.html" rel="prev">&lt;&lt;&nbsp;&sect;A&nbsp;OT/J Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+         <div class="chapter" id="sB">
+            <div class="headl">
+               <div class="headr">
+                  <h1>&sect;B&nbsp;Changes between versions</h1>
+               </div>
+            </div>
+            <div id="toc-box">
+               <ul class="toc-box">
+                  <li><a href="sB.html">&sect;B&nbsp;Changes between versions</a></li>
+                  <li><a href="#sB.1">&sect;B.1&nbsp;Paragraphs changed between versions</a></li>
+                  <li><a href="#sB.2">&sect;B.2&nbsp;Additions between versions</a></li>
+               </ul>
+            </div>
+            <div class="sect depth2" id="sB.1">
+               <h2 class="sect">&sect;B.1&nbsp;Paragraphs changed between versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;B</a></span></h2>
+               <div class="subsect depth3" id="sB.1.1">
+                  <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+                  <ul>
+                     <li><a href="s3.2.a.html" title="&sect;3.2.(a)&nbsp;with clause" class="sect">&sect;3.2.(a)</a> :
+                        				<strong>Parameter mappings</strong><p>
+                           				Disallow parameter mappings in a role interface.
+                           			
+                        </p>
+                     </li>
+                     <li><a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a> :
+                        				<strong>Replace bindings</strong><p>
+                           				Disallow unsafe use of polymorphism and primitive type conversions.
+                           			
+                        </p>
+                     </li>
+                     <li><a href="s6.1.a.html"
+                           title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                           class="sect">&sect;6.1.(a)</a> :
+                        				<strong>Signatures of reflective methods</strong><p>
+                           					Made two methods generic so that return values can be used without the need of casting.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s7.2.html" title="&sect;7.2&nbsp;Confined roles" class="sect">&sect;7.2</a> :
+                        				<strong>Confined roles</strong><p>
+                           					Improved explanation.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.1.2">
+                  <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+                  <ul>
+                     <li><a href="s1.2.1.e.html" title="&sect;1.2.1.(e)&nbsp;Role features"
+                           class="sect">&sect;1.2.1.(e)</a>:
+                        				<strong>Visibility of role features</strong><p>
+                           					Clarification has been added that a role can always access all the 
+                           					features that its enclosing team has access to.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s2.1.2.e.html" title="&sect;2.1.2.(e)&nbsp;No free type parameters"
+                           class="sect">&sect;2.1.2.(e)</a>:
+                        				<strong>Generic roles/bases</strong><p>
+                           					Relaxed the rules about generic bound roles. This change also subsumes what previously was a specific restriction in
+                           <a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                              class="sect">&sect;4.1.(b)</a>.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.1.i.html" title="&sect;3.1.(i)&nbsp;Shorthand definition"
+                           class="sect">&sect;3.1.(i)</a> and <a href="s3.5.f.html" title="&sect;3.5.(f)&nbsp;Shorthand definition"
+                           class="sect">&sect;3.5.(f)</a>:
+                        				<strong>Visibility of shorthand callout</strong><p>
+                           					A role method defined by a shorthand callout binding can now specify a visibility modifier
+                           					(see also <a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>), 
+                           					otherwise it inherits the visibility modifier of it's bound base method/field.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                        				<strong>Visibility of inferred callout</strong><p>
+                           					Role methods inferred as a callout binding are either <code>public</code>
+                           					(inferred via interface) or <code>private</code> inferred from 
+                           					self call / field access. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a>:
+                        				<strong>No explicit use of inferred callout to field</strong><p>
+                           					Clarification has been added that an accessor method generated for an inferred callout to field
+                           					can not be explicitly invoked. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.1.b.html" title="&sect;4.1.(b)&nbsp;Prerequisite: Class binding"
+                           class="sect">&sect;4.1.(b)</a>:
+                        				<strong>No callin in generic role</strong><p>
+                           					A restriction has been made explicit that a generic role cannot define callin bindings. 
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.2.d.html" title="&sect;4.2.(d)&nbsp;Callin methods" class="sect">&sect;4.2.(d)</a> :
+                        				<strong>Callin methods</strong><p>Slightly rephrased and extended the rule to make explicit that a callin method can
+                           					indeed be intercepted using a second level callin binding.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s6.1.a.html"
+                           title="&sect;6.1.(a)&nbsp;Interface to the role registry"
+                           class="sect">&sect;6.1.(a)</a> :
+                        				<strong>Reflective methods <code>getAllRoles</code></strong><p>
+                           					More precision: answer only <em>bound</em> roles.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.1.3">
+                  <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+                  <ul>
+                     <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                           class="sect">&sect;1.2.4.(c)</a> :
+                        					<strong>Syntax for role class literals</strong><p>Previously, the syntax <code>R&lt;@t&gt;.class</code> was not supported.
+                           						This restriction has been removed.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s1.3.html"
+                           title="&sect;1.3&nbsp;Acquisition and implicit inheritance of role classes"
+                           class="sect">&sect;1.3</a> :
+                        					<strong>Teams extending non-team classes</strong><p>Previously, <code>org.objectteams.Team</code> was the super class of all team classes.
+                           					As a consequence a team could not extend a non-team class.
+                           					This restriction has been removed by introducing a new super-type of all teams,
+                           					the interface <code>org.objectteams.ITeam</code>.
+                           					This change also affects some paragraphs in <a href="s6.html" title="&sect;6&nbsp;Object Teams API" class="sect">&sect;6</a> as members
+                           					have been moved to the new interface.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.4.c.html"
+                           title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                           class="sect">&sect;4.4.(c)</a> :
+                        					<strong>Further restrict result mapping in after callin bindings</strong><p>Clarify that <code>after</code> callin bindings cannot use the <code>-&gt;</code>
+                           					token to map a result value.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                           class="sect">&sect;4.10</a>, <a href="s4.10.a.html" title="&sect;4.10.(a)&nbsp;Fresh type parameter"
+                           class="sect">&sect;4.10.(a)</a> :
+                        	<strong>Generic callin bindings</strong><p>Minor changes to give room for new paragraph <a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                              class="sect">&sect;4.10.(e)</a>.
+                        </p>
+                     </li>
+                     <li><a href="s5.4.1.a.html" title="&sect;5.4.1.(a)&nbsp;Method binding guards"
+                           class="sect">&sect;5.4.1.(a)</a> :
+                        	<strong>Scope of regular binding guard</strong><p>Removed an erroneous sentence about the special identifier <code>result</code> in a regular method binding guard.
+                           		Since parameter mappings are applied before evaluating the guard, the result value can be accessed through
+                           		a result mapping (<a href="s4.4.c.html"
+                              title="&sect;4.4.(c)&nbsp;Mapping the result of a base method"
+                              class="sect">&sect;4.4.(c)</a>). Furthermore, the sentence actually confused
+                           		base and role sides.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="sA.html#sA.3.2" title="&sect;A.3.2&nbsp;CalloutBinding" class="sect">&sect;A.3.2</a>, <a href="sA.html#sA.3.3" title="&sect;A.3.3&nbsp;Callin binding" class="sect">&sect;A.3.3</a> :
+                        	<strong>Syntax: generic method bindings</strong><p>The location of possible type parameters in a method binding has been made explicit.</p>
+                     </li>
+                  </ul>
+               </div>
+            </div>
+            <div class="sect depth2" id="sB.2">
+               <h2 class="sect">&sect;B.2&nbsp;Additions between versions<span class="toplink"><a href="#top">&uarr;&nbsp;&sect;B</a></span></h2>
+               <div class="subsect depth3" id="sB.2.1">
+                  <h4 class="subsect">(1)&nbsp;<span class="title">Between OTJLD 1.0 and OTJLD 1.1</span></h4>
+                  <ul>
+                     <li><a href="s1.2.4.c.html" title="&sect;1.2.4.(c)&nbsp;Class literal"
+                           class="sect">&sect;1.2.4.(c)</a>: 
+                        				<strong>Role class literal</strong><p>
+                           					Made existing feature explicit and introduce new qualified class literal for externalized roles.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s3.1.j.html" title="&sect;3.1.(j)&nbsp;Inferred callout" class="sect">&sect;3.1.(j)</a> and <a href="s3.5.h.html" title="&sect;3.5.(h)&nbsp;Inferred callout" class="sect">&sect;3.5.(h)</a> : 
+                        				<strong>Inferred callout</strong><p>
+                           					New feature.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.6.a.html"
+                           title="&sect;4.6.(a)&nbsp;Private methods from super classes"
+                           class="sect">&sect;4.6.(a)</a> : 
+                        				<strong>Callin-binding private methods from super classes</strong><p>
+                           				Added a necessary restriction.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s4.9.html" title="&sect;4.9&nbsp;Callin inheritance" class="sect">&sect;4.9</a> :	
+                        				<strong>Callin inheritance</strong><p>
+                           					Clarified issues that where under-specified or insufficiently explained, specifically:
+                           				
+                        </p>
+                        <ul>
+                           <li>Effect of callin bindings on inherited or overridden base methods 
+                              						(<a href="s4.9.1.html" title="&sect;4.9.1&nbsp;Base side inheritance"
+                                 class="sect">&sect;4.9.1</a>).
+                           </li>
+                           <li>Interplay of callin bindings and base methods with covariant return types 
+                              						(<a href="s4.9.3.html" title="&sect;4.9.3&nbsp;Covariant return types"
+                                 class="sect">&sect;4.9.3</a>)
+                           </li>
+                        </ul>
+                     </li>
+                     <li><a href="s4.10.html" title="&sect;4.10&nbsp;Generic callin bindings"
+                           class="sect">&sect;4.10</a>:
+                        				<strong>Generic replace bindings</strong><p>
+                           					Reconcile type safety of replace bindings as introduced in <a href="s4.5.d.html" title="&sect;4.5.(d)&nbsp;Typing rules" class="sect">&sect;4.5.(d)</a>
+                           					with desirable flexibility by using type parameters.
+                           				
+                        </p>
+                     </li>
+                     <li><a href="s7.2.b.html" title="&sect;7.2.(b)&nbsp;Arrays of Confined"
+                           class="sect">&sect;7.2.(b)</a> : 
+                        				<strong>Arrays of Confined</strong><p>
+                           					Added a necessary restriction.
+                           				
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.2.2">
+                  <h4 class="subsect">(2)&nbsp;<span class="title">Between OTJLD 1.1 and OTJLD 1.2</span></h4>
+                  <ul>
+                     <li><a href="s1.2.2.h.html" title="&sect;1.2.2.(h)&nbsp;Externalized creation"
+                           class="sect">&sect;1.2.2.(h)</a> :
+                        					<strong>Externalized creation</strong><p>Added alternative syntax using value parameter and changed title.</p>
+                     </li>
+                     <li><a href="s1.2.5.f.html" title="&sect;1.2.5.(f)&nbsp;Imports in role files"
+                           class="sect">&sect;1.2.5.(f)</a> :
+                        					<strong>Imports in role files</strong><p>Added a missing rule defining the effect of imports in role files.</p>
+                     </li>
+                     <li><a href="s1.3.1.c.html"
+                           title="&sect;1.3.1.(c)&nbsp;Overriding and implicit inheritance"
+                           class="sect">&sect;1.3.1.(c)</a> :
+                        					<strong>@Override annotation for roles</strong><p>The regular <code>@Override</code> annotation (Java &ge;5) has been extended to apply to role classes, too.
+					
+                        </p>
+                     </li>
+                     <li><a href="s1.3.1.k.html" title="&sect;1.3.1.(k)&nbsp;Covariant return types"
+                           class="sect">&sect;1.3.1.(k)</a> :
+                        					<strong>Covariant return types</strong><p>Necessary constraint for covariant return types in the presence of both implicit and explicit inheritance.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.1.2.c.html" title="&sect;2.1.2.(c)&nbsp;Base class decapsulation"
+                           class="sect">&sect;2.1.2.(c)</a> :
+                        					<strong>Binding to final base class</strong><p>It has been added that binding to a final base class is now considered as decapsulation, too.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.2.f.html" title="&sect;2.2.(f)&nbsp;Ambiguous lowering"
+                           class="sect">&sect;2.2.(f)</a> :
+                        					<strong>Ambiguous lowering</strong><p>A diagnostic has been added to detect situations where lowering might be intended
+                           					   but fails because the declared type is <code>java.lang.Object</code>,
+                           					   which makes a potential lowering translation unnecessary and thus ambiguous.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.3.2.e.html" title="&sect;2.3.2.(e)&nbsp;Generic declared lifting"
+                           class="sect">&sect;2.3.2.(e)</a> :
+                        					<strong>Generic declared lifting</strong><p>Support passing unrelated base types into the same method with declared lifting.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s2.6.g.html"
+                           title="&sect;2.6.(g)&nbsp;Decapsulation via base reference"
+                           class="sect">&sect;2.6.(g)</a> :
+                        					<strong>Decapsulation via base reference</strong><p>Extended applicability of decapsulation to two more positions.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.3.f.html" title="&sect;4.3.(f)&nbsp;Base super calls" class="sect">&sect;4.3.(f)</a> :
+                        					<strong>Base super call</strong><p>Support base calls directly to the super version of the bound base method,
+                           					thus bypassing both the exact bound base method and also any further callins
+                           					relating to this base method or its super version.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s5.4.b.html" title="&sect;5.4.(b)&nbsp;No side effects" class="sect">&sect;5.4.(b)</a> :
+                        					<strong>Side-effects in guard predicates</strong><p>Migrate previous note about a future feature to a regular paragraph.</p>
+                     </li>
+                     <li><a href="s5.4.c.html" title="&sect;5.4.(c)&nbsp;Exceptions" class="sect">&sect;5.4.(c)</a> :
+                        					<strong>Exceptions in guard predicates</strong><p>Clarify the effect of exceptions thrown from a guard predicate.</p>
+                     </li>
+                     <li><a href="s6.2.d.html" title="&sect;6.2.(d)&nbsp;Exceptions" class="sect">&sect;6.2.(d)</a> :
+                        				    <strong>LiftingVetoException</strong><p>Added documentation for the mostly internal <code>LiftingVetoException</code> and how
+                           				    it could actually be used in client code.
+                           				    
+                        </p>
+                     </li>
+                     <li><a href="s6.2.e.html" title="&sect;6.2.(e)&nbsp;Role migration" class="sect">&sect;6.2.(e)</a> :
+                        				    <strong>Role migration</strong><p>Added two interfaces to add migration capabilities to a role class.
+                           				    
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               <div class="subsect depth3" id="sB.2.3">
+                  <h4 class="subsect">(3)&nbsp;<span class="title">Between OTJLD 1.2 and OTJLD 1.3</span></h4>
+                  <ul>
+                     <li><a href="s3.1.k.html" title="&sect;3.1.(k)&nbsp;Callout to generic method"
+                           class="sect">&sect;3.1.(k)</a> :
+                        					<strong>Callout to generic method</strong><p>Added a rule on how a callout binding may refer to a generic base method.
+                           					
+                        </p>
+                     </li>
+                     <li><a href="s4.1.h.html" title="&sect;4.1.(h)&nbsp;Method of enclosing class"
+                           class="sect">&sect;4.1.(h)</a> :
+                        	<strong>Binding to team methods</strong><p><code>before</code> and <code>after</code> callin bindings can now
+                           		bind to methods of an enclosing class, too.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="s4.10.e.html" title="&sect;4.10.(e)&nbsp;Propagating type parameters"
+                           class="sect">&sect;4.10.(e)</a> :
+                        	<strong>Propagating type parameters in callin bindings</strong><p>
+                           		In addition to capturing covariant return types, a callin binding
+                           		may also declared type parameters in order to propagate genericity
+                           		from its base method to the role method.
+                           	
+                        </p>
+                     </li>
+                     <li><a href="s5.3.d.html"
+                           title="&sect;5.3.(d)&nbsp;Configuring implicit activation"
+                           class="sect">&sect;5.3.(d)</a> :
+                        	<strong>Configuring implicit activation</strong><p>Mechanisms have been added for configuring implicit team activation.
+                           	The default has been changed to not apply implicit activation.
+                           	A corresponding note has also been added to <a href="s5.3.html" title="&sect;5.3&nbsp;Implicit team activation"
+                              class="sect">&sect;5.3</a></p>
+                     </li>
+                     <li><a href="s9.2.1.a.html"
+                           title="&sect;9.2.1.(a)&nbsp;Instance constrained type parameters"
+                           class="sect">&sect;9.2.1.(a)</a> :
+                        	<strong>Instance constrained type parameter</strong><p>
+                           		Type anchors can now be applied to type parameters, too, 
+                           		thus expressing a new kind of constraint on the type parameter.
+                           	
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+            </div>
+         </div>
+         <table class="nav">
+            <tr>
+               <td class="back"><a href="sA.html" rel="prev">&lt;&lt;&nbsp;&sect;A&nbsp;OT/J Syntax</a></td>
+               <td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
+               <td class="next"></td>
+            </tr>
+         </table>
+         <div class="breadcrumb"></div>
+      </div>
+      <div id="footer">
+         <hr />
+         <address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
+         			OT/J version 1.3 &mdash; last modified: 2010-02-20
+      </div>
+   </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/xhtml11-flat.dtd b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/xhtml11-flat.dtd
new file mode 100644
index 0000000..d98b8e5
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xdef/xhtml11-flat.dtd
@@ -0,0 +1,4615 @@
+<!-- ....................................................................... -->
+<!-- XHTML 1.1 DTD  ........................................................ -->
+<!-- file: xhtml11.dtd
+-->
+
+<!-- XHTML 1.1 DTD
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+
+     The Extensible HyperText Markup Language (XHTML)
+     Copyright 1998-2005 World Wide Web Consortium
+        (Massachusetts Institute of Technology, European Research Consortium
+         for Informatics and Mathematics, Keio University).
+         All Rights Reserved.
+
+     Permission to use, copy, modify and distribute the XHTML DTD and its 
+     accompanying documentation for any purpose and without fee is hereby 
+     granted in perpetuity, provided that the above copyright notice and 
+     this paragraph appear in all copies.  The copyright holders make no 
+     representation about the suitability of the DTD for any purpose.
+
+     It is provided "as is" without expressed or implied warranty.
+
+        Author:     Murray M. Altheim <altheim@eng.sun.com>
+        Revision:   $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $
+
+-->
+<!-- This is the driver file for version 1.1 of the XHTML DTD.
+
+     Please use this public identifier to identify it:
+
+         "-//W3C//DTD XHTML 1.1//EN"
+-->
+<!ENTITY % XHTML.version  "-//W3C//DTD XHTML 1.1//EN" >
+
+<!-- Use this URI to identify the default namespace:
+
+         "http://www.w3.org/1999/xhtml"
+
+     See the Qualified Names module for information
+     on the use of namespace prefixes in the DTD.
+
+	 Note that XHTML namespace elements are not prefixed by default,
+	 but the XHTML namespace prefix is defined as "xhtml" so that
+	 other markup languages can extend this one and use the XHTML
+	 prefixed global attributes if required.
+
+-->
+<!ENTITY % NS.prefixed "IGNORE" >
+<!ENTITY % XHTML.prefix "xhtml" >
+
+<!-- Be sure to include prefixed global attributes - we don't need
+     them, but languages that extend XHTML 1.1 might.
+-->
+<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >
+
+<!-- Reserved for use with the XLink namespace:
+-->
+<!ENTITY % XLINK.xmlns "" >
+<!ENTITY % XLINK.xmlns.attrib "" >
+
+<!-- For example, if you are using XHTML 1.1 directly, use the public
+     identifier in the DOCTYPE declaration, with the namespace declaration
+     on the document element to identify the default namespace:
+
+       <?xml version="1.0"?>
+       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+                             "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+       <html xmlns="http://www.w3.org/1999/xhtml"
+             xml:lang="en">
+       ...
+       </html>
+
+     Revisions:
+     (none)
+-->
+
+<!-- reserved for future use with document profiles -->
+<!ENTITY % XHTML.profile  "" >
+
+<!-- ensure XHTML Notations are disabled -->
+<!ENTITY % xhtml-notations.module "IGNORE" >
+
+<!-- Bidirectional Text features
+     This feature-test entity is used to declare elements
+     and attributes used for bidirectional text support.
+-->
+<!ENTITY % XHTML.bidi  "INCLUDE" >
+
+<?doc type="doctype" role="title" { XHTML 1.1 } ?>
+
+<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+
+<!-- Pre-Framework Redeclaration placeholder  .................... -->
+<!-- this serves as a location to insert markup declarations
+     into the DTD prior to the framework declarations.
+-->
+<!ENTITY % xhtml-prefw-redecl.module "IGNORE" >
+<![%xhtml-prefw-redecl.module;[
+%xhtml-prefw-redecl.mod;
+<!-- end of xhtml-prefw-redecl.module -->]]>
+
+<!ENTITY % xhtml-events.module "INCLUDE" >
+
+<!-- Inline Style Module  ........................................ -->
+<!ENTITY % xhtml-inlstyle.module "INCLUDE" >
+<![%xhtml-inlstyle.module;[
+<!ENTITY % xhtml-inlstyle.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Style 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Inline Style Module  ........................................... -->
+<!-- file: xhtml-inlstyle-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Inline Style 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Inline Style
+
+     This module declares the 'style' attribute, used to support inline
+     style markup. This module must be instantiated prior to the XHTML
+     Common Attributes module in order to be included in %Core.attrib;.
+-->
+
+<!ENTITY % style.attrib
+     "style        CDATA                    #IMPLIED"
+>
+
+
+<!ENTITY % Core.extra.attrib
+     "%style.attrib;"
+>
+
+<!-- end of xhtml-inlstyle-1.mod -->
+]]>
+
+<!-- declare Document Model module instantiated in framework
+-->
+<!ENTITY % xhtml-model.mod
+     PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" >
+
+<!-- Modular Framework Module (required) ......................... -->
+<!ENTITY % xhtml-framework.module "INCLUDE" >
+<![%xhtml-framework.module;[
+<!ENTITY % xhtml-framework.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Modular Framework Module  ...................................... -->
+<!-- file: xhtml-framework-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Modular Framework
+
+     This required module instantiates the modules needed
+     to support the XHTML modularization model, including:
+
+        +  notations
+        +  datatypes
+        +  namespace-qualified names
+        +  common attributes
+        +  document model
+        +  character entities
+
+     The Intrinsic Events module is ignored by default but
+     occurs in this module because it must be instantiated
+     prior to Attributes but after Datatypes.
+-->
+
+<!ENTITY % xhtml-arch.module "IGNORE" >
+<![%xhtml-arch.module;[
+<!ENTITY % xhtml-arch.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Base Architecture 1.0//EN"
+            "xhtml-arch-1.mod" >
+%xhtml-arch.mod;]]>
+
+<!ENTITY % xhtml-notations.module "INCLUDE" >
+<![%xhtml-notations.module;[
+<!ENTITY % xhtml-notations.mod
+     PUBLIC "-//W3C//NOTATIONS XHTML Notations 1.0//EN"
+            "xhtml-notations-1.mod" >
+%xhtml-notations.mod;]]>
+
+<!ENTITY % xhtml-datatypes.module "INCLUDE" >
+<![%xhtml-datatypes.module;[
+<!ENTITY % xhtml-datatypes.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
+            "xhtml-datatypes-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Datatypes Module  .............................................. -->
+<!-- file: xhtml-datatypes-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Datatypes
+
+     defines containers for the following datatypes, many of
+     these imported from other specifications and standards.
+-->
+
+<!-- Length defined for cellpadding/cellspacing -->
+
+<!-- nn for pixels or nn% for percentage length -->
+<!ENTITY % Length.datatype "CDATA" >
+
+<!-- space-separated list of link types -->
+<!ENTITY % LinkTypes.datatype "NMTOKENS" >
+
+<!-- single or comma-separated list of media descriptors -->
+<!ENTITY % MediaDesc.datatype "CDATA" >
+
+<!-- pixel, percentage, or relative -->
+<!ENTITY % MultiLength.datatype "CDATA" >
+
+<!-- one or more digits (NUMBER) -->
+<!ENTITY % Number.datatype "CDATA" >
+
+<!-- integer representing length in pixels -->
+<!ENTITY % Pixels.datatype "CDATA" >
+
+<!-- script expression -->
+<!ENTITY % Script.datatype "CDATA" >
+
+<!-- textual content -->
+<!ENTITY % Text.datatype "CDATA" >
+
+<!-- Imported Datatypes ................................ -->
+
+<!-- a single character from [ISO10646] -->
+<!ENTITY % Character.datatype "CDATA" >
+
+<!-- a character encoding, as per [RFC2045] -->
+<!ENTITY % Charset.datatype "CDATA" >
+
+<!-- a space separated list of character encodings, as per [RFC2045] -->
+<!ENTITY % Charsets.datatype "CDATA" >
+
+<!-- Color specification using color name or sRGB (#RRGGBB) values -->
+<!ENTITY % Color.datatype "CDATA" >
+
+<!-- media type, as per [RFC2045] -->
+<!ENTITY % ContentType.datatype "CDATA" >
+
+<!-- comma-separated list of media types, as per [RFC2045] -->
+<!ENTITY % ContentTypes.datatype "CDATA" >
+
+<!-- date and time information. ISO date format -->
+<!ENTITY % Datetime.datatype "CDATA" >
+
+<!-- formal public identifier, as per [ISO8879] -->
+<!ENTITY % FPI.datatype "CDATA" >
+
+<!-- a language code, as per [RFC3066] or its successor -->
+<!ENTITY % LanguageCode.datatype "CDATA" >
+
+<!-- a Uniform Resource Identifier, see [URI] -->
+<!ENTITY % URI.datatype "CDATA" >
+
+<!-- a space-separated list of Uniform Resource Identifiers, see [URI] -->
+<!ENTITY % URIs.datatype "CDATA" >
+
+<!-- end of xhtml-datatypes-1.mod -->
+]]>
+
+<!-- placeholder for XLink support module -->
+<!ENTITY % xhtml-xlink.mod "" >
+
+
+<!ENTITY % xhtml-qname.module "INCLUDE" >
+<![%xhtml-qname.module;[
+<!ENTITY % xhtml-qname.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
+            "xhtml-qname-1.mod" >
+<!-- ....................................................................... -->
+<!-- XHTML Qname Module  ................................................... -->
+<!-- file: xhtml-qname-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Qualified Names 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod"
+
+     Revisions:
+#2000-10-22: added qname declarations for ruby elements
+     ....................................................................... -->
+
+<!-- XHTML Qname (Qualified Name) Module
+
+     This module is contained in two parts, labeled Section 'A' and 'B':
+
+       Section A declares parameter entities to support namespace-
+       qualified names, namespace declarations, and name prefixing
+       for XHTML and extensions.
+
+       Section B declares parameter entities used to provide
+       namespace-qualified names for all XHTML element types:
+
+         %applet.qname;   the xmlns-qualified name for <applet>
+         %base.qname;     the xmlns-qualified name for <base>
+         ...
+
+     XHTML extensions would create a module similar to this one.
+     Included in the XHTML distribution is a template module
+     ('template-qname-1.mod') suitable for this purpose.
+-->
+
+<!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->
+
+<!-- 1. Declare a %XHTML.prefixed; conditional section keyword, used
+        to activate namespace prefixing. The default value should
+        inherit '%NS.prefixed;' from the DTD driver, so that unless
+        overridden, the default behaviour follows the overall DTD
+        prefixing scheme.
+-->
+<!ENTITY % NS.prefixed "IGNORE" >
+<!ENTITY % XHTML.prefixed "%NS.prefixed;" >
+
+<!-- By default, we always permit XHTML attribute collections to have
+     namespace-qualified prefixes as well.
+-->
+<!ENTITY % XHTML.global.attrs.prefixed "INCLUDE" >
+<!-- By default, we allow the XML Schema attributes on the root
+     element.
+-->
+<!ENTITY % XHTML.xsi.attrs "INCLUDE" >
+
+<!-- 2. Declare a parameter entity (eg., %XHTML.xmlns;) containing
+        the URI reference used to identify the XHTML namespace:
+-->
+<!ENTITY % XHTML.xmlns  "http://www.w3.org/1999/xhtml" >
+
+<!-- 3. Declare parameter entities (eg., %XHTML.prefix;) containing
+        the default namespace prefix string(s) to use when prefixing
+        is enabled. This may be overridden in the DTD driver or the
+        internal subset of an document instance. If no default prefix
+        is desired, this may be declared as an empty string.
+
+     NOTE: As specified in [XMLNAMES], the namespace prefix serves
+     as a proxy for the URI reference, and is not in itself significant.
+-->
+<!ENTITY % XHTML.prefix  "xhtml" >
+
+<!-- 4. Declare parameter entities (eg., %XHTML.pfx;) containing the
+        colonized prefix(es) (eg., '%XHTML.prefix;:') used when
+        prefixing is active, an empty string when it is not.
+-->
+<![%XHTML.prefixed;[
+<!ENTITY % XHTML.pfx  "%XHTML.prefix;:" >
+]]>
+<!ENTITY % XHTML.pfx  "" >
+
+<!-- declare qualified name extensions here ............ -->
+<!ENTITY % xhtml-qname-extra.mod "" >
+
+
+<!-- 5. The parameter entity %XHTML.xmlns.extra.attrib; may be
+        redeclared to contain any non-XHTML namespace declaration
+        attributes for namespaces embedded in XHTML. The default
+        is an empty string.  XLink should be included here if used
+        in the DTD.
+-->
+<!ENTITY % XHTML.xmlns.extra.attrib "" >
+
+<!-- The remainder of Section A is only followed in XHTML, not extensions. -->
+
+<!-- Declare a parameter entity %NS.decl.attrib; containing
+     all XML Namespace declarations used in the DTD, plus the
+     xmlns declaration for XHTML, its form dependent on whether
+     prefixing is active.
+-->
+<!ENTITY % XHTML.xmlns.attrib.prefixed
+     "xmlns:%XHTML.prefix;  %URI.datatype;   #FIXED '%XHTML.xmlns;'"
+>
+<![%XHTML.prefixed;[
+<!ENTITY % NS.decl.attrib
+     "%XHTML.xmlns.attrib.prefixed;
+      %XHTML.xmlns.extra.attrib;"
+>
+]]>
+<!ENTITY % NS.decl.attrib
+     "%XHTML.xmlns.extra.attrib;"
+>
+
+<!-- Declare a parameter entity %XSI.prefix as a prefix to use for XML
+     Schema Instance attributes.
+-->
+<!ENTITY % XSI.prefix "xsi" >
+
+<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >
+
+<!-- Declare a parameter entity %XSI.xmlns.attrib as support for the
+     schemaLocation attribute, since this is legal throughout the DTD.
+-->
+<!ENTITY % XSI.xmlns.attrib
+     "xmlns:%XSI.prefix;  %URI.datatype;   #FIXED '%XSI.xmlns;'" >
+
+<!-- This is a placeholder for future XLink support.
+-->
+<!ENTITY % XLINK.xmlns.attrib "" >
+
+<!-- This is the attribute for the XML Schema namespace - XHTML
+     Modularization is also expressed in XML Schema, and it needs to
+	 be legal to declare the XML Schema namespace and the
+	 schemaLocation attribute on the root element of XHTML family
+	 documents.
+-->
+<![%XHTML.xsi.attrs;[
+<!ENTITY % XSI.prefix "xsi" >
+<!ENTITY % XSI.pfx "%XSI.prefix;:" >
+<!ENTITY % XSI.xmlns "http://www.w3.org/2001/XMLSchema-instance" >
+
+<!ENTITY % XSI.xmlns.attrib
+     "xmlns:%XSI.prefix;  %URI.datatype;    #FIXED '%XSI.xmlns;'"
+>
+]]>
+<!ENTITY % XSI.prefix "" >
+<!ENTITY % XSI.pfx "" >
+<!ENTITY % XSI.xmlns.attrib "" >
+
+
+<!-- Declare a parameter entity %NS.decl.attrib; containing all
+     XML namespace declaration attributes used by XHTML, including
+     a default xmlns attribute when prefixing is inactive.
+-->
+<![%XHTML.prefixed;[
+<!ENTITY % XHTML.xmlns.attrib
+     "%NS.decl.attrib;
+      %XSI.xmlns.attrib;
+      %XLINK.xmlns.attrib;"
+>
+]]>
+<!ENTITY % XHTML.xmlns.attrib
+     "xmlns        %URI.datatype;           #FIXED '%XHTML.xmlns;'
+      %NS.decl.attrib;
+      %XSI.xmlns.attrib;
+      %XLINK.xmlns.attrib;"
+>
+
+<!-- placeholder for qualified name redeclarations -->
+<!ENTITY % xhtml-qname.redecl "" >
+
+
+<!-- Section B: XHTML Qualified Names ::::::::::::::::::::::::::::: -->
+
+<!-- 6. This section declares parameter entities used to provide
+        namespace-qualified names for all XHTML element types.
+-->
+
+<!-- module:  xhtml-applet-1.mod -->
+<!ENTITY % applet.qname  "%XHTML.pfx;applet" >
+
+<!-- module:  xhtml-base-1.mod -->
+<!ENTITY % base.qname    "%XHTML.pfx;base" >
+
+<!-- module:  xhtml-bdo-1.mod -->
+<!ENTITY % bdo.qname     "%XHTML.pfx;bdo" >
+
+<!-- module:  xhtml-blkphras-1.mod -->
+<!ENTITY % address.qname "%XHTML.pfx;address" >
+<!ENTITY % blockquote.qname  "%XHTML.pfx;blockquote" >
+<!ENTITY % pre.qname     "%XHTML.pfx;pre" >
+<!ENTITY % h1.qname      "%XHTML.pfx;h1" >
+<!ENTITY % h2.qname      "%XHTML.pfx;h2" >
+<!ENTITY % h3.qname      "%XHTML.pfx;h3" >
+<!ENTITY % h4.qname      "%XHTML.pfx;h4" >
+<!ENTITY % h5.qname      "%XHTML.pfx;h5" >
+<!ENTITY % h6.qname      "%XHTML.pfx;h6" >
+
+<!-- module:  xhtml-blkpres-1.mod -->
+<!ENTITY % hr.qname      "%XHTML.pfx;hr" >
+
+<!-- module:  xhtml-blkstruct-1.mod -->
+<!ENTITY % div.qname     "%XHTML.pfx;div" >
+<!ENTITY % p.qname       "%XHTML.pfx;p" >
+
+<!-- module:  xhtml-edit-1.mod -->
+<!ENTITY % ins.qname     "%XHTML.pfx;ins" >
+<!ENTITY % del.qname     "%XHTML.pfx;del" >
+
+<!-- module:  xhtml-form-1.mod -->
+<!ENTITY % form.qname    "%XHTML.pfx;form" >
+<!ENTITY % label.qname   "%XHTML.pfx;label" >
+<!ENTITY % input.qname   "%XHTML.pfx;input" >
+<!ENTITY % select.qname  "%XHTML.pfx;select" >
+<!ENTITY % optgroup.qname  "%XHTML.pfx;optgroup" >
+<!ENTITY % option.qname  "%XHTML.pfx;option" >
+<!ENTITY % textarea.qname  "%XHTML.pfx;textarea" >
+<!ENTITY % fieldset.qname  "%XHTML.pfx;fieldset" >
+<!ENTITY % legend.qname  "%XHTML.pfx;legend" >
+<!ENTITY % button.qname  "%XHTML.pfx;button" >
+
+<!-- module:  xhtml-hypertext-1.mod -->
+<!ENTITY % a.qname       "%XHTML.pfx;a" >
+
+<!-- module:  xhtml-image-1.mod -->
+<!ENTITY % img.qname     "%XHTML.pfx;img" >
+
+<!-- module:  xhtml-inlphras-1.mod -->
+<!ENTITY % abbr.qname    "%XHTML.pfx;abbr" >
+<!ENTITY % acronym.qname "%XHTML.pfx;acronym" >
+<!ENTITY % cite.qname    "%XHTML.pfx;cite" >
+<!ENTITY % code.qname    "%XHTML.pfx;code" >
+<!ENTITY % dfn.qname     "%XHTML.pfx;dfn" >
+<!ENTITY % em.qname      "%XHTML.pfx;em" >
+<!ENTITY % kbd.qname     "%XHTML.pfx;kbd" >
+<!ENTITY % q.qname       "%XHTML.pfx;q" >
+<!ENTITY % samp.qname    "%XHTML.pfx;samp" >
+<!ENTITY % strong.qname  "%XHTML.pfx;strong" >
+<!ENTITY % var.qname     "%XHTML.pfx;var" >
+
+<!-- module:  xhtml-inlpres-1.mod -->
+<!ENTITY % b.qname       "%XHTML.pfx;b" >
+<!ENTITY % big.qname     "%XHTML.pfx;big" >
+<!ENTITY % i.qname       "%XHTML.pfx;i" >
+<!ENTITY % small.qname   "%XHTML.pfx;small" >
+<!ENTITY % sub.qname     "%XHTML.pfx;sub" >
+<!ENTITY % sup.qname     "%XHTML.pfx;sup" >
+<!ENTITY % tt.qname      "%XHTML.pfx;tt" >
+
+<!-- module:  xhtml-inlstruct-1.mod -->
+<!ENTITY % br.qname      "%XHTML.pfx;br" >
+<!ENTITY % span.qname    "%XHTML.pfx;span" >
+
+<!-- module:  xhtml-ismap-1.mod (also csismap, ssismap) -->
+<!ENTITY % map.qname     "%XHTML.pfx;map" >
+<!ENTITY % area.qname    "%XHTML.pfx;area" >
+
+<!-- module:  xhtml-link-1.mod -->
+<!ENTITY % link.qname    "%XHTML.pfx;link" >
+
+<!-- module:  xhtml-list-1.mod -->
+<!ENTITY % dl.qname      "%XHTML.pfx;dl" >
+<!ENTITY % dt.qname      "%XHTML.pfx;dt" >
+<!ENTITY % dd.qname      "%XHTML.pfx;dd" >
+<!ENTITY % ol.qname      "%XHTML.pfx;ol" >
+<!ENTITY % ul.qname      "%XHTML.pfx;ul" >
+<!ENTITY % li.qname      "%XHTML.pfx;li" >
+
+<!-- module:  xhtml-meta-1.mod -->
+<!ENTITY % meta.qname    "%XHTML.pfx;meta" >
+
+<!-- module:  xhtml-param-1.mod -->
+<!ENTITY % param.qname   "%XHTML.pfx;param" >
+
+<!-- module:  xhtml-object-1.mod -->
+<!ENTITY % object.qname  "%XHTML.pfx;object" >
+
+<!-- module:  xhtml-script-1.mod -->
+<!ENTITY % script.qname  "%XHTML.pfx;script" >
+<!ENTITY % noscript.qname  "%XHTML.pfx;noscript" >
+
+<!-- module:  xhtml-struct-1.mod -->
+<!ENTITY % html.qname    "%XHTML.pfx;html" >
+<!ENTITY % head.qname    "%XHTML.pfx;head" >
+<!ENTITY % title.qname   "%XHTML.pfx;title" >
+<!ENTITY % body.qname    "%XHTML.pfx;body" >
+
+<!-- module:  xhtml-style-1.mod -->
+<!ENTITY % style.qname   "%XHTML.pfx;style" >
+
+<!-- module:  xhtml-table-1.mod -->
+<!ENTITY % table.qname   "%XHTML.pfx;table" >
+<!ENTITY % caption.qname "%XHTML.pfx;caption" >
+<!ENTITY % thead.qname   "%XHTML.pfx;thead" >
+<!ENTITY % tfoot.qname   "%XHTML.pfx;tfoot" >
+<!ENTITY % tbody.qname   "%XHTML.pfx;tbody" >
+<!ENTITY % colgroup.qname  "%XHTML.pfx;colgroup" >
+<!ENTITY % col.qname     "%XHTML.pfx;col" >
+<!ENTITY % tr.qname      "%XHTML.pfx;tr" >
+<!ENTITY % th.qname      "%XHTML.pfx;th" >
+<!ENTITY % td.qname      "%XHTML.pfx;td" >
+
+<!-- module:  xhtml-ruby-1.mod -->
+
+<!ENTITY % ruby.qname    "%XHTML.pfx;ruby" >
+<!ENTITY % rbc.qname     "%XHTML.pfx;rbc" >
+<!ENTITY % rtc.qname     "%XHTML.pfx;rtc" >
+<!ENTITY % rb.qname      "%XHTML.pfx;rb" >
+<!ENTITY % rt.qname      "%XHTML.pfx;rt" >
+<!ENTITY % rp.qname      "%XHTML.pfx;rp" >
+
+<!-- Provisional XHTML 2.0 Qualified Names  ...................... -->
+
+<!-- module:  xhtml-image-2.mod -->
+<!ENTITY % alt.qname     "%XHTML.pfx;alt" >
+
+<!-- end of xhtml-qname-1.mod -->
+]]>
+
+<!ENTITY % xhtml-events.module "IGNORE" >
+<![%xhtml-events.module;[
+<!ENTITY % xhtml-events.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
+            "xhtml-events-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Intrinsic Events Module  ....................................... -->
+<!-- file: xhtml-events-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Intrinsic Event Attributes
+
+     These are the event attributes defined in HTML 4,
+     Section 18.2.3 "Intrinsic Events". This module must be
+     instantiated prior to the Attributes Module but after
+     the Datatype Module in the Modular Framework module.
+
+    "Note: Authors of HTML documents are advised that changes
+     are likely to occur in the realm of intrinsic events
+     (e.g., how scripts are bound to events). Research in
+     this realm is carried on by members of the W3C Document
+     Object Model Working Group (see the W3C Web site at
+     http://www.w3.org/ for more information)."
+-->
+<!-- NOTE: Because the ATTLIST declarations in this module occur
+     before their respective ELEMENT declarations in other
+     modules, there may be a dependency on this module that
+     should be considered if any of the parameter entities used
+     for element type names (eg., %a.qname;) are redeclared.
+-->
+
+<!ENTITY % Events.attrib
+     "onclick      %Script.datatype;        #IMPLIED
+      ondblclick   %Script.datatype;        #IMPLIED
+      onmousedown  %Script.datatype;        #IMPLIED
+      onmouseup    %Script.datatype;        #IMPLIED
+      onmouseover  %Script.datatype;        #IMPLIED
+      onmousemove  %Script.datatype;        #IMPLIED
+      onmouseout   %Script.datatype;        #IMPLIED
+      onkeypress   %Script.datatype;        #IMPLIED
+      onkeydown    %Script.datatype;        #IMPLIED
+      onkeyup      %Script.datatype;        #IMPLIED"
+>
+
+<![%XHTML.global.attrs.prefixed;[
+<!ENTITY % XHTML.global.events.attrib
+     "%XHTML.prefix;:onclick      %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:ondblclick   %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onmousedown  %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onmouseup    %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onmouseover  %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onmousemove  %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onmouseout   %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onkeypress   %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onkeydown    %Script.datatype;        #IMPLIED
+      %XHTML.prefix;:onkeyup      %Script.datatype;        #IMPLIED"
+>
+]]>
+
+<!-- additional attributes on anchor element
+-->
+<!ATTLIST %a.qname;
+     onfocus      %Script.datatype;         #IMPLIED
+     onblur       %Script.datatype;         #IMPLIED
+>
+
+<!-- additional attributes on form element
+-->
+<!ATTLIST %form.qname;
+      onsubmit     %Script.datatype;        #IMPLIED
+      onreset      %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on label element
+-->
+<!ATTLIST %label.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on input element
+-->
+<!ATTLIST %input.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+      onselect     %Script.datatype;        #IMPLIED
+      onchange     %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on select element
+-->
+<!ATTLIST %select.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+      onchange     %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on textarea element
+-->
+<!ATTLIST %textarea.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+      onselect     %Script.datatype;        #IMPLIED
+      onchange     %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on button element
+-->
+<!ATTLIST %button.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on body element
+-->
+<!ATTLIST %body.qname;
+      onload       %Script.datatype;        #IMPLIED
+      onunload     %Script.datatype;        #IMPLIED
+>
+
+<!-- additional attributes on area element
+-->
+<!ATTLIST %area.qname;
+      onfocus      %Script.datatype;        #IMPLIED
+      onblur       %Script.datatype;        #IMPLIED
+>
+
+<!-- end of xhtml-events-1.mod -->
+]]>
+
+<!ENTITY % xhtml-attribs.module "INCLUDE" >
+<![%xhtml-attribs.module;[
+<!ENTITY % xhtml-attribs.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
+            "xhtml-attribs-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Common Attributes Module  ...................................... -->
+<!-- file: xhtml-attribs-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Common Attributes 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Common Attributes
+
+     This module declares many of the common attributes for the XHTML DTD.
+     %NS.decl.attrib; is declared in the XHTML Qname module.
+
+	 Note that this file was extended in XHTML Modularization Second Edition to 
+	 include declarations of "global" versions of the attribute collections.
+	 The global versions of the attributes are for use on elements in other 
+	 namespaces.  The global version of "common" includes the xmlns declaration
+	 for the prefixed version of the xhtml namespace.  If you are only using a
+	 specific attribute or an individual attribute collection, you must also
+	 include the XHTML.xmlns.attrib.prefixed PE on your elements.
+-->
+
+<!ENTITY % id.attrib
+     "id           ID                       #IMPLIED"
+>
+
+<![%XHTML.global.attrs.prefixed;[
+<!ENTITY % XHTML.global.id.attrib
+     "%XHTML.prefix;:id           ID        #IMPLIED"
+>
+]]>
+
+<!ENTITY % class.attrib
+     "class        NMTOKENS                 #IMPLIED"
+>
+
+<![%XHTML.global.attrs.prefixed;[
+<!ENTITY % XHTML.global.class.attrib
+     "%XHTML.prefix;:class        NMTOKENS                 #IMPLIED"
+>
+]]>
+
+<!ENTITY % title.attrib
+     "title        %Text.datatype;          #IMPLIED"
+>
+
+<![%XHTML.global.attrs.prefixed;[
+<!ENTITY % XHTML.global.title.attrib
+     "%XHTML.prefix;:title        %Text.datatype;          #IMPLIED"
+>
+]]>
+
+<!ENTITY % Core.extra.attrib "" >
+
+<!ENTITY % Core.attrib
+     "%XHTML.xmlns.attrib;
+      %id.attrib;
+      %class.attrib;
+      %title.attrib;
+      xml:space    ( preserve )             #FIXED 'preserve'
+      %Core.extra.attrib;"
+>
+
+<!ENTITY % XHTML.global.core.extra.attrib "" >
+
+<![%XHTML.global.attrs.prefixed;[
+
+<!ENTITY % XHTML.global.core.attrib
+     "%XHTML.global.id.attrib;
+      %XHTML.global.class.attrib;
+      %XHTML.global.title.attrib;
+      %XHTML.global.core.extra.attrib;"
+>
+]]>
+
+<!ENTITY % XHTML.global.core.attrib "" >
+
+
+<!ENTITY % lang.attrib
+     "xml:lang     %LanguageCode.datatype;  #IMPLIED"
+>
+
+<![%XHTML.bidi;[
+<!ENTITY % dir.attrib
+     "dir          ( ltr | rtl )            #IMPLIED"
+>
+
+<!ENTITY % I18n.attrib
+     "%dir.attrib;
+      %lang.attrib;"
+>
+
+<![%XHTML.global.attrs.prefixed;[
+<!ENTITY XHTML.global.i18n.attrib
+     "%XHTML.prefix;:dir          ( ltr | rtl )            #IMPLIED
+      %lang.attrib;"
+>
+]]>
+<!ENTITY XHTML.global.i18n.attrib "" >
+
+]]>
+<!ENTITY % I18n.attrib
+     "%lang.attrib;"
+>
+<!ENTITY % XHTML.global.i18n.attrib
+     "%lang.attrib;"
+>
+
+<!ENTITY % Common.extra.attrib "" >
+<!ENTITY % XHTML.global.common.extra.attrib "" >
+
+<!-- intrinsic event attributes declared previously
+-->
+<!ENTITY % Events.attrib "" >
+
+<!ENTITY % XHTML.global.events.attrib "" >
+
+<!ENTITY % Common.attrib
+     "%Core.attrib;
+      %I18n.attrib;
+      %Events.attrib;
+      %Common.extra.attrib;"
+>
+
+<!ENTITY % XHTML.global.common.attrib
+     "%XHTML.xmlns.attrib.prefixed;
+      %XHTML.global.core.attrib;
+	  %XHTML.global.i18n.attrib;
+	  %XHTML.global.events.attrib;
+	  %XHTML.global.common.extra.attrib;"
+>
+
+<!-- end of xhtml-attribs-1.mod -->
+]]>
+
+<!-- placeholder for content model redeclarations -->
+<!ENTITY % xhtml-model.redecl "" >
+
+
+<!ENTITY % xhtml-model.module "INCLUDE" >
+<![%xhtml-model.module;[
+<!-- instantiate the Document Model module declared in the DTD driver
+-->
+<!-- ....................................................................... -->
+<!-- XHTML 1.1 Document Model Module  ...................................... -->
+<!-- file: xhtml11-model-1.mod
+
+     This is XHTML 1.1, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- XHTML 1.1 Document Model
+
+     This module describes the groupings of elements that make up
+     common content models for XHTML elements.
+
+     XHTML has three basic content models:
+
+         %Inline.mix;  character-level elements
+         %Block.mix;   block-like elements, eg., paragraphs and lists
+         %Flow.mix;    any block or inline elements
+
+     Any parameter entities declared in this module may be used
+     to create element content models, but the above three are
+     considered 'global' (insofar as that term applies here).
+
+     The reserved word '#PCDATA' (indicating a text string) is now
+     included explicitly with each element declaration that is
+     declared as mixed content, as XML requires that this token
+     occur first in a content model specification.
+-->
+<!-- Extending the Model
+
+     While in some cases this module may need to be rewritten to
+     accommodate changes to the document model, minor extensions
+     may be accomplished by redeclaring any of the three *.extra;
+     parameter entities to contain extension element types as follows:
+
+         %Misc.extra;    whose parent may be any block or
+                         inline element.
+
+         %Inline.extra;  whose parent may be any inline element.
+
+         %Block.extra;   whose parent may be any block element.
+
+     If used, these parameter entities must be an OR-separated
+     list beginning with an OR separator ("|"), eg., "| a | b | c"
+
+     All block and inline *.class parameter entities not part
+     of the *struct.class classes begin with "| " to allow for
+     exclusion from mixes.
+-->
+
+<!-- ..............  Optional Elements in head  .................. -->
+
+<!ENTITY % HeadOpts.mix
+     "( %script.qname; | %style.qname; | %meta.qname;
+      | %link.qname; | %object.qname; )*"
+>
+
+<!-- .................  Miscellaneous Elements  .................. -->
+
+<!-- ins and del are used to denote editing changes
+-->
+<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" >
+
+<!-- script and noscript are used to contain scripts
+     and alternative content
+-->
+<!ENTITY % Script.class "| %script.qname; | %noscript.qname;" >
+
+<!ENTITY % Misc.extra "" >
+
+<!-- These elements are neither block nor inline, and can
+     essentially be used anywhere in the document body.
+-->
+<!ENTITY % Misc.class
+     "%Edit.class;
+      %Script.class;
+      %Misc.extra;"
+>
+
+<!-- ....................  Inline Elements  ...................... -->
+
+<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
+
+<!ENTITY % InlPhras.class
+     "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
+      | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
+      | %abbr.qname; | %acronym.qname; | %q.qname;" >
+
+<!ENTITY % InlPres.class
+     "| %tt.qname; | %i.qname; | %b.qname; | %big.qname;
+      | %small.qname; | %sub.qname; | %sup.qname;" >
+
+<!ENTITY % I18n.class "| %bdo.qname;" >
+
+<!ENTITY % Anchor.class "| %a.qname;" >
+
+<!ENTITY % InlSpecial.class
+     "| %img.qname; | %map.qname;
+      | %object.qname;" >
+
+<!ENTITY % InlForm.class
+     "| %input.qname; | %select.qname; | %textarea.qname;
+      | %label.qname; | %button.qname;" >
+
+<!ENTITY % Inline.extra "" >
+
+<!ENTITY % Ruby.class "| %ruby.qname;" >
+
+<!-- %Inline.class; includes all inline elements,
+     used as a component in mixes
+-->
+<!ENTITY % Inline.class
+     "%InlStruct.class;
+      %InlPhras.class;
+      %InlPres.class;
+      %I18n.class;
+      %Anchor.class;
+      %InlSpecial.class;
+      %InlForm.class;
+      %Ruby.class;
+      %Inline.extra;"
+>
+
+<!-- %InlNoRuby.class; includes all inline elements
+     except ruby, used as a component in mixes
+-->
+<!ENTITY % InlNoRuby.class
+     "%InlStruct.class;
+      %InlPhras.class;
+      %InlPres.class;
+      %I18n.class;
+      %Anchor.class;
+      %InlSpecial.class;
+      %InlForm.class;
+      %Inline.extra;"
+>
+
+<!-- %NoRuby.content; includes all inlines except ruby
+-->
+<!ENTITY % NoRuby.content
+     "( #PCDATA
+      | %InlNoRuby.class;
+      %Misc.class; )*"
+>
+
+<!-- %InlNoAnchor.class; includes all non-anchor inlines,
+     used as a component in mixes
+-->
+<!ENTITY % InlNoAnchor.class
+     "%InlStruct.class;
+      %InlPhras.class;
+      %InlPres.class;
+      %I18n.class;
+      %InlSpecial.class;
+      %InlForm.class;
+      %Ruby.class;
+      %Inline.extra;"
+>
+
+<!-- %InlNoAnchor.mix; includes all non-anchor inlines
+-->
+<!ENTITY % InlNoAnchor.mix
+     "%InlNoAnchor.class;
+      %Misc.class;"
+>
+
+<!-- %Inline.mix; includes all inline elements, including %Misc.class;
+-->
+<!ENTITY % Inline.mix
+     "%Inline.class;
+      %Misc.class;"
+>
+
+<!-- .....................  Block Elements  ...................... -->
+
+<!-- In the HTML 4.0 DTD, heading and list elements were included
+     in the %block; parameter entity. The %Heading.class; and
+     %List.class; parameter entities must now be included explicitly
+     on element declarations where desired.
+-->
+
+<!ENTITY % Heading.class
+     "%h1.qname; | %h2.qname; | %h3.qname;
+      | %h4.qname; | %h5.qname; | %h6.qname;" >
+
+<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
+
+<!ENTITY % Table.class "| %table.qname;" >
+
+<!ENTITY % Form.class  "| %form.qname;" >
+
+<!ENTITY % Fieldset.class  "| %fieldset.qname;" >
+
+<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
+
+<!ENTITY % BlkPhras.class
+     "| %pre.qname; | %blockquote.qname; | %address.qname;" >
+
+<!ENTITY % BlkPres.class "| %hr.qname;" >
+
+<!ENTITY % BlkSpecial.class
+     "%Table.class;
+      %Form.class;
+      %Fieldset.class;"
+>
+
+<!ENTITY % Block.extra "" >
+
+<!-- %Block.class; includes all block elements,
+     used as an component in mixes
+-->
+<!ENTITY % Block.class
+     "%BlkStruct.class;
+      %BlkPhras.class;
+      %BlkPres.class;
+      %BlkSpecial.class;
+      %Block.extra;"
+>
+
+<!-- %Block.mix; includes all block elements plus %Misc.class;
+-->
+<!ENTITY % Block.mix
+     "%Heading.class;
+      | %List.class;
+      | %Block.class;
+      %Misc.class;"
+>
+
+<!-- ................  All Content Elements  .................. -->
+
+<!-- %Flow.mix; includes all text content, block and inline
+-->
+<!ENTITY % Flow.mix
+     "%Heading.class;
+      | %List.class;
+      | %Block.class;
+      | %Inline.class;
+      %Misc.class;"
+>
+
+<!-- end of xhtml11-model-1.mod -->
+]]>
+
+<!ENTITY % xhtml-charent.module "INCLUDE" >
+<![%xhtml-charent.module;[
+<!ENTITY % xhtml-charent.mod
+     PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
+            "xhtml-charent-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Character Entities Module  ......................................... -->
+<!-- file: xhtml-charent-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ENTITIES XHTML Character Entities 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Character Entities for XHTML
+
+     This module declares the set of character entities for XHTML,
+     including the Latin 1, Symbol and Special character collections.
+-->
+
+<!ENTITY % xhtml-lat1
+    PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+           "xhtml-lat1.ent" >
+<!-- Portions (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+    <!ENTITY % HTMLlat1 PUBLIC
+       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
+    %HTMLlat1;
+-->
+
+<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
+                                  U+00A0 ISOnum -->
+<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
+<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
+<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
+<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
+<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
+<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
+                                  U+00A6 ISOnum -->
+<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
+<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
+                                  U+00A8 ISOdia -->
+<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
+<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
+<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
+                                  = left pointing guillemet, U+00AB ISOnum -->
+<!ENTITY not    "&#172;"> <!-- not sign = angled dash,
+                                  U+00AC ISOnum -->
+<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
+                                  U+00AD ISOnum -->
+<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
+                                  U+00AE ISOnum -->
+<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
+                                  = APL overbar, U+00AF ISOdia -->
+<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
+<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
+                                  U+00B1 ISOnum -->
+<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
+                                  = squared, U+00B2 ISOnum -->
+<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
+                                  = cubed, U+00B3 ISOnum -->
+<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
+                                  U+00B4 ISOdia -->
+<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
+<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
+                                  U+00B6 ISOnum -->
+<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
+                                  = Greek middle dot, U+00B7 ISOnum -->
+<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
+<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
+                                  U+00B9 ISOnum -->
+<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
+                                  U+00BA ISOnum -->
+<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
+                                  = right pointing guillemet, U+00BB ISOnum -->
+<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
+                                  = fraction one quarter, U+00BC ISOnum -->
+<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
+                                  = fraction one half, U+00BD ISOnum -->
+<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
+                                  = fraction three quarters, U+00BE ISOnum -->
+<!ENTITY iquest "&#191;"> <!-- inverted question mark
+                                  = turned question mark, U+00BF ISOnum -->
+<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
+                                  = latin capital letter A grave,
+                                  U+00C0 ISOlat1 -->
+<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
+                                  U+00C1 ISOlat1 -->
+<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
+                                  U+00C2 ISOlat1 -->
+<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
+                                  U+00C3 ISOlat1 -->
+<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
+                                  U+00C4 ISOlat1 -->
+<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
+                                  = latin capital letter A ring,
+                                  U+00C5 ISOlat1 -->
+<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
+                                  = latin capital ligature AE,
+                                  U+00C6 ISOlat1 -->
+<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
+                                  U+00C7 ISOlat1 -->
+<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
+                                  U+00C8 ISOlat1 -->
+<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
+                                  U+00C9 ISOlat1 -->
+<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
+                                  U+00CA ISOlat1 -->
+<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
+                                  U+00CB ISOlat1 -->
+<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
+                                  U+00CC ISOlat1 -->
+<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
+                                  U+00CD ISOlat1 -->
+<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
+                                  U+00CE ISOlat1 -->
+<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
+                                  U+00CF ISOlat1 -->
+<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
+<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
+                                  U+00D1 ISOlat1 -->
+<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
+                                  U+00D2 ISOlat1 -->
+<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
+                                  U+00D3 ISOlat1 -->
+<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
+                                  U+00D4 ISOlat1 -->
+<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
+                                  U+00D5 ISOlat1 -->
+<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
+                                  U+00D6 ISOlat1 -->
+<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
+<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
+                                  = latin capital letter O slash,
+                                  U+00D8 ISOlat1 -->
+<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
+                                  U+00D9 ISOlat1 -->
+<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
+                                  U+00DA ISOlat1 -->
+<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
+                                  U+00DB ISOlat1 -->
+<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
+                                  U+00DC ISOlat1 -->
+<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
+                                  U+00DD ISOlat1 -->
+<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
+                                  U+00DE ISOlat1 -->
+<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
+                                  U+00DF ISOlat1 -->
+<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
+                                  = latin small letter a grave,
+                                  U+00E0 ISOlat1 -->
+<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
+                                  U+00E1 ISOlat1 -->
+<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
+                                  U+00E2 ISOlat1 -->
+<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
+                                  U+00E3 ISOlat1 -->
+<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
+                                  U+00E4 ISOlat1 -->
+<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
+                                  = latin small letter a ring,
+                                  U+00E5 ISOlat1 -->
+<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
+                                  = latin small ligature ae, U+00E6 ISOlat1 -->
+<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
+                                  U+00E7 ISOlat1 -->
+<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
+                                  U+00E8 ISOlat1 -->
+<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
+                                  U+00E9 ISOlat1 -->
+<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
+                                  U+00EA ISOlat1 -->
+<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
+                                  U+00EB ISOlat1 -->
+<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
+                                  U+00EC ISOlat1 -->
+<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
+                                  U+00ED ISOlat1 -->
+<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
+                                  U+00EE ISOlat1 -->
+<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
+                                  U+00EF ISOlat1 -->
+<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
+<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
+                                  U+00F1 ISOlat1 -->
+<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
+                                  U+00F2 ISOlat1 -->
+<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
+                                  U+00F3 ISOlat1 -->
+<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
+                                  U+00F4 ISOlat1 -->
+<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
+                                  U+00F5 ISOlat1 -->
+<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
+                                  U+00F6 ISOlat1 -->
+<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
+<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
+                                  = latin small letter o slash,
+                                  U+00F8 ISOlat1 -->
+<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
+                                  U+00F9 ISOlat1 -->
+<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
+                                  U+00FA ISOlat1 -->
+<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
+                                  U+00FB ISOlat1 -->
+<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
+                                  U+00FC ISOlat1 -->
+<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
+                                  U+00FD ISOlat1 -->
+<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn,
+                                  U+00FE ISOlat1 -->
+<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
+                                  U+00FF ISOlat1 -->
+
+
+<!ENTITY % xhtml-symbol
+    PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
+           "xhtml-symbol.ent" >
+<!-- Mathematical, Greek and Symbolic characters for XHTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLsymbol PUBLIC
+        "-//W3C//ENTITIES Symbols for XHTML//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
+     %HTMLsymbol;
+-->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+     New names (i.e., not in ISO 8879 list) do not clash with any
+     existing ISO 8879 entity names. ISO 10646 character numbers
+     are given for each character, in hex. values are decimal
+     conversions of the ISO 10646 values and refer to the document
+     character set. Names are Unicode names. 
+-->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof     "&#402;"> <!-- latin small letter f with hook = function
+                                    = florin, U+0192 ISOtech -->
+
+<!-- Greek -->
+<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
+<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
+<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
+                                    U+0393 ISOgrk3 -->
+<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
+                                    U+0394 ISOgrk3 -->
+<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
+<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
+<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
+<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
+                                    U+0398 ISOgrk3 -->
+<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
+<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
+<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lamda,
+                                    U+039B ISOgrk3 -->
+<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
+<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
+<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
+<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
+<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
+<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
+<!-- there is no Sigmaf, and no U+03A2 character either -->
+<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
+                                    U+03A3 ISOgrk3 -->
+<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
+<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
+                                    U+03A5 ISOgrk3 -->
+<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
+                                    U+03A6 ISOgrk3 -->
+<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
+<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
+                                    U+03A8 ISOgrk3 -->
+<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
+                                    U+03A9 ISOgrk3 -->
+
+<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
+                                    U+03B1 ISOgrk3 -->
+<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
+<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
+                                    U+03B3 ISOgrk3 -->
+<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
+                                    U+03B4 ISOgrk3 -->
+<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
+                                    U+03B5 ISOgrk3 -->
+<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
+<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
+<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
+                                    U+03B8 ISOgrk3 -->
+<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
+<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
+                                    U+03BA ISOgrk3 -->
+<!ENTITY lambda   "&#955;"> <!-- greek small letter lamda,
+                                    U+03BB ISOgrk3 -->
+<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
+<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
+<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
+<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
+<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
+<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
+<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
+                                    U+03C2 ISOgrk3 -->
+<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
+                                    U+03C3 ISOgrk3 -->
+<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
+<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
+                                    U+03C5 ISOgrk3 -->
+<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
+<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
+<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
+<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
+                                    U+03C9 ISOgrk3 -->
+<!ENTITY thetasym "&#977;"> <!-- greek theta symbol,
+                                    U+03D1 NEW -->
+<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
+                                    U+03D2 NEW -->
+<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
+
+<!-- General Punctuation -->
+<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
+                                     U+2022 ISOpub  -->
+<!-- bullet is NOT the same as bullet operator, U+2219 -->
+<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
+                                     U+2026 ISOpub  -->
+<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
+<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
+                                     U+2033 ISOtech -->
+<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
+                                     U+203E NEW -->
+<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
+                                     = Weierstrass p, U+2118 ISOamso -->
+<!ENTITY image    "&#8465;"> <!-- black-letter capital I = imaginary part,
+                                     U+2111 ISOamso -->
+<!ENTITY real     "&#8476;"> <!-- black-letter capital R = real part symbol,
+                                     U+211C ISOamso -->
+<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
+<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,
+                                     U+2135 NEW -->
+<!-- alef symbol is NOT the same as hebrew letter alef,
+     U+05D0 although the same glyph could be used to depict both characters -->
+
+<!-- Arrows -->
+<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
+<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
+<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
+<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
+<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
+<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
+                                     = carriage return, U+21B5 NEW -->
+<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
+<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
+    but also does not have any other character for that function. So lArr can
+    be used for 'is implied by' as ISOtech suggests -->
+<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
+<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,
+                                     U+21D2 ISOtech -->
+<!-- Unicode does not say this is the 'implies' character but does not have 
+     another character with this function so rArr can be used for 'implies'
+     as ISOtech suggests -->
+<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
+<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
+                                     U+21D4 ISOamsa -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
+<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
+<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
+<!ENTITY empty    "&#8709;"> <!-- empty set = null set, U+2205 ISOamso -->
+<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
+                                     U+2207 ISOtech -->
+<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
+<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
+<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
+<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,
+                                     U+220F ISOamsb -->
+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
+     the same glyph might be used for both -->
+<!ENTITY sum      "&#8721;"> <!-- n-ary summation, U+2211 ISOamsb -->
+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
+     though the same glyph might be used for both -->
+<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
+<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
+<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
+                                     U+221A ISOtech -->
+<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
+<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
+<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
+<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
+<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
+<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
+<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
+<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
+<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
+<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,
+                                     U+223C ISOtech -->
+<!-- tilde operator is NOT the same character as the tilde, U+007E,
+     although the same glyph might be used to represent both  -->
+<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
+<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
+                                     U+2248 ISOamsr -->
+<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
+<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
+<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
+<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
+                                     U+2265 ISOtech -->
+<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
+<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
+<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
+<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
+<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
+                                     U+2287 ISOtech -->
+<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
+                                     U+2295 ISOamsb -->
+<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
+                                     U+2297 ISOamsb -->
+<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
+                                     U+22A5 ISOtech -->
+<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
+<!-- dot operator is NOT the same character as U+00B7 middle dot -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil    "&#8968;"> <!-- left ceiling = APL upstile,
+                                     U+2308 ISOamsc  -->
+<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
+<!ENTITY lfloor   "&#8970;"> <!-- left floor = APL downstile,
+                                     U+230A ISOamsc  -->
+<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
+<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
+                                     U+2329 ISOtech -->
+<!-- lang is NOT the same character as U+003C 'less than sign' 
+     or U+2039 'single left-pointing angle quotation mark' -->
+<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
+                                     U+232A ISOtech -->
+<!-- rang is NOT the same character as U+003E 'greater than sign' 
+     or U+203A 'single right-pointing angle quotation mark' -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
+<!-- black here seems to mean filled as opposed to hollow -->
+<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
+                                     U+2663 ISOpub -->
+<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
+                                     U+2665 ISOpub -->
+<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
+
+
+<!ENTITY % xhtml-special
+    PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
+           "xhtml-special.ent" >
+<!-- Special characters for XHTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLspecial PUBLIC
+        "-//W3C//ENTITIES Special for XHTML//EN"
+        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
+     %HTMLspecial;
+-->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+     New names (i.e., not in ISO 8879 list) do not clash with any
+     existing ISO 8879 entity names. ISO 10646 character numbers
+     are given for each character, in hex. values are decimal
+     conversions of the ISO 10646 values and refer to the document
+     character set. Names are Unicode names. 
+-->
+
+<!-- C0 Controls and Basic Latin -->
+<!ENTITY quot    "&#34;"> <!--  quotation mark, U+0022 ISOnum -->
+<!ENTITY amp     "&#38;#38;"> <!--  ampersand, U+0026 ISOnum -->
+<!ENTITY lt      "&#38;#60;"> <!--  less-than sign, U+003C ISOnum -->
+<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
+<!ENTITY apos	 "&#39;"> <!--  apostrophe = APL quote, U+0027 ISOnum -->
+
+<!-- Latin Extended-A -->
+<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
+                                    U+0152 ISOlat2 -->
+<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
+<!-- ligature is a misnomer, this is a separate character in some languages -->
+<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
+                                    U+0160 ISOlat2 -->
+<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
+                                    U+0161 ISOlat2 -->
+<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
+                                    U+0178 ISOlat2 -->
+
+<!-- Spacing Modifier Letters -->
+<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
+                                    U+02C6 ISOpub -->
+<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
+
+<!-- General Punctuation -->
+<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
+<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
+<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
+<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
+                                    U+200C NEW RFC 2070 -->
+<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
+<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
+<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
+<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
+<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
+<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
+                                    U+2018 ISOnum -->
+<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
+                                    U+2019 ISOnum -->
+<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
+<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
+                                    U+201C ISOnum -->
+<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
+                                    U+201D ISOnum -->
+<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
+<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
+<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
+<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
+<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
+                                    U+2039 ISO proposed -->
+<!-- lsaquo is proposed but not yet ISO standardized -->
+<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
+                                    U+203A ISO proposed -->
+<!-- rsaquo is proposed but not yet ISO standardized -->
+
+<!-- Currency Symbols -->
+<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
+
+
+<!-- end of xhtml-charent-1.mod -->
+]]>
+
+<!-- end of xhtml-framework-1.mod -->
+]]>
+
+<!-- Post-Framework Redeclaration placeholder  ................... -->
+<!-- this serves as a location to insert markup declarations
+     into the DTD following the framework declarations.
+-->
+<!ENTITY % xhtml-postfw-redecl.module "IGNORE" >
+<![%xhtml-postfw-redecl.module;[
+%xhtml-postfw-redecl.mod;
+<!-- end of xhtml-postfw-redecl.module -->]]>
+
+<!-- Text Module (Required)  ..................................... -->
+<!ENTITY % xhtml-text.module "INCLUDE" >
+<![%xhtml-text.module;[
+<!ENTITY % xhtml-text.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Text Module  ................................................... -->
+<!-- file: xhtml-text-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Text 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Textual Content
+
+     The Text module includes declarations for all core
+     text container elements and their attributes.
+-->
+
+<!ENTITY % xhtml-inlstruct.module "INCLUDE" >
+<![%xhtml-inlstruct.module;[
+<!ENTITY % xhtml-inlstruct.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
+            "xhtml-inlstruct-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Inline Structural Module  ...................................... -->
+<!-- file: xhtml-inlstruct-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Inline Structural
+
+        br, span
+
+     This module declares the elements and their attributes
+     used to support inline-level structural markup.
+-->
+
+<!-- br: forced line break ............................. -->
+
+<!ENTITY % br.element  "INCLUDE" >
+<![%br.element;[
+
+<!ENTITY % br.content  "EMPTY" >
+<!ENTITY % br.qname  "br" >
+<!ELEMENT %br.qname;  %br.content; >
+
+<!-- end of br.element -->]]>
+
+<!ENTITY % br.attlist  "INCLUDE" >
+<![%br.attlist;[
+<!ATTLIST %br.qname;
+      %Core.attrib;
+>
+<!-- end of br.attlist -->]]>
+
+<!-- span: generic inline container .................... -->
+
+<!ENTITY % span.element  "INCLUDE" >
+<![%span.element;[
+<!ENTITY % span.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % span.qname  "span" >
+<!ELEMENT %span.qname;  %span.content; >
+<!-- end of span.element -->]]>
+
+<!ENTITY % span.attlist  "INCLUDE" >
+<![%span.attlist;[
+<!ATTLIST %span.qname;
+      %Common.attrib;
+>
+<!-- end of span.attlist -->]]>
+
+<!-- end of xhtml-inlstruct-1.mod -->
+]]>
+
+<!ENTITY % xhtml-inlphras.module "INCLUDE" >
+<![%xhtml-inlphras.module;[
+<!ENTITY % xhtml-inlphras.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
+            "xhtml-inlphras-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Inline Phrasal Module  ......................................... -->
+<!-- file: xhtml-inlphras-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Inline Phrasal
+
+        abbr, acronym, cite, code, dfn, em, kbd, q, samp, strong, var
+
+     This module declares the elements and their attributes used to
+     support inline-level phrasal markup.
+-->
+
+<!ENTITY % abbr.element  "INCLUDE" >
+<![%abbr.element;[
+<!ENTITY % abbr.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % abbr.qname  "abbr" >
+<!ELEMENT %abbr.qname;  %abbr.content; >
+<!-- end of abbr.element -->]]>
+
+<!ENTITY % abbr.attlist  "INCLUDE" >
+<![%abbr.attlist;[
+<!ATTLIST %abbr.qname;
+      %Common.attrib;
+>
+<!-- end of abbr.attlist -->]]>
+
+<!ENTITY % acronym.element  "INCLUDE" >
+<![%acronym.element;[
+<!ENTITY % acronym.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % acronym.qname  "acronym" >
+<!ELEMENT %acronym.qname;  %acronym.content; >
+<!-- end of acronym.element -->]]>
+
+<!ENTITY % acronym.attlist  "INCLUDE" >
+<![%acronym.attlist;[
+<!ATTLIST %acronym.qname;
+      %Common.attrib;
+>
+<!-- end of acronym.attlist -->]]>
+
+<!ENTITY % cite.element  "INCLUDE" >
+<![%cite.element;[
+<!ENTITY % cite.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % cite.qname  "cite" >
+<!ELEMENT %cite.qname;  %cite.content; >
+<!-- end of cite.element -->]]>
+
+<!ENTITY % cite.attlist  "INCLUDE" >
+<![%cite.attlist;[
+<!ATTLIST %cite.qname;
+      %Common.attrib;
+>
+<!-- end of cite.attlist -->]]>
+
+<!ENTITY % code.element  "INCLUDE" >
+<![%code.element;[
+<!ENTITY % code.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % code.qname  "code" >
+<!ELEMENT %code.qname;  %code.content; >
+<!-- end of code.element -->]]>
+
+<!ENTITY % code.attlist  "INCLUDE" >
+<![%code.attlist;[
+<!ATTLIST %code.qname;
+      %Common.attrib;
+>
+<!-- end of code.attlist -->]]>
+
+<!ENTITY % dfn.element  "INCLUDE" >
+<![%dfn.element;[
+<!ENTITY % dfn.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % dfn.qname  "dfn" >
+<!ELEMENT %dfn.qname;  %dfn.content; >
+<!-- end of dfn.element -->]]>
+
+<!ENTITY % dfn.attlist  "INCLUDE" >
+<![%dfn.attlist;[
+<!ATTLIST %dfn.qname;
+      %Common.attrib;
+>
+<!-- end of dfn.attlist -->]]>
+
+<!ENTITY % em.element  "INCLUDE" >
+<![%em.element;[
+<!ENTITY % em.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % em.qname  "em" >
+<!ELEMENT %em.qname;  %em.content; >
+<!-- end of em.element -->]]>
+
+<!ENTITY % em.attlist  "INCLUDE" >
+<![%em.attlist;[
+<!ATTLIST %em.qname;
+      %Common.attrib;
+>
+<!-- end of em.attlist -->]]>
+
+<!ENTITY % kbd.element  "INCLUDE" >
+<![%kbd.element;[
+<!ENTITY % kbd.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % kbd.qname  "kbd" >
+<!ELEMENT %kbd.qname;  %kbd.content; >
+<!-- end of kbd.element -->]]>
+
+<!ENTITY % kbd.attlist  "INCLUDE" >
+<![%kbd.attlist;[
+<!ATTLIST %kbd.qname;
+      %Common.attrib;
+>
+<!-- end of kbd.attlist -->]]>
+
+<!ENTITY % q.element  "INCLUDE" >
+<![%q.element;[
+<!ENTITY % q.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % q.qname  "q" >
+<!ELEMENT %q.qname;  %q.content; >
+<!-- end of q.element -->]]>
+
+<!ENTITY % q.attlist  "INCLUDE" >
+<![%q.attlist;[
+<!ATTLIST %q.qname;
+      %Common.attrib;
+      cite         %URI.datatype;           #IMPLIED
+>
+<!-- end of q.attlist -->]]>
+
+<!ENTITY % samp.element  "INCLUDE" >
+<![%samp.element;[
+<!ENTITY % samp.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % samp.qname  "samp" >
+<!ELEMENT %samp.qname;  %samp.content; >
+<!-- end of samp.element -->]]>
+
+<!ENTITY % samp.attlist  "INCLUDE" >
+<![%samp.attlist;[
+<!ATTLIST %samp.qname;
+      %Common.attrib;
+>
+<!-- end of samp.attlist -->]]>
+
+<!ENTITY % strong.element  "INCLUDE" >
+<![%strong.element;[
+<!ENTITY % strong.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % strong.qname  "strong" >
+<!ELEMENT %strong.qname;  %strong.content; >
+<!-- end of strong.element -->]]>
+
+<!ENTITY % strong.attlist  "INCLUDE" >
+<![%strong.attlist;[
+<!ATTLIST %strong.qname;
+      %Common.attrib;
+>
+<!-- end of strong.attlist -->]]>
+
+<!ENTITY % var.element  "INCLUDE" >
+<![%var.element;[
+<!ENTITY % var.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % var.qname  "var" >
+<!ELEMENT %var.qname;  %var.content; >
+<!-- end of var.element -->]]>
+
+<!ENTITY % var.attlist  "INCLUDE" >
+<![%var.attlist;[
+<!ATTLIST %var.qname;
+      %Common.attrib;
+>
+<!-- end of var.attlist -->]]>
+
+<!-- end of xhtml-inlphras-1.mod -->
+]]>
+
+<!ENTITY % xhtml-blkstruct.module "INCLUDE" >
+<![%xhtml-blkstruct.module;[
+<!ENTITY % xhtml-blkstruct.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
+            "xhtml-blkstruct-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Block Structural Module  ....................................... -->
+<!-- file: xhtml-blkstruct-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Block Structural 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Block Structural
+
+        div, p
+
+     This module declares the elements and their attributes used to
+     support block-level structural markup.
+-->
+
+<!ENTITY % div.element  "INCLUDE" >
+<![%div.element;[
+<!ENTITY % div.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ENTITY % div.qname  "div" >
+<!ELEMENT %div.qname;  %div.content; >
+<!-- end of div.element -->]]>
+
+<!ENTITY % div.attlist  "INCLUDE" >
+<![%div.attlist;[
+<!ATTLIST %div.qname;
+      %Common.attrib;
+>
+<!-- end of div.attlist -->]]>
+
+<!ENTITY % p.element  "INCLUDE" >
+<![%p.element;[
+<!ENTITY % p.content
+     "( #PCDATA | %Inline.mix; )*" >
+<!ENTITY % p.qname  "p" >
+<!ELEMENT %p.qname;  %p.content; >
+<!-- end of p.element -->]]>
+
+<!ENTITY % p.attlist  "INCLUDE" >
+<![%p.attlist;[
+<!ATTLIST %p.qname;
+      %Common.attrib;
+>
+<!-- end of p.attlist -->]]>
+
+<!-- end of xhtml-blkstruct-1.mod -->
+]]>
+
+<!ENTITY % xhtml-blkphras.module "INCLUDE" >
+<![%xhtml-blkphras.module;[
+<!ENTITY % xhtml-blkphras.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
+            "xhtml-blkphras-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Block Phrasal Module  .......................................... -->
+<!-- file: xhtml-blkphras-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Block Phrasal
+
+        address, blockquote, pre, h1, h2, h3, h4, h5, h6
+
+     This module declares the elements and their attributes used to
+     support block-level phrasal markup.
+-->
+
+<!ENTITY % address.element  "INCLUDE" >
+<![%address.element;[
+<!ENTITY % address.content
+     "( #PCDATA | %Inline.mix; )*" >
+<!ENTITY % address.qname  "address" >
+<!ELEMENT %address.qname;  %address.content; >
+<!-- end of address.element -->]]>
+
+<!ENTITY % address.attlist  "INCLUDE" >
+<![%address.attlist;[
+<!ATTLIST %address.qname;
+      %Common.attrib;
+>
+<!-- end of address.attlist -->]]>
+
+<!ENTITY % blockquote.element  "INCLUDE" >
+<![%blockquote.element;[
+<!ENTITY % blockquote.content
+     "( %Block.mix; )+"
+>
+<!ENTITY % blockquote.qname  "blockquote" >
+<!ELEMENT %blockquote.qname;  %blockquote.content; >
+<!-- end of blockquote.element -->]]>
+
+<!ENTITY % blockquote.attlist  "INCLUDE" >
+<![%blockquote.attlist;[
+<!ATTLIST %blockquote.qname;
+      %Common.attrib;
+      cite         %URI.datatype;           #IMPLIED
+>
+<!-- end of blockquote.attlist -->]]>
+
+<!ENTITY % pre.element  "INCLUDE" >
+<![%pre.element;[
+<!ENTITY % pre.content
+     "( #PCDATA
+      | %InlStruct.class;
+      %InlPhras.class;
+      | %tt.qname; | %i.qname; | %b.qname;
+      %I18n.class;
+      %Anchor.class;
+      | %script.qname; | %map.qname;
+      %Inline.extra; )*"
+>
+<!ENTITY % pre.qname  "pre" >
+<!ELEMENT %pre.qname;  %pre.content; >
+<!-- end of pre.element -->]]>
+
+<!ENTITY % pre.attlist  "INCLUDE" >
+<![%pre.attlist;[
+<!ATTLIST %pre.qname;
+      %Common.attrib;
+>
+<!-- end of pre.attlist -->]]>
+
+<!-- ...................  Heading Elements  ................... -->
+
+<!ENTITY % Heading.content  "( #PCDATA | %Inline.mix; )*" >
+
+<!ENTITY % h1.element  "INCLUDE" >
+<![%h1.element;[
+<!ENTITY % h1.qname  "h1" >
+<!ELEMENT %h1.qname;  %Heading.content; >
+<!-- end of h1.element -->]]>
+
+<!ENTITY % h1.attlist  "INCLUDE" >
+<![%h1.attlist;[
+<!ATTLIST %h1.qname;
+      %Common.attrib;
+>
+<!-- end of h1.attlist -->]]>
+
+<!ENTITY % h2.element  "INCLUDE" >
+<![%h2.element;[
+<!ENTITY % h2.qname  "h2" >
+<!ELEMENT %h2.qname;  %Heading.content; >
+<!-- end of h2.element -->]]>
+
+<!ENTITY % h2.attlist  "INCLUDE" >
+<![%h2.attlist;[
+<!ATTLIST %h2.qname;
+      %Common.attrib;
+>
+<!-- end of h2.attlist -->]]>
+
+<!ENTITY % h3.element  "INCLUDE" >
+<![%h3.element;[
+<!ENTITY % h3.qname  "h3" >
+<!ELEMENT %h3.qname;  %Heading.content; >
+<!-- end of h3.element -->]]>
+
+<!ENTITY % h3.attlist  "INCLUDE" >
+<![%h3.attlist;[
+<!ATTLIST %h3.qname;
+      %Common.attrib;
+>
+<!-- end of h3.attlist -->]]>
+
+<!ENTITY % h4.element  "INCLUDE" >
+<![%h4.element;[
+<!ENTITY % h4.qname  "h4" >
+<!ELEMENT %h4.qname;  %Heading.content; >
+<!-- end of h4.element -->]]>
+
+<!ENTITY % h4.attlist  "INCLUDE" >
+<![%h4.attlist;[
+<!ATTLIST %h4.qname;
+      %Common.attrib;
+>
+<!-- end of h4.attlist -->]]>
+
+<!ENTITY % h5.element  "INCLUDE" >
+<![%h5.element;[
+<!ENTITY % h5.qname  "h5" >
+<!ELEMENT %h5.qname;  %Heading.content; >
+<!-- end of h5.element -->]]>
+
+<!ENTITY % h5.attlist  "INCLUDE" >
+<![%h5.attlist;[
+<!ATTLIST %h5.qname;
+      %Common.attrib;
+>
+<!-- end of h5.attlist -->]]>
+
+<!ENTITY % h6.element  "INCLUDE" >
+<![%h6.element;[
+<!ENTITY % h6.qname  "h6" >
+<!ELEMENT %h6.qname;  %Heading.content; >
+<!-- end of h6.element -->]]>
+
+<!ENTITY % h6.attlist  "INCLUDE" >
+<![%h6.attlist;[
+<!ATTLIST %h6.qname;
+      %Common.attrib;
+>
+<!-- end of h6.attlist -->]]>
+
+<!-- end of xhtml-blkphras-1.mod -->
+]]>
+
+<!-- end of xhtml-text-1.mod -->
+]]>
+
+<!-- Hypertext Module (required) ................................. -->
+<!ENTITY % xhtml-hypertext.module "INCLUDE" >
+<![%xhtml-hypertext.module;[
+<!ENTITY % xhtml-hypertext.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Hypertext Module  .............................................. -->
+<!-- file: xhtml-hypertext-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Hypertext
+
+        a
+
+     This module declares the anchor ('a') element type, which
+     defines the source of a hypertext link. The destination
+     (or link 'target') is identified via its 'id' attribute
+     rather than the 'name' attribute as was used in HTML.
+-->
+
+<!-- ............  Anchor Element  ............ -->
+
+<!ENTITY % a.element  "INCLUDE" >
+<![%a.element;[
+<!ENTITY % a.content
+     "( #PCDATA | %InlNoAnchor.mix; )*"
+>
+<!ENTITY % a.qname  "a" >
+<!ELEMENT %a.qname;  %a.content; >
+<!-- end of a.element -->]]>
+
+<!ENTITY % a.attlist  "INCLUDE" >
+<![%a.attlist;[
+<!ATTLIST %a.qname;
+      %Common.attrib;
+      href         %URI.datatype;           #IMPLIED
+      charset      %Charset.datatype;       #IMPLIED
+      type         %ContentType.datatype;   #IMPLIED
+      hreflang     %LanguageCode.datatype;  #IMPLIED
+      rel          %LinkTypes.datatype;     #IMPLIED
+      rev          %LinkTypes.datatype;     #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+>
+<!-- end of a.attlist -->]]>
+
+<!-- end of xhtml-hypertext-1.mod -->
+]]>
+
+<!-- Lists Module (required)  .................................... -->
+<!ENTITY % xhtml-list.module "INCLUDE" >
+<![%xhtml-list.module;[
+<!ENTITY % xhtml-list.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Lists Module  .................................................. -->
+<!-- file: xhtml-list-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Lists
+
+        dl, dt, dd, ol, ul, li
+
+     This module declares the list-oriented element types
+     and their attributes.
+-->
+
+<!ENTITY % dl.qname  "dl" >
+<!ENTITY % dt.qname  "dt" >
+<!ENTITY % dd.qname  "dd" >
+<!ENTITY % ol.qname  "ol" >
+<!ENTITY % ul.qname  "ul" >
+<!ENTITY % li.qname  "li" >
+
+<!-- dl: Definition List ............................... -->
+
+<!ENTITY % dl.element  "INCLUDE" >
+<![%dl.element;[
+<!ENTITY % dl.content  "( %dt.qname; | %dd.qname; )+" >
+<!ELEMENT %dl.qname;  %dl.content; >
+<!-- end of dl.element -->]]>
+
+<!ENTITY % dl.attlist  "INCLUDE" >
+<![%dl.attlist;[
+<!ATTLIST %dl.qname;
+      %Common.attrib;
+>
+<!-- end of dl.attlist -->]]>
+
+<!-- dt: Definition Term ............................... -->
+
+<!ENTITY % dt.element  "INCLUDE" >
+<![%dt.element;[
+<!ENTITY % dt.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ELEMENT %dt.qname;  %dt.content; >
+<!-- end of dt.element -->]]>
+
+<!ENTITY % dt.attlist  "INCLUDE" >
+<![%dt.attlist;[
+<!ATTLIST %dt.qname;
+      %Common.attrib;
+>
+<!-- end of dt.attlist -->]]>
+
+<!-- dd: Definition Description ........................ -->
+
+<!ENTITY % dd.element  "INCLUDE" >
+<![%dd.element;[
+<!ENTITY % dd.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ELEMENT %dd.qname;  %dd.content; >
+<!-- end of dd.element -->]]>
+
+<!ENTITY % dd.attlist  "INCLUDE" >
+<![%dd.attlist;[
+<!ATTLIST %dd.qname;
+      %Common.attrib;
+>
+<!-- end of dd.attlist -->]]>
+
+<!-- ol: Ordered List (numbered styles) ................ -->
+
+<!ENTITY % ol.element  "INCLUDE" >
+<![%ol.element;[
+<!ENTITY % ol.content  "( %li.qname; )+" >
+<!ELEMENT %ol.qname;  %ol.content; >
+<!-- end of ol.element -->]]>
+
+<!ENTITY % ol.attlist  "INCLUDE" >
+<![%ol.attlist;[
+<!ATTLIST %ol.qname;
+      %Common.attrib;
+>
+<!-- end of ol.attlist -->]]>
+
+<!-- ul: Unordered List (bullet styles) ................ -->
+
+<!ENTITY % ul.element  "INCLUDE" >
+<![%ul.element;[
+<!ENTITY % ul.content  "( %li.qname; )+" >
+<!ELEMENT %ul.qname;  %ul.content; >
+<!-- end of ul.element -->]]>
+
+<!ENTITY % ul.attlist  "INCLUDE" >
+<![%ul.attlist;[
+<!ATTLIST %ul.qname;
+      %Common.attrib;
+>
+<!-- end of ul.attlist -->]]>
+
+<!-- li: List Item ..................................... -->
+
+<!ENTITY % li.element  "INCLUDE" >
+<![%li.element;[
+<!ENTITY % li.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ELEMENT %li.qname;  %li.content; >
+<!-- end of li.element -->]]>
+
+<!ENTITY % li.attlist  "INCLUDE" >
+<![%li.attlist;[
+<!ATTLIST %li.qname;
+      %Common.attrib;
+>
+<!-- end of li.attlist -->]]>
+
+<!-- end of xhtml-list-1.mod -->
+]]>
+
+<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
+
+<!-- Edit Module  ................................................ -->
+<!ENTITY % xhtml-edit.module "INCLUDE" >
+<![%xhtml-edit.module;[
+<!ENTITY % xhtml-edit.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Editing Elements Module  ....................................... -->
+<!-- file: xhtml-edit-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Editing Markup 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Editing Elements
+
+        ins, del
+
+     This module declares element types and attributes used to indicate
+     inserted and deleted content while editing a document.
+-->
+
+<!-- ins: Inserted Text  ............................... -->
+
+<!ENTITY % ins.element  "INCLUDE" >
+<![%ins.element;[
+<!ENTITY % ins.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ENTITY % ins.qname  "ins" >
+<!ELEMENT %ins.qname;  %ins.content; >
+<!-- end of ins.element -->]]>
+
+<!ENTITY % ins.attlist  "INCLUDE" >
+<![%ins.attlist;[
+<!ATTLIST %ins.qname;
+      %Common.attrib;
+      cite         %URI.datatype;           #IMPLIED
+      datetime     %Datetime.datatype;      #IMPLIED
+>
+<!-- end of ins.attlist -->]]>
+
+<!-- del: Deleted Text  ................................ -->
+
+<!ENTITY % del.element  "INCLUDE" >
+<![%del.element;[
+<!ENTITY % del.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ENTITY % del.qname  "del" >
+<!ELEMENT %del.qname;  %del.content; >
+<!-- end of del.element -->]]>
+
+<!ENTITY % del.attlist  "INCLUDE" >
+<![%del.attlist;[
+<!ATTLIST %del.qname;
+      %Common.attrib;
+      cite         %URI.datatype;           #IMPLIED
+      datetime     %Datetime.datatype;      #IMPLIED
+>
+<!-- end of del.attlist -->]]>
+
+<!-- end of xhtml-edit-1.mod -->
+]]>
+
+<!-- BIDI Override Module  ....................................... -->
+<!ENTITY % xhtml-bdo.module "%XHTML.bidi;" >
+<![%xhtml-bdo.module;[
+<!ENTITY % xhtml-bdo.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML BDO Element Module ............................................. -->
+<!-- file: xhtml-bdo-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML BDO Element 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Bidirectional Override (bdo) Element
+
+     This modules declares the element 'bdo', used to override the
+     Unicode bidirectional algorithm for selected fragments of text.
+
+     DEPENDENCIES:
+     Relies on the conditional section keyword %XHTML.bidi; declared
+     as "INCLUDE". Bidirectional text support includes both the bdo
+     element and the 'dir' attribute.
+-->
+
+<!ENTITY % bdo.element  "INCLUDE" >
+<![%bdo.element;[
+<!ENTITY % bdo.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % bdo.qname  "bdo" >
+<!ELEMENT %bdo.qname;  %bdo.content; >
+<!-- end of bdo.element -->]]>
+
+<!ENTITY % bdo.attlist  "INCLUDE" >
+<![%bdo.attlist;[
+<!ATTLIST %bdo.qname;
+      %Core.attrib;
+      xml:lang     %LanguageCode.datatype;  #IMPLIED
+      dir          ( ltr | rtl )            #REQUIRED
+>
+]]>
+
+<!-- end of xhtml-bdo-1.mod -->
+]]>
+
+<!-- Ruby Module  ................................................ -->
+<!ENTITY % Ruby.common.attlists "INCLUDE" >
+<!ENTITY % Ruby.common.attrib "%Common.attrib;" >
+<!ENTITY % xhtml-ruby.module "INCLUDE" >
+<![%xhtml-ruby.module;[
+<!ENTITY % xhtml-ruby.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
+            "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Ruby Module .................................................... -->
+<!-- file: xhtml-ruby-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1999-2001 W3C (MIT, INRIA, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $
+
+     This module is based on the W3C Ruby Annotation Specification:
+
+        http://www.w3.org/TR/ruby
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Ruby 1.0//EN"
+       SYSTEM "http://www.w3.org/TR/ruby/xhtml-ruby-1.mod"
+
+     ...................................................................... -->
+
+<!-- Ruby Elements
+
+        ruby, rbc, rtc, rb, rt, rp
+
+     This module declares the elements and their attributes used to
+     support ruby annotation markup.
+-->
+
+<!-- declare qualified element type names:
+-->
+<!ENTITY % ruby.qname  "ruby" >
+<!ENTITY % rbc.qname  "rbc" >
+<!ENTITY % rtc.qname  "rtc" >
+<!ENTITY % rb.qname  "rb" >
+<!ENTITY % rt.qname  "rt" >
+<!ENTITY % rp.qname  "rp" >
+
+<!-- rp fallback is included by default.
+-->
+<!ENTITY % Ruby.fallback "INCLUDE" >
+<!ENTITY % Ruby.fallback.mandatory "IGNORE" >
+
+<!-- Complex ruby is included by default; it may be 
+     overridden by other modules to ignore it.
+-->
+<!ENTITY % Ruby.complex "INCLUDE" >
+
+<!-- Fragments for the content model of the ruby element -->
+<![%Ruby.fallback;[
+<![%Ruby.fallback.mandatory;[
+<!ENTITY % Ruby.content.simple 
+     "( %rb.qname;, %rp.qname;, %rt.qname;, %rp.qname; )"
+>
+]]>
+<!ENTITY % Ruby.content.simple 
+     "( %rb.qname;, ( %rt.qname; | ( %rp.qname;, %rt.qname;, %rp.qname; ) ) )"
+>
+]]>
+<!ENTITY % Ruby.content.simple "( %rb.qname;, %rt.qname; )" >
+
+<![%Ruby.complex;[
+<!ENTITY % Ruby.content.complex 
+     "| ( %rbc.qname;, %rtc.qname;, %rtc.qname;? )"
+>
+]]>
+<!ENTITY % Ruby.content.complex "" >
+
+<!-- Content models of the rb and the rt elements are intended to
+     allow other inline-level elements of its parent markup language,
+     but it should not include ruby descendent elements. The following
+     parameter entity %NoRuby.content; can be used to redefine
+     those content models with minimum effort.  It's defined as
+     '( #PCDATA )' by default.
+-->
+<!ENTITY % NoRuby.content "( #PCDATA )" >
+
+<!-- one or more digits (NUMBER) -->
+<!ENTITY % Number.datatype "CDATA" >
+
+<!-- ruby element ...................................... -->
+
+<!ENTITY % ruby.element  "INCLUDE" >
+<![%ruby.element;[
+<!ENTITY % ruby.content
+     "( %Ruby.content.simple; %Ruby.content.complex; )"
+>
+<!ELEMENT %ruby.qname;  %ruby.content; >
+<!-- end of ruby.element -->]]>
+
+<![%Ruby.complex;[
+<!-- rbc (ruby base component) element ................. -->
+
+<!ENTITY % rbc.element  "INCLUDE" >
+<![%rbc.element;[
+<!ENTITY % rbc.content
+     "(%rb.qname;)+"
+>
+<!ELEMENT %rbc.qname;  %rbc.content; >
+<!-- end of rbc.element -->]]>
+
+<!-- rtc (ruby text component) element ................. -->
+
+<!ENTITY % rtc.element  "INCLUDE" >
+<![%rtc.element;[
+<!ENTITY % rtc.content
+     "(%rt.qname;)+"
+>
+<!ELEMENT %rtc.qname;  %rtc.content; >
+<!-- end of rtc.element -->]]>
+]]>
+
+<!-- rb (ruby base) element ............................ -->
+
+<!ENTITY % rb.element  "INCLUDE" >
+<![%rb.element;[
+<!-- %rb.content; uses %NoRuby.content; as its content model,
+     which is '( #PCDATA )' by default. It may be overridden
+     by other modules to allow other inline-level elements
+     of its parent markup language, but it should not include
+     ruby descendent elements.
+-->
+<!ENTITY % rb.content "%NoRuby.content;" >
+<!ELEMENT %rb.qname;  %rb.content; >
+<!-- end of rb.element -->]]>
+
+<!-- rt (ruby text) element ............................ -->
+
+<!ENTITY % rt.element  "INCLUDE" >
+<![%rt.element;[
+<!-- %rt.content; uses %NoRuby.content; as its content model,
+     which is '( #PCDATA )' by default. It may be overridden
+     by other modules to allow other inline-level elements
+     of its parent markup language, but it should not include
+     ruby descendent elements.
+-->
+<!ENTITY % rt.content "%NoRuby.content;" >
+
+<!ELEMENT %rt.qname;  %rt.content; >
+<!-- end of rt.element -->]]>
+
+<!-- rbspan attribute is used for complex ruby only ...... -->
+<![%Ruby.complex;[
+<!ENTITY % rt.attlist  "INCLUDE" >
+<![%rt.attlist;[
+<!ATTLIST %rt.qname;
+      rbspan         %Number.datatype;      "1"
+>
+<!-- end of rt.attlist -->]]>
+]]>
+
+<!-- rp (ruby parenthesis) element ..................... -->
+
+<![%Ruby.fallback;[
+<!ENTITY % rp.element  "INCLUDE" >
+<![%rp.element;[
+<!ENTITY % rp.content
+     "( #PCDATA )"
+>
+<!ELEMENT %rp.qname;  %rp.content; >
+<!-- end of rp.element -->]]>
+]]>
+
+<!-- Ruby Common Attributes
+
+     The following optional ATTLIST declarations provide an easy way
+     to define common attributes for ruby elements.  These declarations
+     are ignored by default.
+
+     Ruby elements are intended to have common attributes of its
+     parent markup language.  For example, if a markup language defines
+     common attributes as a parameter entity %attrs;, you may add
+     those attributes by just declaring the following parameter entities
+
+         <!ENTITY % Ruby.common.attlists  "INCLUDE" >
+         <!ENTITY % Ruby.common.attrib  "%attrs;" >
+
+     before including the Ruby module.
+-->
+
+<!ENTITY % Ruby.common.attlists  "IGNORE" >
+<![%Ruby.common.attlists;[
+<!ENTITY % Ruby.common.attrib  "" >
+
+<!-- common attributes for ruby ........................ -->
+
+<!ENTITY % Ruby.common.attlist  "INCLUDE" >
+<![%Ruby.common.attlist;[
+<!ATTLIST %ruby.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Ruby.common.attlist -->]]>
+
+<![%Ruby.complex;[
+<!-- common attributes for rbc ......................... -->
+
+<!ENTITY % Rbc.common.attlist  "INCLUDE" >
+<![%Rbc.common.attlist;[
+<!ATTLIST %rbc.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Rbc.common.attlist -->]]>
+
+<!-- common attributes for rtc ......................... -->
+
+<!ENTITY % Rtc.common.attlist  "INCLUDE" >
+<![%Rtc.common.attlist;[
+<!ATTLIST %rtc.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Rtc.common.attlist -->]]>
+]]>
+
+<!-- common attributes for rb .......................... -->
+
+<!ENTITY % Rb.common.attlist  "INCLUDE" >
+<![%Rb.common.attlist;[
+<!ATTLIST %rb.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Rb.common.attlist -->]]>
+
+<!-- common attributes for rt .......................... -->
+
+<!ENTITY % Rt.common.attlist  "INCLUDE" >
+<![%Rt.common.attlist;[
+<!ATTLIST %rt.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Rt.common.attlist -->]]>
+
+<![%Ruby.fallback;[
+<!-- common attributes for rp .......................... -->
+
+<!ENTITY % Rp.common.attlist  "INCLUDE" >
+<![%Rp.common.attlist;[
+<!ATTLIST %rp.qname;
+      %Ruby.common.attrib;
+>
+<!-- end of Rp.common.attlist -->]]>
+]]>
+]]>
+
+<!-- end of xhtml-ruby-1.mod -->
+]]>
+
+<!-- Presentation Module  ........................................ -->
+<!ENTITY % xhtml-pres.module "INCLUDE" >
+<![%xhtml-pres.module;[
+<!ENTITY % xhtml-pres.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Presentation Module ............................................ -->
+<!-- file: xhtml-pres-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Presentation 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Presentational Elements
+
+     This module defines elements and their attributes for
+     simple presentation-related markup.
+-->
+
+<!ENTITY % xhtml-inlpres.module "INCLUDE" >
+<![%xhtml-inlpres.module;[
+<!ENTITY % xhtml-inlpres.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
+            "xhtml-inlpres-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Inline Presentation Module  .................................... -->
+<!-- file: xhtml-inlpres-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Inline Presentational Elements
+
+        b, big, i, small, sub, sup, tt
+
+     This module declares the elements and their attributes used to
+     support inline-level presentational markup.
+-->
+
+<!ENTITY % b.element  "INCLUDE" >
+<![%b.element;[
+<!ENTITY % b.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % b.qname  "b" >
+<!ELEMENT %b.qname;  %b.content; >
+<!-- end of b.element -->]]>
+
+<!ENTITY % b.attlist  "INCLUDE" >
+<![%b.attlist;[
+<!ATTLIST %b.qname;
+      %Common.attrib;
+>
+<!-- end of b.attlist -->]]>
+
+<!ENTITY % big.element  "INCLUDE" >
+<![%big.element;[
+<!ENTITY % big.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % big.qname  "big" >
+<!ELEMENT %big.qname;  %big.content; >
+<!-- end of big.element -->]]>
+
+<!ENTITY % big.attlist  "INCLUDE" >
+<![%big.attlist;[
+<!ATTLIST %big.qname;
+      %Common.attrib;
+>
+<!-- end of big.attlist -->]]>
+
+<!ENTITY % i.element  "INCLUDE" >
+<![%i.element;[
+<!ENTITY % i.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % i.qname  "i" >
+<!ELEMENT %i.qname;  %i.content; >
+<!-- end of i.element -->]]>
+
+<!ENTITY % i.attlist  "INCLUDE" >
+<![%i.attlist;[
+<!ATTLIST %i.qname;
+      %Common.attrib;
+>
+<!-- end of i.attlist -->]]>
+
+<!ENTITY % small.element  "INCLUDE" >
+<![%small.element;[
+<!ENTITY % small.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % small.qname  "small" >
+<!ELEMENT %small.qname;  %small.content; >
+<!-- end of small.element -->]]>
+
+<!ENTITY % small.attlist  "INCLUDE" >
+<![%small.attlist;[
+<!ATTLIST %small.qname;
+      %Common.attrib;
+>
+<!-- end of small.attlist -->]]>
+
+<!ENTITY % sub.element  "INCLUDE" >
+<![%sub.element;[
+<!ENTITY % sub.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % sub.qname  "sub" >
+<!ELEMENT %sub.qname;  %sub.content; >
+<!-- end of sub.element -->]]>
+
+<!ENTITY % sub.attlist  "INCLUDE" >
+<![%sub.attlist;[
+<!ATTLIST %sub.qname;
+      %Common.attrib;
+>
+<!-- end of sub.attlist -->]]>
+
+<!ENTITY % sup.element  "INCLUDE" >
+<![%sup.element;[
+<!ENTITY % sup.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % sup.qname  "sup" >
+<!ELEMENT %sup.qname;  %sup.content; >
+<!-- end of sup.element -->]]>
+
+<!ENTITY % sup.attlist  "INCLUDE" >
+<![%sup.attlist;[
+<!ATTLIST %sup.qname;
+      %Common.attrib;
+>
+<!-- end of sup.attlist -->]]>
+
+<!ENTITY % tt.element  "INCLUDE" >
+<![%tt.element;[
+<!ENTITY % tt.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ENTITY % tt.qname  "tt" >
+<!ELEMENT %tt.qname;  %tt.content; >
+<!-- end of tt.element -->]]>
+
+<!ENTITY % tt.attlist  "INCLUDE" >
+<![%tt.attlist;[
+<!ATTLIST %tt.qname;
+      %Common.attrib;
+>
+<!-- end of tt.attlist -->]]>
+
+<!-- end of xhtml-inlpres-1.mod -->
+]]>
+
+<!ENTITY % xhtml-blkpres.module "INCLUDE" >
+<![%xhtml-blkpres.module;[
+<!ENTITY % xhtml-blkpres.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
+            "xhtml-blkpres-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Block Presentation Module  ..................................... -->
+<!-- file: xhtml-blkpres-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Block Presentational Elements
+
+        hr
+
+     This module declares the elements and their attributes used to
+     support block-level presentational markup.
+-->
+
+<!ENTITY % hr.element  "INCLUDE" >
+<![%hr.element;[
+<!ENTITY % hr.content  "EMPTY" >
+<!ENTITY % hr.qname  "hr" >
+<!ELEMENT %hr.qname;  %hr.content; >
+<!-- end of hr.element -->]]>
+
+<!ENTITY % hr.attlist  "INCLUDE" >
+<![%hr.attlist;[
+<!ATTLIST %hr.qname;
+      %Common.attrib;
+>
+<!-- end of hr.attlist -->]]>
+
+<!-- end of xhtml-blkpres-1.mod -->
+]]>
+
+<!-- end of xhtml-pres-1.mod -->
+]]>
+
+<!-- Link Element Module  ........................................ -->
+<!ENTITY % xhtml-link.module "INCLUDE" >
+<![%xhtml-link.module;[
+<!ENTITY % xhtml-link.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Link Element Module  ........................................... -->
+<!-- file: xhtml-link-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Link Element 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Link element
+
+        link
+
+     This module declares the link element type and its attributes,
+     which could (in principle) be used to define document-level links
+     to external resources such as:
+
+     a) for document specific toolbars/menus, e.g. start, contents,
+        previous, next, index, end, help
+     b) to link to a separate style sheet (rel="stylesheet")
+     c) to make a link to a script (rel="script")
+     d) by style sheets to control how collections of html nodes are
+        rendered into printed documents
+     e) to make a link to a printable version of this document
+        e.g. a postscript or pdf version (rel="alternate" media="print")
+-->
+
+<!-- link: Media-Independent Link ...................... -->
+
+<!ENTITY % link.element  "INCLUDE" >
+<![%link.element;[
+<!ENTITY % link.content  "EMPTY" >
+<!ENTITY % link.qname  "link" >
+<!ELEMENT %link.qname;  %link.content; >
+<!-- end of link.element -->]]>
+
+<!ENTITY % link.attlist  "INCLUDE" >
+<![%link.attlist;[
+<!ATTLIST %link.qname;
+      %Common.attrib;
+      charset      %Charset.datatype;       #IMPLIED
+      href         %URI.datatype;           #IMPLIED
+      hreflang     %LanguageCode.datatype;  #IMPLIED
+      type         %ContentType.datatype;   #IMPLIED
+      rel          %LinkTypes.datatype;     #IMPLIED
+      rev          %LinkTypes.datatype;     #IMPLIED
+      media        %MediaDesc.datatype;     #IMPLIED
+>
+<!-- end of link.attlist -->]]>
+
+<!-- end of xhtml-link-1.mod -->
+]]>
+
+<!-- Document Metainformation Module  ............................ -->
+<!ENTITY % xhtml-meta.module "INCLUDE" >
+<![%xhtml-meta.module;[
+<!ENTITY % xhtml-meta.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Document Metainformation Module  ............................... -->
+<!-- file: xhtml-meta-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Meta Information
+
+        meta
+
+     This module declares the meta element type and its attributes,
+     used to provide declarative document metainformation.
+-->
+
+<!-- meta: Generic Metainformation ..................... -->
+
+<!ENTITY % meta.element  "INCLUDE" >
+<![%meta.element;[
+<!ENTITY % meta.content  "EMPTY" >
+<!ENTITY % meta.qname  "meta" >
+<!ELEMENT %meta.qname;  %meta.content; >
+<!-- end of meta.element -->]]>
+
+<!ENTITY % meta.attlist  "INCLUDE" >
+<![%meta.attlist;[
+<!ATTLIST %meta.qname;
+      %XHTML.xmlns.attrib;
+      %I18n.attrib;
+      http-equiv   NMTOKEN                  #IMPLIED
+      name         NMTOKEN                  #IMPLIED
+      content      CDATA                    #REQUIRED
+      scheme       CDATA                    #IMPLIED
+>
+<!-- end of meta.attlist -->]]>
+
+<!-- end of xhtml-meta-1.mod -->
+]]>
+
+<!-- Base Element Module  ........................................ -->
+<!ENTITY % xhtml-base.module "INCLUDE" >
+<![%xhtml-base.module;[
+<!ENTITY % xhtml-base.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Base Element Module  ........................................... -->
+<!-- file: xhtml-base-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Base element
+
+        base
+
+     This module declares the base element type and its attributes,
+     used to define a base URI against which relative URIs in the
+     document will be resolved.
+
+     Note that this module also redeclares the content model for
+     the head element to include the base element.
+-->
+
+<!-- base: Document Base URI ........................... -->
+
+<!ENTITY % base.element  "INCLUDE" >
+<![%base.element;[
+<!ENTITY % base.content  "EMPTY" >
+<!ENTITY % base.qname  "base" >
+<!ELEMENT %base.qname;  %base.content; >
+<!-- end of base.element -->]]>
+
+<!ENTITY % base.attlist  "INCLUDE" >
+<![%base.attlist;[
+<!ATTLIST %base.qname;
+      %XHTML.xmlns.attrib;
+      href         %URI.datatype;           #REQUIRED
+>
+<!-- end of base.attlist -->]]>
+
+<!ENTITY % head.content
+    "( %HeadOpts.mix;,
+     ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? )
+     | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))"
+>
+
+<!-- end of xhtml-base-1.mod -->
+]]>
+
+<!-- Scripting Module  ........................................... -->
+<!ENTITY % xhtml-script.module "INCLUDE" >
+<![%xhtml-script.module;[
+<!ENTITY % xhtml-script.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Document Scripting Module  ..................................... -->
+<!-- file: xhtml-script-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Scripting 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Scripting
+
+        script, noscript
+
+     This module declares element types and attributes used to provide
+     support for executable scripts as well as an alternate content
+     container where scripts are not supported.
+-->
+
+<!-- script: Scripting Statement ....................... -->
+
+<!ENTITY % script.element  "INCLUDE" >
+<![%script.element;[
+<!ENTITY % script.content  "( #PCDATA )" >
+<!ENTITY % script.qname  "script" >
+<!ELEMENT %script.qname;  %script.content; >
+<!-- end of script.element -->]]>
+
+<!ENTITY % script.attlist  "INCLUDE" >
+<![%script.attlist;[
+<!ATTLIST %script.qname;
+      %XHTML.xmlns.attrib;
+	  %id.attrib;
+      charset      %Charset.datatype;       #IMPLIED
+      type         %ContentType.datatype;   #REQUIRED
+      src          %URI.datatype;           #IMPLIED
+      defer        ( defer )                #IMPLIED
+>
+<!-- end of script.attlist -->]]>
+
+<!-- noscript: No-Script Alternate Content ............. -->
+
+<!ENTITY % noscript.element  "INCLUDE" >
+<![%noscript.element;[
+<!ENTITY % noscript.content
+     "( %Block.mix; )+"
+>
+<!ENTITY % noscript.qname  "noscript" >
+<!ELEMENT %noscript.qname;  %noscript.content; >
+<!-- end of noscript.element -->]]>
+
+<!ENTITY % noscript.attlist  "INCLUDE" >
+<![%noscript.attlist;[
+<!ATTLIST %noscript.qname;
+      %Common.attrib;
+>
+<!-- end of noscript.attlist -->]]>
+
+<!-- end of xhtml-script-1.mod -->
+]]>
+
+<!-- Style Sheets Module  ......................................... -->
+<!ENTITY % xhtml-style.module "INCLUDE" >
+<![%xhtml-style.module;[
+<!ENTITY % xhtml-style.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Document Style Sheet Module  ................................... -->
+<!-- file: xhtml-style-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//DTD XHTML Style Sheets 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Style Sheets
+
+        style
+
+     This module declares the style element type and its attributes,
+     used to embed style sheet information in the document head element.
+-->
+
+<!-- style: Style Sheet Information .................... -->
+
+<!ENTITY % style.element  "INCLUDE" >
+<![%style.element;[
+<!ENTITY % style.content  "( #PCDATA )" >
+<!ENTITY % style.qname  "style" >
+<!ELEMENT %style.qname;  %style.content; >
+<!-- end of style.element -->]]>
+
+<!ENTITY % style.attlist  "INCLUDE" >
+<![%style.attlist;[
+<!ATTLIST %style.qname;
+      %XHTML.xmlns.attrib;
+      %id.attrib;
+      %title.attrib;
+      %I18n.attrib;
+      type         %ContentType.datatype;   #REQUIRED
+      media        %MediaDesc.datatype;     #IMPLIED
+>
+<!-- end of style.attlist -->]]>
+
+<!-- end of xhtml-style-1.mod -->
+]]>
+
+<!-- Image Module  ............................................... -->
+<!ENTITY % xhtml-image.module "INCLUDE" >
+<![%xhtml-image.module;[
+<!ENTITY % xhtml-image.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Images Module  ................................................. -->
+<!-- file: xhtml-image-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Rovision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Images
+
+        img
+
+     This module provides markup to support basic image embedding.
+-->
+
+<!-- To avoid problems with text-only UAs as well as to make
+     image content understandable and navigable to users of
+     non-visual UAs, you need to provide a description with
+     the 'alt' attribute, and avoid server-side image maps.
+-->
+
+<!ENTITY % img.element  "INCLUDE" >
+<![%img.element;[
+<!ENTITY % img.content  "EMPTY" >
+<!ENTITY % img.qname  "img" >
+<!ELEMENT %img.qname;  %img.content; >
+<!-- end of img.element -->]]>
+
+<!ENTITY % img.attlist  "INCLUDE" >
+<![%img.attlist;[
+<!ATTLIST %img.qname;
+      %Common.attrib;
+      src          %URI.datatype;           #REQUIRED
+      alt          %Text.datatype;          #REQUIRED
+      longdesc     %URI.datatype;           #IMPLIED
+      height       %Length.datatype;        #IMPLIED
+      width        %Length.datatype;        #IMPLIED
+>
+<!-- end of img.attlist -->]]>
+
+<!-- end of xhtml-image-1.mod -->
+]]>
+
+<!-- Client-side Image Map Module  ............................... -->
+<!ENTITY % xhtml-csismap.module "INCLUDE" >
+<![%xhtml-csismap.module;[
+<!ENTITY % xhtml-csismap.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Client-side Image Map Module  .................................. -->
+<!-- file: xhtml-csismap-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Client-side Image Maps
+
+        area, map
+
+     This module declares elements and attributes to support client-side
+     image maps. This requires that the Image Module (or a module
+     declaring the img element type) be included in the DTD.
+
+     These can be placed in the same document or grouped in a
+     separate document, although the latter isn't widely supported
+-->
+
+<!ENTITY % area.element  "INCLUDE" >
+<![%area.element;[
+<!ENTITY % area.content  "EMPTY" >
+<!ENTITY % area.qname  "area" >
+<!ELEMENT %area.qname;  %area.content; >
+<!-- end of area.element -->]]>
+
+<!ENTITY % Shape.datatype "( rect | circle | poly | default )">
+<!ENTITY % Coords.datatype "CDATA" >
+
+<!ENTITY % area.attlist  "INCLUDE" >
+<![%area.attlist;[
+<!ATTLIST %area.qname;
+      %Common.attrib;
+      href         %URI.datatype;           #IMPLIED
+      shape        %Shape.datatype;         'rect'
+      coords       %Coords.datatype;        #IMPLIED
+      nohref       ( nohref )               #IMPLIED
+      alt          %Text.datatype;          #REQUIRED
+      tabindex     %Number.datatype;        #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+>
+<!-- end of area.attlist -->]]>
+
+<!-- modify anchor attribute definition list
+     to allow for client-side image maps
+-->
+<!ATTLIST %a.qname;
+      shape        %Shape.datatype;         'rect'
+      coords       %Coords.datatype;        #IMPLIED
+>
+
+<!-- modify img attribute definition list
+     to allow for client-side image maps
+-->
+<!ATTLIST %img.qname;
+      usemap       IDREF                    #IMPLIED
+>
+
+<!-- modify form input attribute definition list
+     to allow for client-side image maps
+-->
+<!ATTLIST %input.qname;
+      usemap       IDREF                    #IMPLIED
+>
+
+<!-- modify object attribute definition list
+     to allow for client-side image maps
+-->
+<!ATTLIST %object.qname;
+      usemap       IDREF                    #IMPLIED
+>
+
+<!-- 'usemap' points to the 'id' attribute of a <map> element,
+     which must be in the same document; support for external
+     document maps was not widely supported in HTML and is
+     eliminated in XHTML.
+
+     It is considered an error for the element pointed to by
+     a usemap IDREF to occur in anything but a <map> element.
+-->
+
+<!ENTITY % map.element  "INCLUDE" >
+<![%map.element;[
+<!ENTITY % map.content
+     "(( %Block.mix; ) | %area.qname; )+"
+>
+<!ENTITY % map.qname  "map" >
+<!ELEMENT %map.qname;  %map.content; >
+<!-- end of map.element -->]]>
+
+<!ENTITY % map.attlist  "INCLUDE" >
+<![%map.attlist;[
+<!ATTLIST %map.qname;
+      %XHTML.xmlns.attrib;
+      id           ID                       #REQUIRED
+      %class.attrib;
+      %title.attrib;
+      %Core.extra.attrib;
+      %I18n.attrib;
+      %Events.attrib;
+>
+<!-- end of map.attlist -->]]>
+
+<!-- end of xhtml-csismap-1.mod -->
+]]>
+
+<!-- Server-side Image Map Module  ............................... -->
+<!ENTITY % xhtml-ssismap.module "INCLUDE" >
+<![%xhtml-ssismap.module;[
+<!ENTITY % xhtml-ssismap.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Server-side Image Map Module  .................................. -->
+<!-- file: xhtml-ssismap-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod"
+
+     Revisions:
+#2000-10-22: added declaration for 'ismap' on <input>
+     ....................................................................... -->
+
+<!-- Server-side Image Maps
+
+     This adds the 'ismap' attribute to the img and input elements
+     to support server-side processing of a user selection.
+-->
+
+<!ATTLIST %img.qname;
+      ismap        ( ismap )                #IMPLIED
+>
+
+<!ATTLIST %input.qname;
+      ismap        ( ismap )                #IMPLIED
+>
+
+<!-- end of xhtml-ssismap-1.mod -->
+]]>
+
+<!-- Param Element Module  ....................................... -->
+<!ENTITY % xhtml-param.module "INCLUDE" >
+<![%xhtml-param.module;[
+<!ENTITY % xhtml-param.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Param Element Module  ..................................... -->
+<!-- file: xhtml-param-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Param Element 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Parameters for Java Applets and Embedded Objects
+
+        param
+
+     This module provides declarations for the param element,
+     used to provide named property values for the applet
+     and object elements.
+-->
+
+<!-- param: Named Property Value ....................... -->
+
+<!ENTITY % param.element  "INCLUDE" >
+<![%param.element;[
+<!ENTITY % param.content  "EMPTY" >
+<!ENTITY % param.qname  "param" >
+<!ELEMENT %param.qname;  %param.content; >
+<!-- end of param.element -->]]>
+
+<!ENTITY % param.attlist  "INCLUDE" >
+<![%param.attlist;[
+<!ATTLIST %param.qname;
+      %XHTML.xmlns.attrib;
+      %id.attrib;
+      name         CDATA                    #REQUIRED
+      value        CDATA                    #IMPLIED
+      valuetype    ( data | ref | object )  'data'
+      type         %ContentType.datatype;   #IMPLIED
+>
+<!-- end of param.attlist -->]]>
+
+<!-- end of xhtml-param-1.mod -->
+]]>
+
+<!-- Embedded Object Module  ..................................... -->
+<!ENTITY % xhtml-object.module "INCLUDE" >
+<![%xhtml-object.module;[
+<!ENTITY % xhtml-object.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Embedded Object Module  ........................................ -->
+<!-- file: xhtml-object-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Embedded Objects
+
+        object
+
+     This module declares the object element type and its attributes, used
+     to embed external objects as part of XHTML pages. In the document,
+     place param elements prior to other content within the object element.
+
+     Note that use of this module requires instantiation of the Param
+     Element Module.
+-->
+
+<!-- object: Generic Embedded Object ................... -->
+
+<!ENTITY % object.element  "INCLUDE" >
+<![%object.element;[
+<!ENTITY % object.content
+     "( #PCDATA | %Flow.mix; | %param.qname; )*"
+>
+<!ENTITY % object.qname  "object" >
+<!ELEMENT %object.qname;  %object.content; >
+<!-- end of object.element -->]]>
+
+<!ENTITY % object.attlist  "INCLUDE" >
+<![%object.attlist;[
+<!ATTLIST %object.qname;
+      %Common.attrib;
+      declare      ( declare )              #IMPLIED
+      classid      %URI.datatype;           #IMPLIED
+      codebase     %URI.datatype;           #IMPLIED
+      data         %URI.datatype;           #IMPLIED
+      type         %ContentType.datatype;   #IMPLIED
+      codetype     %ContentType.datatype;   #IMPLIED
+      archive      %URIs.datatype;          #IMPLIED
+      standby      %Text.datatype;          #IMPLIED
+      height       %Length.datatype;        #IMPLIED
+      width        %Length.datatype;        #IMPLIED
+      name         CDATA                    #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+>
+<!-- end of object.attlist -->]]>
+
+<!-- end of xhtml-object-1.mod -->
+]]>
+
+<!-- Tables Module ............................................... -->
+<!ENTITY % xhtml-table.module "INCLUDE" >
+<![%xhtml-table.module;[
+<!ENTITY % xhtml-table.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Table Module  .................................................. -->
+<!-- file: xhtml-table-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Tables 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Tables
+
+        table, caption, thead, tfoot, tbody, colgroup, col, tr, th, td
+
+     This module declares element types and attributes used to provide
+     table markup similar to HTML 4, including features that enable
+     better accessibility for non-visual user agents.
+-->
+
+<!-- declare qualified element type names:
+-->
+<!ENTITY % table.qname  "table" >
+<!ENTITY % caption.qname  "caption" >
+<!ENTITY % thead.qname  "thead" >
+<!ENTITY % tfoot.qname  "tfoot" >
+<!ENTITY % tbody.qname  "tbody" >
+<!ENTITY % colgroup.qname  "colgroup" >
+<!ENTITY % col.qname  "col" >
+<!ENTITY % tr.qname  "tr" >
+<!ENTITY % th.qname  "th" >
+<!ENTITY % td.qname  "td" >
+
+<!-- The frame attribute specifies which parts of the frame around
+     the table should be rendered. The values are not the same as
+     CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % frame.attrib
+     "frame        ( void
+                   | above
+                   | below
+                   | hsides
+                   | lhs
+                   | rhs
+                   | vsides
+                   | box
+                   | border )               #IMPLIED"
+>
+
+<!-- The rules attribute defines which rules to draw between cells:
+
+     If rules is absent then assume:
+
+       "none" if border is absent or border="0" otherwise "all"
+-->
+<!ENTITY % rules.attrib
+     "rules        ( none
+                   | groups
+                   | rows
+                   | cols
+                   | all )                  #IMPLIED"
+>
+
+<!-- horizontal alignment attributes for cell contents
+-->
+<!ENTITY % CellHAlign.attrib
+     "align        ( left
+                   | center
+                   | right
+                   | justify
+                   | char )                 #IMPLIED
+      char         %Character.datatype;     #IMPLIED
+      charoff      %Length.datatype;        #IMPLIED"
+>
+
+<!-- vertical alignment attribute for cell contents
+-->
+<!ENTITY % CellVAlign.attrib
+     "valign       ( top
+                   | middle
+                   | bottom
+                   | baseline )             #IMPLIED"
+>
+
+<!-- scope is simpler than axes attribute for common tables
+-->
+<!ENTITY % scope.attrib
+     "scope        ( row
+                   | col
+                   | rowgroup
+                   | colgroup )             #IMPLIED"
+>
+
+<!-- table: Table Element .............................. -->
+
+<!ENTITY % table.element  "INCLUDE" >
+<![%table.element;[
+<!ENTITY % table.content
+     "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ),
+      (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))"
+>
+<!ELEMENT %table.qname;  %table.content; >
+<!-- end of table.element -->]]>
+
+<!ENTITY % table.attlist  "INCLUDE" >
+<![%table.attlist;[
+<!ATTLIST %table.qname;
+      %Common.attrib;
+      summary      %Text.datatype;          #IMPLIED
+      width        %Length.datatype;        #IMPLIED
+      border       %Pixels.datatype;        #IMPLIED
+      %frame.attrib;
+      %rules.attrib;
+      cellspacing  %Length.datatype;        #IMPLIED
+      cellpadding  %Length.datatype;        #IMPLIED
+>
+<!-- end of table.attlist -->]]>
+
+<!-- caption: Table Caption ............................ -->
+
+<!ENTITY % caption.element  "INCLUDE" >
+<![%caption.element;[
+<!ENTITY % caption.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ELEMENT %caption.qname;  %caption.content; >
+<!-- end of caption.element -->]]>
+
+<!ENTITY % caption.attlist  "INCLUDE" >
+<![%caption.attlist;[
+<!ATTLIST %caption.qname;
+      %Common.attrib;
+>
+<!-- end of caption.attlist -->]]>
+
+<!-- thead: Table Header ............................... -->
+
+<!-- Use thead to duplicate headers when breaking table
+     across page boundaries, or for static headers when
+     tbody sections are rendered in scrolling panel.
+-->
+
+<!ENTITY % thead.element  "INCLUDE" >
+<![%thead.element;[
+<!ENTITY % thead.content  "( %tr.qname; )+" >
+<!ELEMENT %thead.qname;  %thead.content; >
+<!-- end of thead.element -->]]>
+
+<!ENTITY % thead.attlist  "INCLUDE" >
+<![%thead.attlist;[
+<!ATTLIST %thead.qname;
+      %Common.attrib;
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of thead.attlist -->]]>
+
+<!-- tfoot: Table Footer ............................... -->
+
+<!-- Use tfoot to duplicate footers when breaking table
+     across page boundaries, or for static footers when
+     tbody sections are rendered in scrolling panel.
+-->
+
+<!ENTITY % tfoot.element  "INCLUDE" >
+<![%tfoot.element;[
+<!ENTITY % tfoot.content  "( %tr.qname; )+" >
+<!ELEMENT %tfoot.qname;  %tfoot.content; >
+<!-- end of tfoot.element -->]]>
+
+<!ENTITY % tfoot.attlist  "INCLUDE" >
+<![%tfoot.attlist;[
+<!ATTLIST %tfoot.qname;
+      %Common.attrib;
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of tfoot.attlist -->]]>
+
+<!-- tbody: Table Body ................................. -->
+
+<!-- Use multiple tbody sections when rules are needed
+     between groups of table rows.
+-->
+
+<!ENTITY % tbody.element  "INCLUDE" >
+<![%tbody.element;[
+<!ENTITY % tbody.content  "( %tr.qname; )+" >
+<!ELEMENT %tbody.qname;  %tbody.content; >
+<!-- end of tbody.element -->]]>
+
+<!ENTITY % tbody.attlist  "INCLUDE" >
+<![%tbody.attlist;[
+<!ATTLIST %tbody.qname;
+      %Common.attrib;
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of tbody.attlist -->]]>
+
+<!-- colgroup: Table Column Group ...................... -->
+
+<!-- colgroup groups a set of col elements. It allows you
+     to group several semantically-related columns together.
+-->
+
+<!ENTITY % colgroup.element  "INCLUDE" >
+<![%colgroup.element;[
+<!ENTITY % colgroup.content  "( %col.qname; )*" >
+<!ELEMENT %colgroup.qname;  %colgroup.content; >
+<!-- end of colgroup.element -->]]>
+
+<!ENTITY % colgroup.attlist  "INCLUDE" >
+<![%colgroup.attlist;[
+<!ATTLIST %colgroup.qname;
+      %Common.attrib;
+      span         %Number.datatype;        '1'
+      width        %MultiLength.datatype;   #IMPLIED
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of colgroup.attlist -->]]>
+
+<!-- col: Table Column ................................. -->
+
+<!-- col elements define the alignment properties for
+     cells in one or more columns.
+
+     The width attribute specifies the width of the
+     columns, e.g.
+
+       width="64"        width in screen pixels
+       width="0.5*"      relative width of 0.5
+
+     The span attribute causes the attributes of one
+     col element to apply to more than one column.
+-->
+
+<!ENTITY % col.element  "INCLUDE" >
+<![%col.element;[
+<!ENTITY % col.content  "EMPTY" >
+<!ELEMENT %col.qname;  %col.content; >
+<!-- end of col.element -->]]>
+
+<!ENTITY % col.attlist  "INCLUDE" >
+<![%col.attlist;[
+<!ATTLIST %col.qname;
+      %Common.attrib;
+      span         %Number.datatype;        '1'
+      width        %MultiLength.datatype;   #IMPLIED
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of col.attlist -->]]>
+
+<!-- tr: Table Row ..................................... -->
+
+<!ENTITY % tr.element  "INCLUDE" >
+<![%tr.element;[
+<!ENTITY % tr.content  "( %th.qname; | %td.qname; )+" >
+<!ELEMENT %tr.qname;  %tr.content; >
+<!-- end of tr.element -->]]>
+
+<!ENTITY % tr.attlist  "INCLUDE" >
+<![%tr.attlist;[
+<!ATTLIST %tr.qname;
+      %Common.attrib;
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of tr.attlist -->]]>
+
+<!-- th: Table Header Cell ............................. -->
+
+<!-- th is for header cells, td for data,
+     but for cells acting as both use td
+-->
+
+<!ENTITY % th.element  "INCLUDE" >
+<![%th.element;[
+<!ENTITY % th.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ELEMENT %th.qname;  %th.content; >
+<!-- end of th.element -->]]>
+
+<!ENTITY % th.attlist  "INCLUDE" >
+<![%th.attlist;[
+<!ATTLIST %th.qname;
+      %Common.attrib;
+      abbr         %Text.datatype;          #IMPLIED
+      axis         CDATA                    #IMPLIED
+      headers      IDREFS                   #IMPLIED
+      %scope.attrib;
+      rowspan      %Number.datatype;        '1'
+      colspan      %Number.datatype;        '1'
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of th.attlist -->]]>
+
+<!-- td: Table Data Cell ............................... -->
+
+<!ENTITY % td.element  "INCLUDE" >
+<![%td.element;[
+<!ENTITY % td.content
+     "( #PCDATA | %Flow.mix; )*"
+>
+<!ELEMENT %td.qname;  %td.content; >
+<!-- end of td.element -->]]>
+
+<!ENTITY % td.attlist  "INCLUDE" >
+<![%td.attlist;[
+<!ATTLIST %td.qname;
+      %Common.attrib;
+      abbr         %Text.datatype;          #IMPLIED
+      axis         CDATA                    #IMPLIED
+      headers      IDREFS                   #IMPLIED
+      %scope.attrib;
+      rowspan      %Number.datatype;        '1'
+      colspan      %Number.datatype;        '1'
+      %CellHAlign.attrib;
+      %CellVAlign.attrib;
+>
+<!-- end of td.attlist -->]]>
+
+<!-- end of xhtml-table-1.mod -->
+]]>
+
+<!-- Forms Module  ............................................... -->
+<!ENTITY % xhtml-form.module "INCLUDE" >
+<![%xhtml-form.module;[
+<!ENTITY % xhtml-form.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Forms Module  .................................................. -->
+<!-- file: xhtml-form-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Forms 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Forms
+
+        form, label, input, select, optgroup, option,
+        textarea, fieldset, legend, button
+
+     This module declares markup to provide support for online
+     forms, based on the features found in HTML 4 forms.
+-->
+
+<!-- declare qualified element type names:
+-->
+<!ENTITY % form.qname  "form" >
+<!ENTITY % label.qname  "label" >
+<!ENTITY % input.qname  "input" >
+<!ENTITY % select.qname  "select" >
+<!ENTITY % optgroup.qname  "optgroup" >
+<!ENTITY % option.qname  "option" >
+<!ENTITY % textarea.qname  "textarea" >
+<!ENTITY % fieldset.qname  "fieldset" >
+<!ENTITY % legend.qname  "legend" >
+<!ENTITY % button.qname  "button" >
+
+<!-- %BlkNoForm.mix; includes all non-form block elements,
+     plus %Misc.class;
+-->
+<!ENTITY % BlkNoForm.mix
+     "%Heading.class;
+      | %List.class;
+      | %BlkStruct.class;
+      %BlkPhras.class;
+      %BlkPres.class;
+      %Table.class;
+      %Block.extra;
+      %Misc.class;"
+>
+
+<!-- form: Form Element ................................ -->
+
+<!ENTITY % form.element  "INCLUDE" >
+<![%form.element;[
+<!ENTITY % form.content
+     "( %BlkNoForm.mix;
+      | %fieldset.qname; )+"
+>
+<!ELEMENT %form.qname;  %form.content; >
+<!-- end of form.element -->]]>
+
+<!ENTITY % form.attlist  "INCLUDE" >
+<![%form.attlist;[
+<!ATTLIST %form.qname;
+      %Common.attrib;
+      action       %URI.datatype;           #REQUIRED
+      method       ( get | post )           'get'
+      enctype      %ContentType.datatype;   'application/x-www-form-urlencoded'
+      accept-charset %Charsets.datatype;    #IMPLIED
+      accept       %ContentTypes.datatype;  #IMPLIED
+>
+<!-- end of form.attlist -->]]>
+
+<!-- label: Form Field Label Text ...................... -->
+
+<!-- Each label must not contain more than ONE field
+-->
+
+<!ENTITY % label.element  "INCLUDE" >
+<![%label.element;[
+<!ENTITY % label.content
+     "( #PCDATA
+      | %input.qname; | %select.qname; | %textarea.qname; | %button.qname;
+      | %InlStruct.class;
+      %InlPhras.class;
+      %I18n.class;
+      %InlPres.class;
+      %Anchor.class;
+      %InlSpecial.class;
+      %Inline.extra;
+      %Misc.class; )*"
+>
+<!ELEMENT %label.qname;  %label.content; >
+<!-- end of label.element -->]]>
+
+<!ENTITY % label.attlist  "INCLUDE" >
+<![%label.attlist;[
+<!ATTLIST %label.qname;
+      %Common.attrib;
+      for          IDREF                    #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+>
+<!-- end of label.attlist -->]]>
+
+<!-- input: Form Control ............................... -->
+
+<!ENTITY % input.element  "INCLUDE" >
+<![%input.element;[
+<!ENTITY % input.content  "EMPTY" >
+<!ELEMENT %input.qname;  %input.content; >
+<!-- end of input.element -->]]>
+
+<!ENTITY % input.attlist  "INCLUDE" >
+<![%input.attlist;[
+<!ENTITY % InputType.class
+     "( text | password | checkbox | radio | submit
+      | reset | file | hidden | image | button )"
+>
+<!-- attribute 'name' required for all but submit & reset
+-->
+<!ATTLIST %input.qname;
+      %Common.attrib;
+      type         %InputType.class;        'text'
+      name         CDATA                    #IMPLIED
+      value        CDATA                    #IMPLIED
+      checked      ( checked )              #IMPLIED
+      disabled     ( disabled )             #IMPLIED
+      readonly     ( readonly )             #IMPLIED
+      size         %Number.datatype;        #IMPLIED
+      maxlength    %Number.datatype;        #IMPLIED
+      src          %URI.datatype;           #IMPLIED
+      alt          %Text.datatype;          #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+      accept       %ContentTypes.datatype;  #IMPLIED
+>
+<!-- end of input.attlist -->]]>
+
+<!-- select: Option Selector ........................... -->
+
+<!ENTITY % select.element  "INCLUDE" >
+<![%select.element;[
+<!ENTITY % select.content
+     "( %optgroup.qname; | %option.qname; )+"
+>
+<!ELEMENT %select.qname;  %select.content; >
+<!-- end of select.element -->]]>
+
+<!ENTITY % select.attlist  "INCLUDE" >
+<![%select.attlist;[
+<!ATTLIST %select.qname;
+      %Common.attrib;
+      name         CDATA                    #IMPLIED
+      size         %Number.datatype;        #IMPLIED
+      multiple     ( multiple )             #IMPLIED
+      disabled     ( disabled )             #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+>
+<!-- end of select.attlist -->]]>
+
+<!-- optgroup: Option Group ............................ -->
+
+<!ENTITY % optgroup.element  "INCLUDE" >
+<![%optgroup.element;[
+<!ENTITY % optgroup.content  "( %option.qname; )+" >
+<!ELEMENT %optgroup.qname;  %optgroup.content; >
+<!-- end of optgroup.element -->]]>
+
+<!ENTITY % optgroup.attlist  "INCLUDE" >
+<![%optgroup.attlist;[
+<!ATTLIST %optgroup.qname;
+      %Common.attrib;
+      disabled     ( disabled )             #IMPLIED
+      label        %Text.datatype;          #REQUIRED
+>
+<!-- end of optgroup.attlist -->]]>
+
+<!-- option: Selectable Choice ......................... -->
+
+<!ENTITY % option.element  "INCLUDE" >
+<![%option.element;[
+<!ENTITY % option.content  "( #PCDATA )" >
+<!ELEMENT %option.qname;  %option.content; >
+<!-- end of option.element -->]]>
+
+<!ENTITY % option.attlist  "INCLUDE" >
+<![%option.attlist;[
+<!ATTLIST %option.qname;
+      %Common.attrib;
+      selected     ( selected )             #IMPLIED
+      disabled     ( disabled )             #IMPLIED
+      label        %Text.datatype;          #IMPLIED
+      value        CDATA                    #IMPLIED
+>
+<!-- end of option.attlist -->]]>
+
+<!-- textarea: Multi-Line Text Field ................... -->
+
+<!ENTITY % textarea.element  "INCLUDE" >
+<![%textarea.element;[
+<!ENTITY % textarea.content  "( #PCDATA )" >
+<!ELEMENT %textarea.qname;  %textarea.content; >
+<!-- end of textarea.element -->]]>
+
+<!ENTITY % textarea.attlist  "INCLUDE" >
+<![%textarea.attlist;[
+<!ATTLIST %textarea.qname;
+      %Common.attrib;
+      name         CDATA                    #IMPLIED
+      rows         %Number.datatype;        #REQUIRED
+      cols         %Number.datatype;        #REQUIRED
+      disabled     ( disabled )             #IMPLIED
+      readonly     ( readonly )             #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+>
+<!-- end of textarea.attlist -->]]>
+
+<!-- fieldset: Form Control Group ...................... -->
+
+<!-- #PCDATA is to solve the mixed content problem,
+     per specification only whitespace is allowed
+-->
+
+<!ENTITY % fieldset.element  "INCLUDE" >
+<![%fieldset.element;[
+<!ENTITY % fieldset.content
+     "( #PCDATA | %legend.qname; | %Flow.mix; )*"
+>
+<!ELEMENT %fieldset.qname;  %fieldset.content; >
+<!-- end of fieldset.element -->]]>
+
+<!ENTITY % fieldset.attlist  "INCLUDE" >
+<![%fieldset.attlist;[
+<!ATTLIST %fieldset.qname;
+      %Common.attrib;
+>
+<!-- end of fieldset.attlist -->]]>
+
+<!-- legend: Fieldset Legend ........................... -->
+
+<!ENTITY % legend.element  "INCLUDE" >
+<![%legend.element;[
+<!ENTITY % legend.content
+     "( #PCDATA | %Inline.mix; )*"
+>
+<!ELEMENT %legend.qname;  %legend.content; >
+<!-- end of legend.element -->]]>
+
+<!ENTITY % legend.attlist  "INCLUDE" >
+<![%legend.attlist;[
+<!ATTLIST %legend.qname;
+      %Common.attrib;
+      accesskey    %Character.datatype;     #IMPLIED
+>
+<!-- end of legend.attlist -->]]>
+
+<!-- button: Push Button ............................... -->
+
+<!ENTITY % button.element  "INCLUDE" >
+<![%button.element;[
+<!ENTITY % button.content
+     "( #PCDATA
+      | %BlkNoForm.mix;
+      | %InlStruct.class;
+      %InlPhras.class;
+      %InlPres.class;
+      %I18n.class;
+      %InlSpecial.class;
+      %Inline.extra; )*"
+>
+<!ELEMENT %button.qname;  %button.content; >
+<!-- end of button.element -->]]>
+
+<!ENTITY % button.attlist  "INCLUDE" >
+<![%button.attlist;[
+<!ATTLIST %button.qname;
+      %Common.attrib;
+      name         CDATA                    #IMPLIED
+      value        CDATA                    #IMPLIED
+      type         ( button | submit | reset ) 'submit'
+      disabled     ( disabled )             #IMPLIED
+      tabindex     %Number.datatype;        #IMPLIED
+      accesskey    %Character.datatype;     #IMPLIED
+>
+<!-- end of button.attlist -->]]>
+
+<!-- end of xhtml-form-1.mod -->
+]]>
+
+<!-- Target Attribute Module  .................................... -->
+<!ENTITY % xhtml-target.module "INCLUDE" >
+<![%xhtml-target.module;[
+<!ENTITY % xhtml-target.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Target Module  ................................................. -->
+<!-- file: xhtml-target-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Target 
+
+        target
+
+     This module declares the 'target' attribute used for opening windows
+-->
+
+<!-- render in this frame --> 
+<!ENTITY % FrameTarget.datatype "CDATA" >
+
+<!-- add 'target' attribute to 'a' element -->
+<!ATTLIST %a.qname;
+      target       %FrameTarget.datatype;   #IMPLIED
+>
+
+<!-- add 'target' attribute to 'area' element -->
+<!ATTLIST %area.qname;
+      target       %FrameTarget.datatype;   #IMPLIED
+>
+
+<!-- add 'target' attribute to 'link' element -->
+<!ATTLIST %link.qname;
+      target       %FrameTarget.datatype;   #IMPLIED
+>
+
+<!-- add 'target' attribute to 'form' element -->
+<!ATTLIST %form.qname;
+      target       %FrameTarget.datatype;   #IMPLIED
+>
+
+<!-- add 'target' attribute to 'base' element -->
+<!ATTLIST %base.qname;
+      target       %FrameTarget.datatype;   #IMPLIED
+>
+
+<!-- end of xhtml-target-1.mod -->
+]]>
+
+<!-- Legacy Markup ............................................... -->
+<!ENTITY % xhtml-legacy.module "IGNORE" >
+<![%xhtml-legacy.module;[
+<!ENTITY % xhtml-legacy.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Legacy Markup 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" >
+%xhtml-legacy.mod;]]>
+
+<!-- Document Structure Module (required)  ....................... -->
+<!ENTITY % xhtml-struct.module "INCLUDE" >
+<![%xhtml-struct.module;[
+<!ENTITY % xhtml-struct.mod
+     PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
+            "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" >
+<!-- ...................................................................... -->
+<!-- XHTML Structure Module  .............................................. -->
+<!-- file: xhtml-struct-1.mod
+
+     This is XHTML, a reformulation of HTML as a modular XML application.
+     Copyright 1998-2005 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+     Revision: $Id: xhtml11-flat.dtd,v 1.1 2008-01-22 18:15:32 ace Exp $ SMI
+
+     This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+       PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
+       SYSTEM "http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod"
+
+     Revisions:
+     (none)
+     ....................................................................... -->
+
+<!-- Document Structure
+
+        title, head, body, html
+
+     The Structure Module defines the major structural elements and
+     their attributes.
+
+     Note that the content model of the head element type is redeclared
+     when the Base Module is included in the DTD.
+
+     The parameter entity containing the XML namespace URI value used
+     for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module.
+-->
+
+<!-- title: Document Title ............................. -->
+
+<!-- The title element is not considered part of the flow of text.
+     It should be displayed, for example as the page header or
+     window title. Exactly one title is required per document.
+-->
+
+<!ENTITY % title.element  "INCLUDE" >
+<![%title.element;[
+<!ENTITY % title.content  "( #PCDATA )" >
+<!ENTITY % title.qname  "title" >
+<!ELEMENT %title.qname;  %title.content; >
+<!-- end of title.element -->]]>
+
+<!ENTITY % title.attlist  "INCLUDE" >
+<![%title.attlist;[
+<!ATTLIST %title.qname;
+      %XHTML.xmlns.attrib;
+      %I18n.attrib;
+>
+<!-- end of title.attlist -->]]>
+
+<!-- head: Document Head ............................... -->
+
+<!ENTITY % head.element  "INCLUDE" >
+<![%head.element;[
+<!ENTITY % head.content
+    "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"
+>
+<!ENTITY % head.qname  "head" >
+<!ELEMENT %head.qname;  %head.content; >
+<!-- end of head.element -->]]>
+
+<!ENTITY % head.attlist  "INCLUDE" >
+<![%head.attlist;[
+<!-- reserved for future use with document profiles
+-->
+<!ENTITY % profile.attrib
+     "profile      %URI.datatype;           '%XHTML.profile;'"
+>
+
+<!ATTLIST %head.qname;
+      %XHTML.xmlns.attrib;
+      %I18n.attrib;
+      %profile.attrib;
+>
+<!-- end of head.attlist -->]]>
+
+<!-- body: Document Body ............................... -->
+
+<!ENTITY % body.element  "INCLUDE" >
+<![%body.element;[
+<!ENTITY % body.content
+     "( %Block.mix; )*"
+>
+<!ENTITY % body.qname  "body" >
+<!ELEMENT %body.qname;  %body.content; >
+<!-- end of body.element -->]]>
+
+<!ENTITY % body.attlist  "INCLUDE" >
+<![%body.attlist;[
+<!ATTLIST %body.qname;
+      %Common.attrib;
+>
+<!-- end of body.attlist -->]]>
+
+<!-- html: XHTML Document Element ...................... -->
+
+<!ENTITY % html.element  "INCLUDE" >
+<![%html.element;[
+<!ENTITY % html.content  "( %head.qname;, %body.qname; )" >
+<!ENTITY % html.qname  "html" >
+<!ELEMENT %html.qname;  %html.content; >
+<!-- end of html.element -->]]>
+
+<![%XHTML.xsi.attrs;[
+<!-- define a parameter for the XSI schemaLocation attribute -->
+<!ENTITY % XSI.schemaLocation.attrib
+     "%XSI.pfx;schemaLocation  %URIs.datatype;    #IMPLIED"
+>
+]]>
+<!ENTITY % XSI.schemaLocation.attrib "">
+
+<!ENTITY % html.attlist  "INCLUDE" >
+<![%html.attlist;[
+<!-- version attribute value defined in driver
+-->
+<!ENTITY % XHTML.version.attrib
+     "version      %FPI.datatype;           #FIXED '%XHTML.version;'"
+>
+<!-- schemaLocation attribute from XML Schema
+-->
+<!ENTITY % XSI.schemaLocation.attrib
+     "schemaLocation   %URIs.datatype;      #IMPLIED"
+>
+
+<!-- see the Qualified Names module for information
+     on how to extend XHTML using XML namespaces
+-->
+<!ATTLIST %html.qname;
+      %XHTML.xmlns.attrib;
+      %XSI.schemaLocation.attrib;
+      %XHTML.version.attrib;
+      %I18n.attrib;
+>
+<!-- end of html.attlist -->]]>
+
+<!-- end of xhtml-struct-1.mod -->
+]]>
+
+<!-- end of XHTML 1.1 DTD  ................................................. -->
+<!-- ....................................................................... -->
+
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xhtml1-strict.dtd b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xhtml1-strict.dtd
new file mode 100644
index 0000000..2927b9e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/otjld/xhtml1-strict.dtd
@@ -0,0 +1,978 @@
+<!--
+   Extensible HTML version 1.0 Strict DTD
+
+   This is the same as HTML 4 Strict except for
+   changes due to the differences between XML and SGML.
+
+   Namespace = http://www.w3.org/1999/xhtml
+
+   For further information, see: http://www.w3.org/TR/xhtml1
+
+   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+   All Rights Reserved. 
+
+   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+
+   $Revision: 1.1 $
+   $Date: 2002/08/01 13:56:03 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+   "xhtml-lat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+   "-//W3C//ENTITIES Symbols for XHTML//EN"
+   "xhtml-symbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+   "-//W3C//ENTITIES Special for XHTML//EN"
+   "xhtml-special.ent">
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+    <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+    <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+    <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+    <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+    <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+    <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+    <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+    <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+    <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+    <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+    <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+    <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+    <!-- used for titles etc. -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+    <!-- pixel, percentage, or relative -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+    <!-- comma separated list of lengths -->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+  id       document-wide unique id
+  class    space separated list of classes
+  style    associated style info
+  title    advisory title/amplification
+-->
+<!ENTITY % coreattrs
+ "id          ID             #IMPLIED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED"
+  >
+
+<!-- internationalization attributes
+  lang        language code (backwards compatible)
+  xml:lang    language code (as per XML 1.0 spec)
+  dir         direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #IMPLIED"
+  >
+
+<!-- attributes for common UI events
+  onclick     a pointer button was clicked
+  ondblclick  a pointer button was double clicked
+  onmousedown a pointer button was pressed down
+  onmouseup   a pointer button was released
+  onmousemove a pointer was moved onto the element
+  onmouseout  a pointer was moved away from the element
+  onkeypress  a key was pressed and released
+  onkeydown   a key was pressed down
+  onkeyup     a key was released
+-->
+<!ENTITY % events
+ "onclick     %Script;       #IMPLIED
+  ondblclick  %Script;       #IMPLIED
+  onmousedown %Script;       #IMPLIED
+  onmouseup   %Script;       #IMPLIED
+  onmouseover %Script;       #IMPLIED
+  onmousemove %Script;       #IMPLIED
+  onmouseout  %Script;       #IMPLIED
+  onkeypress  %Script;       #IMPLIED
+  onkeydown   %Script;       #IMPLIED
+  onkeyup     %Script;       #IMPLIED"
+  >
+
+<!-- attributes for elements that can get the focus
+  accesskey   accessibility key character
+  tabindex    position in tabbing order
+  onfocus     the element got the focus
+  onblur      the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey   %Character;    #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED"
+  >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.pre
+   "br | span | bdo | map">
+
+
+<!ENTITY % special
+   "%special.pre; | object | img ">
+
+<!ENTITY % fontstyle "tt | i | b | big | small ">
+
+<!ENTITY % phrase "em | strong | dfn | code | q |
+                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl">
+<!ENTITY % blocktext "pre | hr | blockquote | address">
+
+<!ENTITY % block
+     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
+
+<!ENTITY % Block "(%block; | form | %misc;)*">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">
+
+<!-- pre uses %Inline excluding big, small, sup or sup -->
+
+<!ENTITY % pre.content
+   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
+      | %inline.forms;)*">
+
+<!-- form uses %Block; excluding form -->
+
+<!ENTITY % form.content "(%block; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form and form controls -->
+
+<!ENTITY % button.content
+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+    table | %special; | %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+  %i18n;
+  id          ID             #IMPLIED
+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
+  >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object)*">
+
+<!-- content model is %head.misc; combined with a single
+     title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+     ((title, %head.misc;, (base, %head.misc;)?) |
+      (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+  %i18n;
+  id          ID             #IMPLIED
+  profile     %URI;          #IMPLIED
+  >
+
+<!-- The title element is not considered part of the flow of text.
+       It should be displayed, for example as the page header or
+       window title. Exactly one title is required per document.
+    -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title 
+  %i18n;
+  id          ID             #IMPLIED
+  >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+  href        %URI;          #REQUIRED
+  id          ID             #IMPLIED
+  >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+  %i18n;
+  id          ID             #IMPLIED
+  http-equiv  CDATA          #IMPLIED
+  name        CDATA          #IMPLIED
+  content     CDATA          #REQUIRED
+  scheme      CDATA          #IMPLIED
+  >
+
+<!--
+  Relationship values can be used in principle:
+
+   a) for document specific toolbars/menus when used
+      with the link element in document head e.g.
+        start, contents, previous, next, index, end, help
+   b) to link to a separate style sheet (rel="stylesheet")
+   c) to make a link to a script (rel="script")
+   d) by stylesheets to control how collections of
+      html nodes are rendered into printed documents
+   e) to make a link to a printable version of this document
+      e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+  %attrs;
+  charset     %Charset;      #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  type        %ContentType;  #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  media       %MediaDesc;    #IMPLIED
+  >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+  %i18n;
+  id          ID             #IMPLIED
+  type        %ContentType;  #REQUIRED
+  media       %MediaDesc;    #IMPLIED
+  title       %Text;         #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+  id          ID             #IMPLIED
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #REQUIRED
+  src         %URI;          #IMPLIED
+  defer       (defer)        #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Block;>
+<!ATTLIST noscript
+  %attrs;
+  >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Block;>
+<!ATTLIST body
+  %attrs;
+  onload          %Script;   #IMPLIED
+  onunload        %Script;   #IMPLIED
+  >
+
+<!ELEMENT div %Flow;>  <!-- generic language/style container -->
+<!ATTLIST div
+  %attrs;
+  >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+  %attrs;
+  >
+
+<!--=================== Headings =========================================-->
+
+<!--
+  There are six levels of headings from h1 (the most important)
+  to h6 (the least important).
+-->
+
+<!ELEMENT h1  %Inline;>
+<!ATTLIST h1
+   %attrs;
+   >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+   %attrs;
+   >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+   %attrs;
+   >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+   %attrs;
+   >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+   %attrs;
+   >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+   %attrs;
+   >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+  %attrs;
+  >
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+  %attrs;
+  >
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+  %attrs;
+  >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+  %attrs;
+  >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+  %attrs;
+  >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+  %attrs;
+  >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address %Inline;>
+<!ATTLIST address
+  %attrs;
+  >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+  %attrs;
+  >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+  %attrs;
+  xml:space (preserve) #FIXED 'preserve'
+  >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Block;>
+<!ATTLIST blockquote
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+  ins/del are allowed in block and inline content, but its
+  inappropriate to include block content within an ins element
+  occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+  %attrs;
+  %focus;
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+  %attrs;
+  >
+
+<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+  %coreattrs;
+  %events;
+  lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #REQUIRED
+  >
+
+<!ELEMENT br EMPTY>   <!-- forced line break -->
+<!ATTLIST br
+  %coreattrs;
+  >
+
+<!ELEMENT em %Inline;>   <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;>   <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;>   <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;>   <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;>  <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;>   <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;>   <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;>   <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;>   <!-- inlined quote -->
+<!ATTLIST q
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;>   <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;>   <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;>   <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;>   <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!--==================== Object ======================================-->
+<!--
+  object is used to embed objects as part of HTML pages.
+  param elements should precede other content. Parameters
+  can also be expressed as attribute/value pairs on the
+  object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+  %attrs;
+  declare     (declare)      #IMPLIED
+  classid     %URI;          #IMPLIED
+  codebase    %URI;          #IMPLIED
+  data        %URI;          #IMPLIED
+  type        %ContentType;  #IMPLIED
+  codetype    %ContentType;  #IMPLIED
+  archive     %UriList;      #IMPLIED
+  standby     %Text;         #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  >
+
+<!--
+  param is used to supply a named property value.
+  In XML it would seem natural to follow RDF and support an
+  abbreviated syntax where the param elements are replaced
+  by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  id          ID             #IMPLIED
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  valuetype   (data|ref|object) "data"
+  type        %ContentType;  #IMPLIED
+  >
+
+<!--=================== Images ===========================================-->
+
+<!--
+   To avoid accessibility problems for people who aren't
+   able to see the image, you should provide a text
+   description using the alt and longdesc attributes.
+   In addition, avoid the use of server-side image maps.
+   Note that in this DTD there is no name attribute. That
+   is only available in the transitional and frameset DTD.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+  %attrs;
+  src         %URI;          #REQUIRED
+  alt         %Text;         #REQUIRED
+  longdesc    %URI;          #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  ismap       (ismap)        #IMPLIED
+  >
+
+<!-- usemap points to a map element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+  %i18n;
+  %events;
+  id          ID             #REQUIRED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+  %attrs;
+  %focus;
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  href        %URI;          #IMPLIED
+  nohref      (nohref)       #IMPLIED
+  alt         %Text;         #REQUIRED
+  >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+  %attrs;
+  action      %URI;          #REQUIRED
+  method      (get|post)     "get"
+  enctype     %ContentType;  "application/x-www-form-urlencoded"
+  onsubmit    %Script;       #IMPLIED
+  onreset     %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  accept-charset %Charsets;  #IMPLIED
+  >
+
+<!--
+  Each label must not contain more than ONE field
+  Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+  %attrs;
+  for         IDREF          #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!ENTITY % InputType
+  "(text | password | checkbox |
+    radio | submit | reset |
+    file | hidden | image | button)"
+   >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY>     <!-- form control -->
+<!ATTLIST input
+  %attrs;
+  %focus;
+  type        %InputType;    "text"
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  checked     (checked)      #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  size        CDATA          #IMPLIED
+  maxlength   %Number;       #IMPLIED
+  src         %URI;          #IMPLIED
+  alt         CDATA          #IMPLIED
+  usemap      %URI;          #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  >
+
+<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
+<!ATTLIST select
+  %attrs;
+  name        CDATA          #IMPLIED
+  size        %Number;       #IMPLIED
+  multiple    (multiple)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!ELEMENT optgroup (option)+>   <!-- option group -->
+<!ATTLIST optgroup
+  %attrs;
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #REQUIRED
+  >
+
+<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
+<!ATTLIST option
+  %attrs;
+  selected    (selected)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #IMPLIED
+  value       CDATA          #IMPLIED
+  >
+
+<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
+<!ATTLIST textarea
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  rows        %Number;       #REQUIRED
+  cols        %Number;       #REQUIRED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!--
+  The fieldset element is used to group form fields.
+  Only one legend element should occur in the content
+  and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+  %attrs;
+  >
+
+<!ELEMENT legend %Inline;>     <!-- fieldset label -->
+<!ATTLIST legend
+  %attrs;
+  accesskey   %Character;    #IMPLIED
+  >
+
+<!--
+ Content is %Flow; excluding a, form and form controls
+--> 
+<!ELEMENT button %button.content;>  <!-- push button -->
+<!ATTLIST button
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  type        (button|submit|reset) "submit"
+  disabled    (disabled)     #IMPLIED
+  >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+     "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+  
+<!-- horizontal alignment attributes for cell contents
+
+  char        alignment char, e.g. char=':'
+  charoff     offset for alignment char
+-->
+<!ENTITY % cellhalign
+  "align      (left|center|right|justify|char) #IMPLIED
+   char       %Character;    #IMPLIED
+   charoff    %Length;       #IMPLIED"
+  >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+  "valign     (top|middle|bottom|baseline) #IMPLIED"
+  >
+
+<!ELEMENT table
+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption  %Inline;>
+<!ELEMENT thead    (tr)+>
+<!ELEMENT tfoot    (tr)+>
+<!ELEMENT tbody    (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col      EMPTY>
+<!ELEMENT tr       (th|td)+>
+<!ELEMENT th       %Flow;>
+<!ELEMENT td       %Flow;>
+
+<!ATTLIST table
+  %attrs;
+  summary     %Text;         #IMPLIED
+  width       %Length;       #IMPLIED
+  border      %Pixels;       #IMPLIED
+  frame       %TFrame;       #IMPLIED
+  rules       %TRules;       #IMPLIED
+  cellspacing %Length;       #IMPLIED
+  cellpadding %Length;       #IMPLIED
+  >
+
+<!ATTLIST caption
+  %attrs;
+  >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+    Use thead to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    tbody sections are rendered in scrolling panel.
+
+    Use tfoot to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    tbody sections are rendered in scrolling panel.
+
+    Use multiple tbody sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST thead
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tfoot
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tbody
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tr
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST td
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/outline.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/outline.html
new file mode 100644
index 0000000..3cfaa1b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/outline.html
@@ -0,0 +1,28 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Object Teams Outline</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Object Teams Outline</h1>
+    The <b>Object Teams outline</b> provides the following features
+    (in addition to the features of the standard JDT
+    <a href="/help/topic/org.eclipse.platform.doc.user/concepts/coutline.htm">
+    outline view</a>):
+    <ul>
+	  <li>lists the <b>structural elements</b> of an Object Teams source file, i.e. team
+	  classes, role classes, callin/callout bindings, methods, fields etc.
+	  </li>
+  	  <li>shows <b>Object Teams specific icons</b> for team classes, role classes and method
+  	      bindings<br />
+  	      See the <a href="packageexplorer.html">package explorer</a> for icons and their meaning.
+  	  </li>
+   	</ul>
+	<p>
+	  <img src="images/screenshots/outline.jpg"
+	  	   alt="Object Teams outline view">
+	</p>   	   	       	        
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/packageexplorer.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/packageexplorer.html
new file mode 100644
index 0000000..ccfe173
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/packageexplorer.html
@@ -0,0 +1,103 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Object Teams Package Explorer</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Object Teams Package Explorer</h1>
+    <p>
+    The <b>Object Teams package explorer</b> provides the following features
+    (in addition to the features of the standard JDT
+    <a href="/help/topic/org.eclipse.jdt.doc.user/reference/ref-view-package-explorer.htm">
+    package explorer view</a>):<br>
+    <ul>
+	  <li>Showing the <b>Object Teams element hierarchy</b> of the Object Teams projects in the
+	  workbench including
+	  <ul>
+	  <li><u>specific classes:</u><br />
+	    	&ndash; <b>team</b> class (<img src="../images/team_obj.gif">).<br>
+	    	&ndash; <b>role</b> class (<img src="../images/role_obj.png">).<br>
+	  	  	&ndash; a <b>nested team</b> (<img src="../images/team_role_obj.gif">) is a role as well as a team.
+	  	  	</li>
+	  <li><u>role class decorations:</u><br>
+	  		&ndash; <b>bound role</b> class (<span><img style="position:relative;left:0px;" src="../images/role_obj.png"><img style="position:relative;left:-2px;top:-4px;" src="../images/boundrole_co.gif"></span>)
+	  		&mdash; <em>has a <code class="keyword">playedBy</code> declaration.</em>
+	  		<br>
+	  		&ndash; <b>overriding role</b> class (<span><img style="position:relative;left:0px;" src="../images/role_obj.png"><img style="position:relative;left:-2px;top:4px;" src="../images/over_co_ovr16.gif"></span>)
+	  		&mdash <em>overrides a role from the super team</em><br>
+	  <li><u>methods:</u><br />
+	  	    &ndash; <b>callin</b> methods are marked with a decoration <img src="../images/callinmethod_co.gif">.
+	  	    </li>
+	  <li><u>method bindings:</u><br />
+	  		&ndash; <b>callin</b>: before(<img src="../images/callinbindingbefore_obj.gif">), 
+	  		after (<img src="../images/callinbindingafter_obj.gif">), replace (<img src="../images/callinbindingreplace_obj.gif">)
+	  		<br />
+	  		&ndash; <b>callout</b>: (<img src="../images/calloutbinding_obj.gif">)
+	  		</li>
+	  <li><u>guard predicates:</u><br>
+	  		&ndash; <b>regular guard</b> (<img src="../images/guard_obj.gif">)<br>
+	  		&ndash; <b>base guard</b> (<img src="../images/baseguard_obj.gif">)<br>
+   	  </ul>
+   	  <li>Displaying <b>Role Files</b> physically/logically (<img src="../images/external_roles.gif">):
+   	  	<ul>
+		<li><b>Physical</b> display uses the file and directory structure, i.e., 
+   	     role files will appear in a special folder/package representing the enclosing team.</li>
+   	    <li><b>Logical</b> display presents role files and inline roles uniformly as direct
+   	     children of their enclosing team.</li>
+   	    </ul>
+   	  <li><b>Overlay icons</b> for <b>compilations units</b> (team or role file) 
+   	     and <b>packages</b> (team package) can be enabled by checking
+		 <span class="ui">Preferences-&gt;General-&gt;Appearance-&gt;Label Decorations-&gt;Java Type Indicator</span>.
+		 <ul>
+		 <li><u>compilation unit:</u><br>
+		 	&ndash holding a team class (<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_ovr.gif"></span>)<br>
+		 	&ndash holding a role class (<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/role_ovr.png"></span> or 
+		 	<span><img style="position:relative;left:0px;" src="../images/jcu_obj.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_role_ovr.gif"></span>)</li>
+		 <li><u>package:</u><br>
+		 	&ndash team package  (<span><img style="position:relative;left:0px;" src="../images/package.gif"><img style="position:relative;left:-7px;top:-5px;" src="../images/team_ovr.gif"></span>)
+		 </ul>
+   	</ul>
+    </p>
+    <table>
+    <tr><td>
+    	<p><u><b>Physical view:</b></u><br>
+    		role file <code>FlightBonusDialog</code> is displayed as
+    		a child of its team package.
+    	</p>
+    	  <img src="images/screenshots/packageExplorer.png"
+	  	   alt="Object Teams package explorer view">
+    </td><td><span style="width=20px;">&nbsp;</span></td><td>
+		<p><u><b>Logical view:</b></u><br>
+			role <code>FlightBonusDialog</code> is displayed as
+			a child of its enclosing team class.
+		</p>
+		  <img src="images/screenshots/packageExplorer_logical.png"
+	  	 	alt="Object Teams package explorer logical view">
+   
+	</td></tr></table>
+	<h2>Aspect bindings in Object Teams Plug-in projects</h2>
+	<p>
+	If an Object Teams Plug-in project has 
+	<a href="../reference/extension-points/org_objectteams_otequinox_aspectBindings.html">aspect bindings</a> 
+	these will be displayed in the package explorer directly under the project's root:
+	</p><p>
+		<img src="images/screenshots/AspectBindingsInPackageExplorer.png" title="Package explorer showing aspect bindings"/>
+	</p><p>
+	Below the node called <span class="ui">OT/Equinox Aspect Bindings</span> you will find the list of all <img src="../images/plugin_obj.gif"/> <strong>base plug-ins</strong>
+	adapted by the given OT plug-in. Each base plug-in in turn lists all <img src="../images/team_obj.gif"/> <strong>teams</strong> that implement this adaptation.<br/>
+	Base plug-ins to which <strong>forced exports</strong> are applied are decorated with a little up-and-left arrow:
+	</p><p>
+		<img alt="Decoration for base plug-in with forced export" src="images/screenshots/ForcedExports.png">
+	</p><p>
+	Double clicking a base plugin or a team shows the corresponding element in an editor:
+	<ul>
+	<li>a base plugin as sub-element of an aspectBinding extension in the PDE's extension editor.</li>
+	<li>a team class in the source code editor</li>
+	</ul>
+	</p>
+	
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/perspective.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/perspective.html
new file mode 100644
index 0000000..5a074bc
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/perspective.html
@@ -0,0 +1,42 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Object Teams perspective</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <style type="text/css">
+      h2 {color: blue}
+    </style>    
+  </head>
+  <body>
+    <h1>Object Teams perspective</h1>
+    The <b>Object Teams perspective</b> combines views that you use while
+    editing OT/J source files (see
+    <a href="/help/topic/org.eclipse.platform.doc.user/concepts/concepts-4.htm">
+    perspectives</a>).
+    <h2>Opening the Object Teams perspective</h2>
+    To open the Object Teams perspective:
+    <ol>
+      <li>Click the <b>Open Perspective</b> button on the shortcut bar on the left side of
+          the Workbench window or select <b>Window > Open Perspective </b> from the
+          Workbench window menu bar.</li>
+      <li>To see a complete list of perspectives, select <b>Other...</b> from the drop-down
+          menu.
+      </li>
+      <li>Select the "Object Teams" perspective.</li>
+    </ol>
+    <p>When the perspective opens, the title bar of the window changes to display the name
+    of the perspective (i.e. Object Teams). In addition, an icon is added to the shortcut
+    bar, allowing you to quickly switch back to that perspective from other perspectives in
+    the same window.
+	<p>
+	  <img src="images/screenshots/perspective.png" width=285 height=63
+	  	   alt="Object Teams icon in shortcut bar"<br>
+      Object Teams icon in the shortcut bar ("Show text" disabled).
+    </p>
+    <p>By default, a perspective will open in the same window. If you would rather it opened
+	in a new window, change the setting in <b>Window > Preferences > Workbench > Perspectives
+	</b>.
+	</p>
+  </body>
+</html>  
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/project.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/project.html
new file mode 100644
index 0000000..d384fda
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/project.html
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Object Teams project creation</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <style type="text/css">
+      h2 {color: blue}
+    </style>    
+  </head>
+  <body>
+    <h1>Object Teams project creation</h1>
+    <h2>Opening the project wizard</h2>
+    <p>The easiest way to create a new Object Teams project is to use the Object Teams
+    project wizard. The project wizard selection dialog can be opened either by selecting
+    <b>File > New > Project...</b> from the main workbench window or by selecting
+    <b>New > Project...</b> from the package explorer's pop-up menu or by selecting
+    <b>Project...</b> from the drop-down menu on the <b>New</b> button in the workbench
+    toolbar. Afterwards the wizard for creating an Object Teams project has to be chosen.
+    </p>
+ 
+    <h2>Define settings</h2>
+    <p>On the first page of the project wizard the name of the project has to be entered.
+    On the second and last page the standard Java build settings can be defined as desired
+    (source folder, output folder, libraries etc.).
+    </p>
+ 
+    <h2>Resulting effects</h2>
+    <p>After all information has been entered the project with the chosen name will be created,
+    the files <i>.classpath</i> and <i>.project</i> will be created and the tree view in the
+    package explorer will be updated and the new project displayed.
+    </p>
+	<p>
+	  <img src="images/screenshots/projectWizard.jpg"
+	  	   alt="Object Teams project wizard">
+	</p>    
+	<h2>OT/Equinox: Plug-in project</h2>
+	<p>
+	If the project is to develop an Eclipse plug-in using Object Teams (OT/Equinox) choose
+	the wizard for "Object Teams Plugin Project". This wizard is a variant of the regular
+	"Plug-in Project" wizard.
+	</p>
+	<h1>Adding Object Teams support to an existing project</h1>
+	<p>
+	Alternatively, if you already have a valid Java project or Plug-in project, you may
+	add Object Teams support using the project's context menu <span class="ui">Configure &gt; Add Object Teams support</span>.
+	</p>
+	<img src="images/screenshots/addOTNature.png" alt="Add Object Teams support menu option"/>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/quickfix.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/quickfix.html
new file mode 100644
index 0000000..dc26cc6
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/quickfix.html
@@ -0,0 +1,65 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>OT/J content/code assist</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>	
+	<h1 align="center">OT/J quick fixes</h1>
+	<u>Specific <a href="/help/topic/org.eclipse.jdt.doc.user/reference/ref-java-editor-quickfix.htm">quick fixes</a> are available for mending OT/J-related problems, including:</u>
+	<dl>
+	<dt>class modifiers
+	<dd>
+	 &ndash; missing <code class="keyword">team</code> modifier,<br />
+	 &ndash; illegal modifier for a role,<br />
+	 &ndash; reducing the visibility from an (explicitly or implicitly) inherited role,<br />
+	 &ndash; abstract relevant role (<a href="otjld/def/s2.html#s2.5.b"><img src="../icons/ot_paragraph.gif"> 2.5(b)</a>).
+	<dt>modifiers of methods and method bindings
+	<dd>
+	 &ndash; mismatch between a method's <code class="keyword">callin</code> modifier and a callin binding's modifier (<code class="keyword">before/after/replace</code>),<br />
+	 &ndash; static/non-static incompatibility in a callin replace binding,<br />
+	 &ndash; mismatching override of callin vs. regular role methods (<a href="otjld/def/s4.html#s4.2.d"><img src="../icons/ot_paragraph.gif"> 4.2(d)</a>),<br />
+	 &ndash; missing callin binding modifier (<code class="keyword">before/after/replace</code>).<br />
+	 &ndash; wrong callout token (<code class="keyword">-&gt;</code> vs. <code class="keyword">=&gt;</code>, <a href="otjld/def/s3.html#s3.1.e"><img src="../icons/ot_paragraph.gif"> 3.1(e)</a>).<br />
+	 &ndash; insufficient visibility of a role method / constructor / field.<br />
+	 &ndash; also insufficient visibility of a shorthand callout binding can be fixed be prepending a visibility modifier (protected or public, see <a href="otjld/def/s3.html#s3.1.i"><img src="../icons/ot_paragraph.gif"> 3.1(i)</a>).<br />
+	<dt>inferred callout
+	<dd>&ndash; materializing inferred callout bindings (<a href="otjld/def/s3.html#s3.1.j"><img src="../icons/ot_paragraph.gif"> 3.1(j)</a>, <a href="otjld/def/s3.html#s3.5.h"><img src="../icons/ot_paragraph.gif"> 3.5(h)</a>)
+	<dt>callin precedence
+	<dd>&ndash; missing callin precedence declaration (<a href="otjld/def/s4.html#s4.8"><img src="../icons/ot_paragraph.gif"> 4.8</a>).
+	<dt>typing
+	<dd>
+	 &ndash; add a missing anchor for the type of an externalized role 
+	(<a href="otjld/def/s1.html#s1.2.2"><img src="../icons/ot_paragraph.gif"> 1.2.2</a>, <a href="otjld/def/s9.html#s9.2"><img src="../icons/ot_paragraph.gif"> 9.2</a>)
+	 (proposals are infered from the context),<br />
+	 &ndash; adding missing <code class="keyword">final</code> modifier to a variable used as a type anchor, <br />
+	 &ndash; adding required type parameter to a callin binding capturing covariant base methods (<a href="otjld/def/s4.html#s4.9.3"><img src="../icons/ot_paragraph.gif"> 4.9.3</a>).
+	 
+	<dt>role files
+	<dd>
+	  &ndash; adding <code>@role</code> javadoc tags referring to a team's role files (<a href="otjld/def/s1.html#s1.2.5.d"><img src="../icons/ot_paragraph.gif"> 1.2.5.d</a>).
+	<dt>coding style
+	<dd>
+	  &ndash; change import to "<code class="keyword">import <strong>base</strong></code> ...", (<a href="otjld/def/s2.html#s2.1.2.d"><img src="../icons/ot_paragraph.gif"> 2.1.2(d)</a>)<br/>
+	  &ndash; change qualified reference to a role's base class to using a simple name and "<code class="keyword">import <strong>base</strong></code> ...", <br/>
+	  &ndash; migrate syntax for externalized role from "<code>anchor.R</code>" to "<code>R&lt;@anchor&gt;</code>" (<a href="otjld/def/s1.html#s1.2.2.b"><img src="../icons/ot_paragraph.gif"> 1.2.2(b)</a>).<br/>
+	  &ndash; adding a missing <code>@Override</code> annotation to a role class that overrides a corresponding role from the super team (<a href="otjld/def/s1.html#s1.3.1.c"><img src="../icons/ot_paragraph.gif"> 1.3.1(c)</a>).<br />
+	  &ndash; adding a missing <code>@Override</code> annotation to a role method that overrides a corresponding method from the implicit super role.<br />
+	</dl>
+	
+	<u>Additionally, some standard Java quickfixes and content assists have been extended to be applicable for OT/J elements, too.</u>
+	<dl>
+	<dt>suppress warnings
+	<dd>&ndash; <code style="color:#505050;">@SuppressWarnings</code> annotations can be added to method bindings, too.
+	<dt>create method
+	<dd>&ndash; applies to unresolved method specs in callout/callin bindings, too.<br />
+	    &ndash; generate inherited abstract methods also respects implicit inheritance.
+	<dt>organize imports
+	<dd>&ndash; creates "<code class="keyword">import <strong>base</strong></code> ...", if appropriate
+	<dt><em>and more..</em>
+	</dl>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/refactoring.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/refactoring.html
new file mode 100644
index 0000000..b765934
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/refactoring.html
@@ -0,0 +1,32 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Refactoring Object Teams programs</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+	<h1>Refactoring Object Teams programs</h1>
+	<p style="margin:20px;"><em><u>Note:</u> 
+	The extended refactoring support has been developed based on Eclipse 3.0. 
+	Some of this functionality has not yet been ported to Eclipse 3.5 and thus is not yet available in OTDT 1.3.0.<br>
+	Work is underway to integrate even more complete refactoring support later in the 1.3 cycle.
+	</em></p>
+	<p>Significant work has been put into supporting the automated refactoring of OT/J code.
+The following refactorings take into account the Object Teams-specific 
+relationships (implicit role inheritance, team nesting, role-base bindings and method 
+bindings).
+<ul>
+<li>Extract Method
+<li>Move Method
+<li>Rename Method
+<li>Rename Project
+<li>Rename Source folder
+<li>Rename Field
+</ul>
+The Rename Package refactoring is also available, with the only limitation
+that you cannot rename team-packages. The Rename Type refactoring does not
+yet support role files (<a href="otjld/def/s1.html#s1.2.5"><img width="15" border="0" src="../images/ot_paragraph.gif"> 1.2.5</a>).
+    </p>	
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/running.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/running.html
new file mode 100644
index 0000000..d9ec728
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/running.html
@@ -0,0 +1,84 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Running Object Teams programs</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Running Object Teams programs</h1>
+    <p>
+    Technically running an Object Teams program involves a special runtime enviroment 
+    (the <strong>OTRE - Object Teams Runtime Environment</strong>) which provides fundamental classes
+    and performs load-time weaving for connecting aspects with their bases.
+    All this is hidden as to make running Object Teams programs as easy as running Java programs.
+    </p>
+    <p style="margin-left:20px;margin-right:40px;font-style:italic;">
+    The OT/J specific launch types (<img src="../images/otj_launch.gif"  valign="absmiddle"> Object Teams Application, <img src="../images/ote_launch.gif" valign="absmiddle"> Object Teams Eclipse Application <img src="../images/ote_osgi_launch.gif" valign="absmiddle"> OT/Equinox Framework) are no longer needed and are gradually being faded out. 
+    </p>
+    <p>
+    For launching OT/J programs use any of the launching techniques offered by Eclipse:
+    You may, e.g., invoke a <span class="ui">Run As</span>/<span class="ui">Debug As</span> option
+    from a context menu or use one of the run/debug tool bar buttons.
+    From here just select one of the standard launch configuration types: 
+    <ul>
+    <li><a href="#JavaApp"><img src="images/java_app.gif" valing="absmiddle"> Java Application</a></li> 
+    <li><a href="#RemoteJavaApp"><img src="images/java_attach.gif" valing="absmiddle"> Remote Java Application</a></li> 
+    <li><a href="#JavaApp"><img src="images/julaunch.gif" valing="absmiddle"> JUnit</a></li>
+    <li><a href="#Plugin"><img src="images/julaunchpgn.gif" valing="absmiddle"> JUnit Plug-in Test</a></li>
+    <li><a href="#Plugin"><img src="images/eclipse_launcher.gif" valing="absmiddle"> Eclipse Application</a></li>
+    <li><a href="#OSGi"><img src="images/bundle_obj.gif" valing="absmiddle"> OSGi Framework</a></li>
+    </ul>
+    All these launches now consistently provide one additional checkbox, which is shown next to where the Runtime JRE is configured.
+    </p>
+  
+  <p style="margin-top:30px;"><a name="JavaApp"/>
+    For <strong>Java Applications</strong> (<img src="images/java_app.gif" valing="absmiddle">, <img src="images/julaunch.gif" valing="absmiddle">) this checkbox is found on the <img src="images/library_obj.gif"><code>JRE</code> tab:
+  </p>
+    <p><img src="images/screenshots/JRETab.png"></p>
+    <ul>
+    <li style="margin-bottom:7px;">If the new option is checked the application will be launched with the Object Teams Runtime Environment (OTRE) enabled which is needed to weave callin bindings into base classes. Conversely, disabling the OTRE lets you run an OT/J application with all callin-bindings disabled. But note that a few more OT/J mechanisms will not work either (like decapsulation).</li>
+    <li style="margin-bottom:7px;">For OT/J projects this option is enabled by default.</li>
+    <li style="margin-bottom:7px;">If <span class="ui">Enable OTRE</span> is checked an additional <a href="#activation"><img valing="absmiddle" src="../images/team_obj.gif"><code>Team Activation</code> tab</a> will be shown.<br>
+    <i>(If a launch configuration was opened while the OTRE was disabled, you need to re-open this configuration (e.g., unselect and select) in order for the new tab to show.)</i></li>
+    <li>Additionally, the check box <span class="ui">Java 5 JPLIS Launching</span> lets you select between two technologies (JMangler vs. JPLIS),
+    	by which the OTRE is hooked into the JVM. The newer option JPLIS has graduated from experimental status and its use is now encouraged.
+    </ul>
+  </p>
+  
+  <p style="margin-top:30px;"><a name="RemoteJavaApp"/>
+    For <strong>Remote Debugging</strong> of a java applications</strong> (<img src="images/java_attach.gif" valing="absmiddle">) this checkbox is found on the <img src="images/disconnect_co.gif"><code>Connect</code> tab:
+  </p>
+    <p><img alt="Remote Debugging" src="images/screenshots/RemoteDebugging.png" /></p>
+  
+  <p style="margin-top:30px;"><a name="Plugin">
+    For launching a <strong>Runtime Workbench</strong> (<img src="images/julaunchpgn.gif" valing="absmiddle">, <img src="images/eclipse_launcher.gif" valing="absmiddle">) the new checkbox is right on the main page:
+    </p>
+    <p><img src="images/screenshots/RuntimeWorkbenchMainTab.png">
+  </p>
+  <p style="margin-top:30px;"><a name="OSGi">
+    For <strong>OSGi Framework</strong> launches (<img src="images/bundle_obj.gif" valing="absmiddle">) the runtime environment is configured on the <code>Settings</code> tab:
+    </p>
+    <p><img src="images/screenshots/OSGiLaunchSettings.png"></p></td></tr>
+  
+
+    <h2><a name="activation">Team activation:</a></h2>
+    <p>
+    I you wish to compose your program from a base application and a number of aspects, 
+    you may use a launch configuration to select which aspects should be included.
+    Use the tab <b><img src="../images/team_obj.gif">Team Activation</b>
+    to select existing teams and put them into the desired order.
+	</p><p>
+	The effect is that each team in the list will be instantiated and activated before
+	the main method of the program executes. This can actually be observed if <span class="ui">Stop in main</span>
+	is checked for debugging: the program will actually stop <i>before</i> entering main, the next step
+	will perform all pending team instantiations/activations and only then the program starts
+	(You might want to use the <a href="teammonitor.html">team monitor</a> to observe
+	team instantiation/activation).
+	</p>
+	<p>Since a team can intercept method calls in a base application simply adding a team to
+	an existing application can indeed produce different behavior.
+	</p>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/stepping.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/stepping.html
new file mode 100644
index 0000000..b701c7b
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/stepping.html
@@ -0,0 +1,149 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+	<style type="text/css">
+.high { background-color:#fff0c8;color:black; }
+.pale { color:#b6b6d1; }
+.caption { text-decoration:underline; vertical-align:top;position:relative;top:20px; margin-top:10px;}
+	</style>
+    <title>Debugging OT/J programs - Team Monitor View</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Stepping through OT/J code</h1>
+    The byte code into which OT/J programs are translated has some significant differences
+    to the original source code. In order to hide some generated code and to provide
+    convenient stepping even through declarative method bindings, the debug view has
+    been enhanced for OT/J.
+    <h2>Filtering infrastructure code</h2>
+    <p>
+    By default the debugger is configured to filter certain packages in order to hide
+    the Object Teams Runtime Environment (OTRE) and its libraries. This means that
+    the debugger will not show stack frames corresponding to the OTRE while stepping
+    through code. This filtering can be disabled on the preference page at <code class="high">Object&nbsp;Teams&nbsp;&mdash;&nbsp;Debug</code>
+    </p>
+    <a name="prefs"><img src="images/screenshots/debug_prefs_filtering.png" /></a>
+    <h2>Callin bindings</h2>
+    <p>
+    In order to realize the runtime dispatch for callin bindings, additional dispatch
+    code is generated and woven into the byte code of bound base classes. 
+    Most of this dispatch code is hidden by the debugger,
+    but an abstract view of it is presented
+    in order to support different paths of stepping into/through/over callin bindings.
+    </p>
+    <p>
+    Typical stepping paths will be explained using the example <code>OTSample-Flightbonus</code>
+    which can be installed using the wizard at 
+    <code><ul><li>New...<ul><li>Other... <ul><li>Code Samples</li></ul></li></ul></li></ul></code>
+    </p>
+  <p>
+    After the example has been installed and configured for running with the team
+    <code>GUIConnector</code> activated (see the example's documentation), 
+    assume a new passenger has been registered and subscribed for the bonus system.
+    Also assume a <img src="images/brkp_obj.gif"/>line breakpoint has been set somewhere in method <code>Segment#book()</code>.
+    When the lastly added passenger books a flight, this line breakpoint is triggered.
+  </p>
+  <table>
+  <tr><td colspan=2>
+    From here on stepping proceeds as follows:
+    <ul>
+    <li style="list-style-image: url('images/stepover_co.gif');"> Step (<b>F6</b>) out of method <code>book()</code> until the debugger jumps to the top of the current method <code>book(Passenger)</code>:</li>
+    </ul>
+  <tr><td class="caption">Hitting callin dispatch: <td><img src="images/screenshots/stack_hit_callin.png" />
+    
+  <tr><td colspan=2>
+    At this point the debug view signals that some dispatch is pending for method <code>book</code>. A few words on what you see in this picture:
+    <ul>
+    <li>The current stack frame says <code class="high">{{Dispatch callins for book}}</code>, at what time the list of currently active teams is investigated.<br>
+      This stack frame is drawn in a <span class="pale">pale color</span> (unless <span class="high">highlighted</span>) to visualize that this is generated code.<br> 
+      If multiple teams are active that have interest in this method, the generated dispatch code will be invoked recursively,
+      causing multiple stack frames to show up in the debug view.</li>
+    <li>Below you see another pale stack frame saying <code class="high">[about to enter]</code>. This stack frame contains no interesting code
+      and can safely be ignored.</li>
+    <li>The highlighted line in the editor has a <a href="callinmarker.html">callin marker</a> (<img src="../images/callinbinding_obj.gif">) associated, hinting at the callin bindings that are about to fire 
+        (see also the hover of this line's annotations).</li>
+    </ul>
+    You now have two options:
+    <ul>
+    <li style="list-style-image: url('images/stepreturn_co.gif');">If at this point <b>F7</b> is pressed the debugger skips over all dispatching and
+    proceeds in the base program.</li>
+    <li style="list-style-image: url('images/stepinto_co.gif');">By pressing <b>F5</b> you <i>enter</i> the current callin binding:
+    </ul>
+  
+  <tr><td class="caption">Entering a callin binding: <td><img src="images/screenshots/stack_entered_callin.png" />
+    
+  <tr><td colspan=2>
+    Now the debug view displays a new
+    faked stack frame labeled with the callin binding: <code class="high">[Item.earnCredit&lt;-book]</code>.
+    <ul>
+    <li style="list-style-image: url('images/stepinto_co.gif');">The next <b>F5</b> takes you to the lifting translation (this step is missing if dispatching to a static role method).</li>
+    </ul><br />
+
+  <tr><td class="caption">Lifting: <td><img src="images/screenshots/stack_lifting.png" />
+
+  <tr><td colspan=2>
+    The above screenshot shows the debugger while a lifting translation is pending. 
+    The Debug view signals this by the faked stack frame labeled <code class="high">{{Lift&nbsp;to&nbsp;Item}}</code>.<br>
+    Since no real source code exists for the lifting method the editor highlights the 
+    <code class="keyword">playedBy</code> declaration from the class header.<br>
+    This declaration tells you that the current lifting operation will translate a <code>Segment</code>
+    into an <code>Item</code>.
+    You'll normally want to just leave the lifting method:
+    <ol>
+    <li style="list-style-image: url('images/stepreturn_co.gif');"><b>F7</b> (or F6) takes you out off the lifting method and back to the callin binding.
+    <li style="list-style-image: url('images/stepinto_co.gif');"><a name="abouttoentermethod">Once more pressing <b>F5</b></a> finally steps into the bound role method.<br>
+    	If a guard predicate were present, the guard would be entered here, before finally proceeding to the role method.<br>
+    	Of course, entering a guard predicate can be skipped by pressing F6 at that point.
+    </ol>
+
+  <tr><td class="caption">Entering the role method: <td><img src="images/screenshots/stack_entered_earnCredit.png" />
+  <tr><td colspan=2>
+  	At this point you're back in a normal Java method (role method), just the pale and green stack frames tell you
+  	that you haven't entered this method via a normal method call but via callin dispatch.<br>
+  	If we would be looking at a callin method with a base call, stepping into that base call
+  	would also trigger some dispatch before either stepping into the original base method
+  	or proceeding with dispatching to other pending callin bindings.</td></tr>
+  </table>
+  <h2>Stack frame coloring</h2>
+  In the above screenshots you see some stack frames printed in colors. 
+  While the exact colors to use can be configured in the preference page shown <a href="#prefs">above</a>,
+  the meaning of colors is as follows:
+  <dl>
+  <dt style="color:#B6B6D1;">light purple
+  <dd>Dispatch code with no direct correspondence in the source code.</dd>
+  <dt style="color:#189810;">green</span>
+  <dd>Callin binding declarations and base-calls &ndash; each green stack frame signals a crossing of a team boundary.</dd>
+  </dl>
+  <h2><a name="configure"></a>Configuring the callin stepping behavior</h2>
+  <p>
+  In the above scenario the debugger stops at several locations where the current stack frame says: <code class="pale">{{Dispatching callins for book}}</code>.<br>
+  All these locations can be configured such that the debugger will automatically step into the next action.<br>
+  Looking again at the preference page <code class="high">Object Teams &mdash; Debug</code>:
+  </p>
+  <img src="images/screenshots/debug_prefs_callin_stepping.png" />
+  <p>
+  The highlighted section of this preference page shows three options, each of which represents a particular kind of dispatching situation:
+  <dl>
+  <dt>Pending dispatch to the callin binding:</dt>
+  	<dd>The next step-into will take you to a callin method binding, because an active team instance claims interest in the control flow.<br>
+  	At this stage the appropriate team instance has already been selected, however, guard predicates may still cancel dispatch to the role method.</dd> 
+  <dt>Pending recursive dispatch:</dt>
+  	<dd>The next step-into will take you into the next recursion of the current dispatch method.<br>
+  	This is relevant mostly if you want to analyze how multiple teams that affect the same base method are scheduled.<br>
+  	When enabling the display of OT/J internal variables you may inspect the internal iterator of team instances (an array of teams plus an index into the array).</dd> 
+  <dt>Pending call to the original base method</dt>
+  	<dd>This signifies the final iteration of the dispatch code at what point the original method will be entered by the next step-into.</br>
+  	This stage can, e.g., be reached when a <code class="keyword">callin</code> method has issued a base-call.<br>
+  	Instead of directly entering the base method, the dispatch code needs to take over,
+  	because more team instances might be waiting to receive the control.</dd>
+  </dl>
+  By default all of these pending actions are visualized as mentioned.<br>
+  Disabling any of the check boxes causes the  debugger to skip the corresponding step and automatically step into the pending method.<br>
+  In this mode debugging may be faster,  because fewer steps are needed, but the execution may jump to unpredicted locations.<br>
+  If the scheduling of perhaps multiple active teams needs investigation, the more verbose modes might be of more help.
+  </p>
+  </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/syntaxhighlight.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/syntaxhighlight.html
new file mode 100644
index 0000000..b04a679
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/syntaxhighlight.html
@@ -0,0 +1,18 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otjld/css/ot.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>OT/J syntax highlighting</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>OT/J syntax highlighting</h1>
+	<p>In addition to the <b>syntax highlighting</b> for standard Java keywords and
+	modifiers incorporated in the <a href="/help/topic/org.eclipse.jdt.doc.user/concepts/concepts-7.htm">Java editor</a>,
+	the new Object Teams specific keywords and modifiers like <code class="keyword">team, playedBy, callin,
+	base, within</code> etc. are also highlighted for better accentuation and clearness.
+	</p>
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/teammonitor.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/teammonitor.html
new file mode 100644
index 0000000..16c273e
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/teammonitor.html
@@ -0,0 +1,42 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+	<link rel=stylesheet type="text/css" href="otguide.css">
+    <title>Debugging OT/J programs - Team Monitor View</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Team Monitor View</h1>
+    <p>
+    A special view exists for monitoring which team instances have been created and whether each 
+    of them is currently active or not. When debugging callin bindings which do not trigger while
+    they are intended to do so, the team monitor should provide first help to find out whether
+    there is any active instance of the team being considered. If no active instance exists,
+    callins can not trigger.
+    </p>
+    <img src="images/screenshots/team_monitor_marked.png" />
+    <p>
+    The team monitor view is a variant of the variables view with the following features:
+    <ul>
+    <li>Display all instances of all teams in the system.
+    <li>Display the activation state of each team instance as one of
+        <br /><img src="images/team_inact.gif"> a team instance in not active (for the current thread, if one is selected)
+        <br /><img src="images/team_act.gif"> a team instance is active, either globally or for the
+            thread selected in the debug view
+        <br /><img src="images/team_act_implicit.gif"> a team instance is implicitly active due to executing a team or role method.
+    <li>Change the activation state of a team using the context menu (<span class="ui">Activate Team</span> or <span class="ui">Deactivate Team</span>).<br />
+        This operation affects the currently selected thread. If global (de)activation should be 
+        achieved, select the debug target (<img src="images/debugt_obj.gif"/>) instead of any individual thread.
+    <li>Inspect fields of a team instance or perform any operation inherited from the <a href="debugging.html#variables">variables view</a>.<br/>
+    	Note, that filtering of OT/J Internal Variables is also supported (and enabled by default).
+    </ul>
+    <i>Note that teams may only appear if a thread is currently suspended. If teams are visible while
+    all threads are running, the <span class="ui">Activate Team</span> or <span class="ui">Deactivate Team</span> options
+    cannot be performed.
+    </p>
+    <p><u>Technical note:</u> When debugging an Eclipse application or OSGi fragment with OT/Equinox enabled,
+    	the team monitor can only work if an open Object Teams Plug-in Project can be found in the workspace.
+    	If this requirement is not met a corresponding warning will be logged.</p> 
+  </body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/toc.xml b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/toc.xml
new file mode 100644
index 0000000..6b9cc40
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/toc.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+<?eclipse version="3.0"?>
+
+<toc label="Object Teams Development User Guide">
+	<topic label="Object Teams Development Tooling (OTDT)" href="guide/develop.html">
+   		<topic label="OTDT Features" href="guide/features.html"/>
+		<topic label="Object Teams perspective" href="guide/perspective.html"/>
+		<topic label="Object Teams project creation" href="guide/project.html"/>
+		<topic label="Team and role creation wizards" href="guide/wizards.html"/>
+		<topic label="Java editor with Object Teams capability" href="guide/editor.html">
+			<topic label="OT/J syntax highlighting" href="guide/syntaxhighlight.html"/>
+			<topic label="OT/J content/code assist" href="guide/contentassist.html">
+				<topic label="OT/J code completion" href="guide/completion.html"/>
+				<topic label="OT/J quick fixes" href="guide/quickfix.html"/>
+			</topic>
+			<topic label="Binding markers" href="guide/callinmarker.html"/>
+		</topic>
+		<topic label="Object Teams structural/navigational views" href="guide/views.html">
+			<topic label="OT/J package explorer" href="guide/packageexplorer.html"/>
+			<topic label="OT/J outline" href="guide/outline.html"/>
+			<topic label="OT/J type hierarchy" href="guide/typehierarchy.html"/>
+   			<topic href="guide/callhierarchy.html" label="Call hierarchy extended for OT/J">
+   </topic>
+		</topic>
+		<topic label="Compiling Object Teams programs" href="guide/compilation.html">
+			<topic label="Java builder extended for Object Teams" href="guide/builder.html"/>
+		</topic>
+		<topic label="Running Object Teams programs" href="guide/running.html"/>
+		<topic label="Debugging Object Teams programs" href="guide/debugging.html">
+			<topic label="Team monitor view" href="guide/teammonitor.html"/>
+			<topic label="Stepping through OT/J code" href="guide/stepping.html"/>
+		</topic>
+		<topic label="Refactoring Object Teams programs" href="guide/refactoring.html"/>
+	</topic>
+	<topic label="Object Teams Language Definition" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/index.html">
+		<topic label="Teams and Roles" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s1.html"/>
+		<topic label="Role Binding" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s2.html"/>
+		<topic label="Callout Binding" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s3.html"/>
+		<topic label="Callin Binding" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s4.html"/>
+		<topic label="Team Activation" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s5.html"/>
+		<topic label="Object Teams API" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s6.html"/>
+		<topic label="Role Encapsulation" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s7.html"/>
+		<topic label="Value Dependent Classes" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/s9.html"/>
+		<topic label="OT/J Syntax" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sA.html"/>
+		<topic label="Changes between versions" href="/org.eclipse.objectteams.otdt.ui.help/guide/otjld/def/sB.html"/>
+	</topic>
+	<topic label="OT/Equinox Extension Points Reference">
+	 	<topic label="org.eclipse.objectteams.otequinox.aspectBindings" href="/org.eclipse.objectteams.otdt.ui.help/reference/extension-points/org_objectteams_otequinox_aspectBindings.html"/>
+	 	<topic label="org.eclipse.objectteams.otequinox.aspectBindingNegotiators" href="/org.eclipse.objectteams.otdt.ui.help/reference/extension-points/org_objectteams_otequinox_aspectBindingNegotiators.html"/>
+	</topic>
+</toc>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/typehierarchy.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/typehierarchy.html
new file mode 100644
index 0000000..5b7aa28
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/typehierarchy.html
@@ -0,0 +1,61 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Object Teams Type Hierarchy</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <style type="text/css">
+      h2 {color: blue}
+      h3 {color: green}
+    </style>
+  </head>
+  <body>
+    <h1>Object Teams Type Hierarchy</h1>
+   	The <b>Object Teams type hierarchy</b> provides the following features
+    (in addition to the features of the standard JDT
+    <a href="/help/topic/org.eclipse.jdt.doc.user/reference/ref-type-hierarchy.htm">
+    type hierarchy view</a>):
+    <h3>Type hierarchy tree:</h3>
+    <ul>
+	  <li>shows <b>supertype/subtype hierarchy</b> of Object Teams types (team classes,
+	      role classes)
+	  </li>
+      <li>shows full <b>role type hierarchy</b> incl. <b>implicit inheritance</b></li>
+      <li>displays <b>Object Teams specific icons</b> for team classes, role classes and
+          method bindings
+      </li>
+	</ul>
+    <h3>Member list (method viewer):</h3>
+    <ul>
+	  <li>shows <b>methods</b> in hierachy</li>
+	  <li>shows <b>implicitly inherited methods</b></li>
+	  <li>shows <b>method bindings</b></li>
+	  <li>shows <b>inherited method bindings</b></li>
+	</ul>        
+   
+   <h2>Opening a type hierarchy on the current text selection</h2>
+   To open a type hierarchy on a text selection, select the name of an Object Teams element
+   or Java element in the editor or package explorer and do one of the following:
+   <ul>
+     <li>Press <b>F4</b></li>
+     <li>select <b>Open Type Hierarchy</b> from the package explorer's pop-up menu</li>
+   </ul>
+   <b>Note</b>: If the selected Object Teams element or Java element is not a type or a
+   compilation unit, the hierarchy opens on the type enclosing the current selection.
+   <p>
+	 <strong>Type hierarchy</strong>:<br>
+	 <img src="images/screenshots/typeHierarchy.jpg" 
+	  	  styles="left" alt="Object Teams type hierarchy view">
+   </p>	
+   <p>
+	 <strong>Role hierarchy</strong>:<br>
+	 <img src="images/screenshots/implicitRoleHierarchy.jpg"
+	  	  styles="bottom" alt="Object Teams implicit role hierarchy view">
+   </p>
+   Note, that for roles, the super types are not restricted to a linear chain, but due to combination 
+   of explicit and implicit inheritance (<a href="otjld/def/s1.html#s1.3.1">OTJLD &sect;1.3.1 </a>)
+   a role may have multiple supers. E.g., in the picture, <code>HierarchyDisplayImpl.CompositeNode</code>
+   explicitly inherits from <code>HierarchyDisplayImpl.Node</code> and implicitly
+   inherits from <code>HierarchyDisplay.CompositeNode</code>.
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/views.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/views.html
new file mode 100644
index 0000000..00ce24c
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/views.html
@@ -0,0 +1,20 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Structural views</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+  </head>
+  <body>
+    <h1>Object Teams structural/navigational views</h1>
+    The following structural/navigational views have been extended for Object Teams
+    in order to represent Object Teams elements (team classes, role classes, callin/callout
+    bindings):
+   	<ul>
+  	  <li><b><a href="packageexplorer.html">package explorer</a></b></li>
+  	  <li><b><a href="outline.html">outline</a></b></li>
+  	  <li><b><a href="typehierarchy.html">type hierarchy</a></b></li>
+  	  <li><b><a href="callhierarchy.html">call hierarchy</a></b></li>
+  	</ul>  
+  </body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/webindex.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/webindex.html
new file mode 100644
index 0000000..eb1cda3
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/webindex.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+    <link rel=stylesheet type="text/css" href="../css/book.css">
+    <style type="text/css">
+       td,th {padding-left:15px; padding-right:15px; padding-top:2px; padding-bottom:2px;};
+    </style>
+    <title>OTDT Feature List</title>
+  </head>
+<body>
+
+<h1>Object Teams Development User Guide</h1>
+<ul>
+ <li><a href="develop.html">Object Teams Development Tooling (OTDT)</a>
+ <ul>  
+   <li><a href="features.html">OTDT Features</a></li>
+   <li><a href="perspective.html">Object Teams perspective</a></li>
+   <li><a href="project.html">Object Teams project creation</a></li>
+   <li><a href="wizards.html">Team and role creation wizards</a></li>
+   <li><a href="editor.html">Java editor with Object Teams capability</a>
+   		<ul>
+			<li><a href="syntaxhighlight.html">OT/J syntax highlighting</a></li>
+			<li><a href="contentassist.html">OT/J content/code assist</a>
+			 <ul>
+			     <li><a href="completion.html">OT/J completion</a></li>
+			     <li><a href="quickfix.html">OT/J quick fixes</a></li>
+			 </ul>
+			</li>
+			<li><a href="callinmarker.html">Callin marker</a></li>
+		</ul></li>
+   <li><a href="views.html">Object Teams structural/navigational views</a>
+   		<ul>
+			<li><a href="packageexplorer.html">Object Teams package explorer</a></li>
+			<li><a href="outline.html">Object Teams outline</a></li>
+			<li><a href="typehierarchy.html">Object Teams type hierarchy</a></li>
+			<li><a href="callhierarchy.html">Call hierarchy extended for OT/J</a></li>
+		</ul></li>
+   <li><a href="compilation.html">Compiling Object Teams programs</a>
+   		<ul>
+			<li><a href="builder.html">Java builder extended for Object Teams</a></li>
+		</ul></li>
+   <li><a href="running.html">Running Object Teams programs</a></li>
+   <li><a href="debugging.html">Debugging Object Teams programs</a>
+     <ul>
+     <li><a href="teammonitor.html">Team monitor view</a></li>
+     <li><a href="stepping.html">Stepping through callin bindings</a></li>
+     </ul>
+   </li>
+   <li><a href="refactoring.html">Refactoring Object Teams programs</a></li>
+ </li></ul>
+ <li><a href="otjld/def/index.html">Object Teams Language Definition</a></li>
+</ul>
+</body>
+</html>
diff --git a/plugins/org.eclipse.objectteams.otdt.ui.help/guide/wizards.html b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/wizards.html
new file mode 100644
index 0000000..d08f78f
--- /dev/null
+++ b/plugins/org.eclipse.objectteams.otdt.ui.help/guide/wizards.html
@@ -0,0 +1,89 @@
+<html>
+  <head>
+    <meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see http://www.eclipse.org/legal/epl-v10.html" />
+	<link rel=stylesheet type="text/css" href="../css/book.css">
+    <title>Team and role creation wizards</title>
+    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+    <style type="text/css">
+	  h2 {color: orange}
+      h3 {color: blue}
+      h4 {color: brown}
+    </style>    
+  </head>
+  <body>
+    <h1>Team and role creation wizards</h1>
+    <h2>Team wizard</h2>
+	<p>
+	  <img src="images/screenshots/teamWizard.jpg"
+	  	   alt="Wizard for creating a new team class">
+	</p>    
+    <h3>Opening the team wizard</h3>
+    The easiest way to create a new team class is to use the team wizard.
+    First select the container where you want the new team class to reside.
+    Then the wizard can be opened either by selecting <b>File > New > Team</b> from the main
+    workbench window or by selecting <b>New > Team</b> from the container's pop-up menu or
+    by choosing <b>Team</b> from the drop-down menu on the <b>New</b> button in the
+    workbench toolbar.    
+    <h3>Define settings / enter information</h3>
+    Most settings for a new team correspond exactly to those specified for a regular 
+    <a href="/help/topic/org.eclipse.jdt.doc.user/reference/ref-126.htm">Java class</a>.
+	<h4>Edit using the Binding Editor</h4>    
+	If a super-team has been selected and if the team should be constructed as a <i>connector</i>
+	the binding editor can be launched for adding class and method bindings.
+    <h3>Resulting effects</h3>
+    By clicking the <b>Finish</b> button the team is created with the chosen properties.
+    The tree view of the package explorer and the outline is updated and the new team is
+    displayed.<br><br>
+    <h2>Role wizard</h2>
+	<p>
+	  <img src="images/screenshots/roleWizard.jpg"
+	  	   alt="Wizard for creating a new role class">
+	</p>    
+    <h3>Opening the role wizard</h3>
+    The easiest way to create a new role class is to use the role wizard.
+    First select the container where you want the new role class to reside.
+    Then the wizard can be opened either by selecting <b>File > New > Role</b> from the main
+    workbench window or by selecting <b>New > Role</b> from the container's pop-up menu or
+    by choosing <b>Role</b> from the drop-down menu on the <b>New</b> button in the
+    workbench toolbar.    
+    <h3>Define settings / enter information</h3>
+	<h4>Source folder and enclosing team</h4>    
+    The fields of the source folder and the enclosing team incorporate the same semantics
+    as in the team creation wizard. Entries can be modified/changed by clicking the
+    respective <b>Browse...</b> button and choosing a folder and team class in the selection
+    dialog respectively. The fully qualified name of the enclosing team is displayed unless
+    it stands in the default package. A role is inlined by default, i.e. a role is defined
+    inside the specified enclosing team. If an external role should be created the checkbox
+    "inlined" has to be deselected.<br>
+	<h4>Role name</h4>
+    A valid name for the new role class must be entered. The type name is mandatory.<br>
+  	<h4>Modifiers</h4>
+    Possible visibility modifiers for role types are <code>public</code> and
+    <code>protected</code>. Roles can also be either <code>abstract</code> or
+    <code>final</code>.<br>
+	<h4>Implicit superclass</h4>
+    The implicit superclass field is set automatically if the entered type name matches a
+    role type which already exists in a team class which is present in the supertype
+    hierarchy of the enclosing team. The fully qualified name of the implicit superclass is
+    then shown.<br>
+	<h4>Explicit superclass</h4>
+    Initially the explicit superclass is set to	"java.lang.Object". It can be changed by
+    clicking the <b>Browse...</b> button and selecting a class from the selection dialog.
+    A role can explicitly inherit from another role class of the same team or from any other
+    regular class other than team classes.<br>
+	<h4>Bound base class</h4>
+	A bound base class can be defined by clicking the <b>Browse...</b> button and selecting
+	a class from the selection dialog. A bound base class can be any class.<br>
+	<h4>Interfaces</h4>
+	Interfaces which the role should implement can be added/removed with the <b>Add.../
+	Remove</b> buttons.
+	<h4>Method stubs</h4>	
+	Method stubs for inherited abstract methods	can be created by selecting the	according
+	checkbox. The checkbox is selected by default.
+    <h3>Resulting effects</h3>
+    By clicking the <b>Finish</b> button the role with the chosen properties is created
+    inside the enclosing team, or, in the case of an external role, in a package which has
+    the name of the enclosing team. The tree view of the package explorer and the outline
+    is updated and the new role is displayed.
+  </body>
+</html>