<< §2.7.(b) Stacking | ↑ Table of Contents ↑ | §2.7.(d) Implicit playedBy specialization >> |
§2.7.(c) Layering
If roles of a team Secondary
are played by roles of another team Primary
(i.e., base classes are roles), the team Secondary
defines a layer over the team Primary
.
Such layering requires a final reference anchor
from Secondary
to an instance of Primary
.
All playedBy declarations within Secondary
specify their base classes anchored to that final link anchor
.

Due to the anchored base types, layered teams implicitly support the following guarantee:
all base objects of roles of Secondary
are contained within the team instance specified by the link anchor
.
If roles of Secondary
contain any callin bindings to non-static base methods, these will be triggered only
when a base method is invoked on a base instance contained in the team specified by anchor
.
In accordance with §2.6.(a) the anchor in such anchored playedBy declarations
could also be the pseudo identifier base
, provided that Secondary
is a nested team,
which has a playedBy binding to Primary
as its base class.
This situation is part of the second example below (§2.7.(d)) (see T1 playedBy TB1
).
<< §2.7.(b) Stacking | ↑ Table of Contents ↑ | §2.7.(d) Implicit playedBy specialization >> |