blob: cdc92e925aaac38584c3cc14286d126b95fec5c0 [file] [log] [blame]
<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="PLUGINS_ROOT/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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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>
<p>
Whenever the same base method is affected by multiple callin bindings of the same kind (before, replace or after),
the compiler will add a warning marker. This should help to prevent situations where different callin bindings
could potentiall interfere with each other.
</p>
<table>
<tr><td class="caption">Multiple-callins marker
<td><img src="images/screenshots/NN21/MultipleCallins.png"
alt="Warning marker for multiple callin bindings">
</tr>
</table> </body>
</html>