blob: 75d20ce82945e0cf467f701f88859635c6f13699 [file] [log] [blame]
<meta name="copyright" content="Copyright Technical University Berlin and others 2004, 2010. This page is made available under the Eclipse Public License v1.0. For full details see" />
<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">
<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>
<dt>class modifiers
&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="../images/ot_paragraph.png"> 2.5(b)</a>).
<dt>modifiers of methods and method bindings
&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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 3.1(i)</a>).<br />
<dt>callout/callin method bindings
&ndash; materializing inferred callout bindings (<a href="otjld/def/s3.html#s3.1.j"><img src="../images/ot_paragraph.png"> 3.1(j)</a>, <a href="otjld/def/s3.html#s3.5.h"><img src="../images/ot_paragraph.png"> 3.5(h)</a>)<br />
&ndash; missing callin precedence declaration (<a href="otjld/def/s4.html#s4.8"><img src="../images/ot_paragraph.png"> 4.8</a>).<br />
&ndash; <a href="assist/addRemoveSignatures.html">add/remove signatures in callout/callin method binding</a> (<a href="otjld/def/s3.html#s3.1.c"><img src="../images/ot_paragraph.png"> 3.1(c)</a>,<a href="otjld/def/s4.html#s4.1.c"><img src="../images/ot_paragraph.png"> 4.1(c)</a>).<br>
&nbsp;&nbsp;<em>This works as a quickfix if one of the method specs cannot be resolved, otherwise this change classifies as a <a href="quickassist.html">quick assist</a></em>.<br />
&ndash; add a missing anchor for the type of an externalized role
(<a href="otjld/def/s1.html#s1.2.2"><img src="../images/ot_paragraph.png"> 1.2.2</a>, <a href="otjld/def/s9.html#s9.2"><img src="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 4.9.3</a>).
<dt>role files
&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="../images/ot_paragraph.png"> 1.2.5.d</a>).
<dt>coding style
&ndash; change import to "<code class="keyword">import <strong>base</strong></code> ...", (<a href="otjld/def/s2.html#s2.1.2.d"><img src="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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="../images/ot_paragraph.png"> 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 />
<u>Additionally, some standard Java quickfixes and content assists have been extended to be applicable for OT/J elements, too.</u>
<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>