| <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="PLUGINS_ROOT/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> |
| – missing <code class="keyword">team</code> modifier,<br /> |
| – illegal modifier for a role,<br /> |
| – reducing the visibility from an (explicitly or implicitly) inherited role,<br /> |
| – 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 |
| <dd> |
| – 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 /> |
| – static/non-static incompatibility in a callin replace binding,<br /> |
| – 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 /> |
| – missing callin binding modifier (<code class="keyword">before/after/replace</code>).<br /> |
| – wrong callout token (<code class="keyword">-></code> vs. <code class="keyword">=></code>, <a href="otjld/def/s3.html#s3.1.e"><img src="../images/ot_paragraph.png"> 3.1(e)</a>).<br /> |
| – insufficient visibility of a role method / constructor / field.<br /> |
| – 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 |
| <dd> |
| – 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 /> |
| – missing callin precedence declaration (<a href="otjld/def/s4.html#s4.8"><img src="../images/ot_paragraph.png"> 4.8</a>).<br /> |
| – <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> |
| <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 /> |
| <dt>typing |
| <dd> |
| – 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 inferred from the context),<br /> |
| – adding missing <code class="keyword">final</code> modifier to a variable used as a type anchor, <br /> |
| – 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 |
| <dd> |
| – 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 |
| <dd> |
| – 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/> |
| – change qualified reference to a role's base class to using a simple name and "<code class="keyword">import <strong>base</strong></code> ...", <br/> |
| – migrate syntax for externalized role from "<code>anchor.R</code>" to "<code>R<@anchor></code>" (<a href="otjld/def/s1.html#s1.2.2.b"><img src="../images/ot_paragraph.png"> 1.2.2(b)</a>).<br/> |
| – 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 /> |
| – 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>– <code style="color:#505050;">@SuppressWarnings</code> annotations can be added to method bindings, too. |
| <dt>create method |
| <dd>– applies to unresolved method specs in callout/callin bindings, too.<br /> |
| – generate inherited abstract methods also respects implicit inheritance. |
| <dt>organize imports |
| <dd>– creates "<code class="keyword">import <strong>base</strong></code> ...", if appropriate |
| <dt><em>and more..</em> |
| </dl> |
| </body> |
| </html> |