implements |
DashboardTransformerInterface |
|---|
Core's baseline transformer (Core Dashboard API v0.9 §D7; visibility veto added v1.0).
1:1 walk of the artifact hierarchy — every group and every child becomes
an emitter, except artifacts a registered vetoer hides. Suppression
is not done by subclassing: an injected {@see VetoChain}
(empty by default — the no-op Core case) is consulted per group and per
child, and Hide verdicts prune that node before its emitter is built
(pre-data). Downstream concerns — access, lifecycle, personalization —
register a {@see \LaravelUi5\Core\Ui5\Emit\Veto\VetoerInterface}
via container tag and compose by union; none ships its own transformer.
See atom DASHBOARD_VETOER.md.
Builds the emitter tree bottom-up via match (true) instanceof
dispatch in {@see buildLeafEmitter()} — the entire artifact→emitter
map fits on a screen. No EmittableInterface, no class-string
indirection. The artifact controls the DTO it produces — a Card via
its getCard() factory, a Tile via its TileProviderInterface; the
transformer controls which emitter wraps the artifact (via the
instanceof dispatch). See atom ARTIFACT_AS_DTO_FACTORY.md.
Build methods are protected (not private) so a subclass can still
override one if it must — but the veto chain is the intended seat for
visibility, not subclassing.
| Methods | ||
|---|---|---|
public
|
__construct(
Ui5RegistryInterface $registry,
VetoChain $vetoChain = new VetoChain(),
DashboardGroupCollector $groupCollector = new DashboardGroupCollector(),
)
|
# |
public
|
transform(Ui5DashboardInterface $dashboard, Ui5ContextInterface $context): EmitterInterface
|
# |