[英]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.