From 01b05cbbb62f775a0279c0827fd4fa40e7057f95 Mon Sep 17 00:00:00 2001 From: Martin Lehmann Date: Tue, 10 Sep 2024 13:36:15 +0200 Subject: [PATCH] fix(model): Handle ControlNodes without `kind` in `_get_icon()` --- capellambse/diagram/_styleclass.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/capellambse/diagram/_styleclass.py b/capellambse/diagram/_styleclass.py index de5ea161..9ceb9bc8 100644 --- a/capellambse/diagram/_styleclass.py +++ b/capellambse/diagram/_styleclass.py @@ -106,13 +106,19 @@ def _port_allocation(obj: model.ModelObject) -> str: return f"{'_'.join(sorted(styleclasses))}Allocation" +def _control_node(obj: model.ModelObject) -> str: + assert isinstance(obj, model.fa.ControlNode) + if obj.kind is None: + return _default(obj) + return obj.kind.name.capitalize() + _default(obj) + + _STYLECLASSES: dict[str, cabc.Callable[..., str]] = { "Association": _association, "CapellaIncomingRelation": lambda _: "RequirementRelation", "CapellaOutgoingRelation": lambda _: "RequirementRelation", "Class": lambda o: "Primitive" * o.is_primitive + "Class", "ComponentPort": lambda o: f"CP_{o.direction or 'UNSET'}", - "ControlNode": lambda o: o.kind.name.capitalize() + _default(o), "Entity": lambda o: ( ("Entity", "OperationalActor")[o.is_actor and o.is_human] ),