![]() |
Metamodel: Write Link Actions |
![]() |
Metamodel: Read Link Actions |
![]() |
Metamodel: Link Identification |
Linky však nejsou objekty, které je možné poskytnout akci na vstupním pinu, je nutné je identifikovat jiným způsobem. K tomu nám však nestačí pouze stav nějakého objektu, protože ten může být např. propojen s jiným objektem více linky. Pro jednoznačnou identifikaci linků proto UML zavádí metatřídu LinkEndData. Jak vyplývá z modelu, nejde o akci, ale přímou specializaci třídy Kernel::Element. Typ objektu na konci linku je pak určen díky asociaci na třídu Kernel::Property. Podle n-árnosti asociace pak má LinkAction minimálně dvě instance specializace třídy LinkEndData.
Třída ReadLinkAction je akce, která vrací objekt přiřazený konci linku. Který konec je zvolený, je dáno vstupním pinem, na kterém je objekt typu LinkEndData. Na výstupním pinu je umístěn požadovaný objekt. Notace je dána třídou Action.
Třída WriteLinkAction je abstraktní metatřída pro vytvoření či zrušení linku. Vytvoření linku pak prování třída CreateLinkAction. Ta může vytvořit nejenom link, ale i instanci asociační třídy (asociační třída je pak předmětem poslední úrovně certifikace znalostí UML). Pro svou činnost vyžaduje informace od třídy LinkEndCreationData (která je specializací již zmíněné třídy LinkEndData). Ta svým atributem isReplaceAll určuje, jakým způsobem k vytvoření dojde. Vstupním pinem pak lze určit umístění, kam link vložit (viz roli insertAt v asociaci se vstupním pinem). Notace je dána třídou Action.
Pro zrušení linku je využívána akce DestroyLinkAction. Pro určení linku je použita třída LinkEndDestructionData (která je opět specializací již zmíněné třídy LinkEndData). Ta poskytuje atribut isDestroyDuplicates, kterým lze řídit způsob rušení linků. Pomocí vstupního pinu pak můžete určit umístění rušeného linku. Opět, notace je dána třídou Action.
Poslední akcí, která ale není specializací třídy LinkAction, nýbrž přímo třídy Action, je ClearAssociationAction. Ta ruší všechny linky dané asociace a objektu na vstupním pinu. Jde o podobnou funkcionalitu jako u třídy ClearStructuralFeatureAction (tj. jedna atomická operace rušící všechny linky). Notace je dána třídou Action.
Žádné komentáře:
Okomentovat