[英]Papyrus UML: add a type to a property using a Profile (Metamodel Extension)
我正在Eclipse中使用Papyrus UML定義配置文件。 我用幾個構造型類擴展了元類“類”和“屬性”。 我可以在實際模型中正確看到新的構造型。 我想做同樣的事情,在個人資料中定義自己的類型,以將它們用於模型中類的屬性。
示例:我想在基本Java Type中未定義的HashMap類型的類中具有一個屬性。 我可以在配置文件中定義一個<<Primitive Type>>
類,將其命名為“ HashMap”,但我不清楚我需要擴展哪個UML元類。
如果您有時間,請提供一個有關配置文件定義的分步示例。 非常感謝!
您不需要擴展現有的UML元類來創建新類型。 在UML元模型中,定義了一個屬性(一個Property
)通過引用type
鏈接到Type
。 可以附加到屬性的Type
可以是Inteface/Class/PrimitiveType...
實例 。 實際上,一部分UML基本類型只是在導入的其他模型中定義的PrimitiveType
實例(請在您的UML模型XMI中查找packageImport
)。
將Property
的類型設置為Integer
,將Property
實例的類型設置為名為Integer
的PrimitiveType
實例。 因此,如果您要使用HashMap
類型,則只需創建一個名為HashMap
的PrimitiveType
實例(已完成)即可。
但是,當您將模型“綁定”到Java時,我懷疑您可能希望對通用類型進行建模(例如HashMap<String, Integer>
)。 為此,您將必須處理UML模板。
http://www.uml-diagrams.org/template.html
在這種情況下,您將必須使用兩個名為HashMap
形式參數創建可模板化的Class
並將其綁定,以生成綁定類型。 然后,您將能夠使用綁定類型作為Property
實例的類型(也不需要UML元模型擴展)。
注意 : PrimitiveType
是UML元類。 您可以使用構造型 (在這里說A
)擴展它,以創建更完善的PrimitiveType
元類。 如果執行此操作,則可以在UML模型中創建A
實例,但不希望將A
用作Property
類型。 您將只能使用創建的A
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.