OT/J quick fixes
Specific quick fixes are available for mending OT/J-related problems, including:
Additionally, some standard Java quickfixes and content assists have been extended to be applicable for OT/J elements, too.
- class modifiers
– illegal modifier for a role,
– reducing the visibility from an (explicitly or implicitly) inherited role,
– abstract relevant role ( 2.5(b)).
- modifiers of methods and method bindings
– mismatch between a method's
callin modifier and a callin binding's modifier (
– static/non-static incompatibility in a callin replace binding,
– mismatching override of callin vs. regular role methods ( 4.2(d)),
– missing callin binding modifier (
– wrong callout token (
– insufficient visibility of a role method / constructor / field.
– also insufficient visibility of a shorthand callout binding can be fixed be prepending a visibility modifier (protected or public, see 3.1(i)).
- inferred callout
- – materializing inferred callout bindings ( 3.1(j), 3.5(h))
- callin precedence
- – missing callin precedence declaration ( 4.8).
– add a missing anchor for the type of an externalized role
( 1.2.2, 9.2)
(proposals are infered from the context),
– adding missing
final modifier to a variable used as a type anchor,
– adding required type parameter to a callin binding capturing covariant base methods ( 4.9.3).
- role files
@role javadoc tags referring to a team's role files ( 1.2.5.d).
- coding style
– change import to "
import base ...", ( 2.1.2(d))
– change qualified reference to a role's base class to using a simple name and "
import base ...",
– migrate syntax for externalized role from "
anchor.R" to "
R<@anchor>" ( 1.2.2(b)).
– adding a missing
@Override annotation to a role class that overrides a corresponding role from the super team ( 1.3.1(c)).
– adding a missing
@Override annotation to a role method that overrides a corresponding method from the implicit super role.
- suppress warnings
@SuppressWarnings annotations can be added to method bindings, too.
- create method
- – applies to unresolved method specs in callout/callin bindings, too.
– generate inherited abstract methods also respects implicit inheritance.
- organize imports
- – creates "
import base ...", if appropriate
- and more..