Call hierarchy extended for OT/J

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.

Whenever a given method can be invoked via a callout method binding, the call hierarchy shows a callout node. Here all calls to the corresponding role method will be forwarded to the base method.

Whenever a callin method binding may intercept a given control flow, a 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.

Call hierarchy showing Object Teams method bindings