Papyrus UML:使用配置文件(元模型扩展)将类型添加到 属性
Papyrus UML: add a type to a property using a Profile (Metamodel Extension)
我正在 Eclipse 中使用 Papyrus UML 定义配置文件。我用几个 Stereotype class 扩展了 metaclass "Class" 和 "Property"。我可以在我的实际模型中正确地看到新的刻板印象。
我想在我的配置文件中定义我自己的类型,以将它们用于我模型中 classes 内的属性。
示例:我想在 class 中有一个 属性,其类型 HashMap 未在基本 Java 类型 中定义.我可以在我的配置文件中定义一个 <<Primitive Type>>
class 并将其命名为 "HashMap" 但我不清楚我需要扩展哪个 UML 元 class。
如果您有时间,请提供一个配置文件定义的逐步示例。非常感谢!
您不需要扩展现有的 UML 元类来创建新类型。在 UML 元模型中,定义属性 (a Property
) 通过引用 type
链接到 Type
。可以附加到 属性 的 Type
可以是 Inteface/Class/PrimitiveType...
实例 。实际上,部分 UML 基本类型只是在导入的其他模型中定义的 PrimitiveType
个实例(在您的 UML 模型 XMI 中查找 packageImport
)。
当您将 Property
的类型设置为 Integer
时,您将 Property
实例的类型设置为名为 Integer
的 PrimitiveType
实例.所以如果你想要一个 HashMap
类型,你只需要创建一个名为 HashMap
的 PrimitiveType
的实例(就像你所做的那样)就可以了。
但是,由于您 "binding" 是 Java 的模型,我怀疑您可能想要为泛型类型建模(例如 HashMap<String, Integer>
)。为此,您将必须处理 UML 模板。
http://www.uml-diagrams.org/template.html
在这种情况下,您必须创建一个可模板化的 Class
,其中包含两个名为 HashMap
的正式参数,并绑定它以生成绑定类型。然后,您将能够使用绑定类型作为 Property
实例的类型(也不需要 UML 元模型扩展)。
注意:
PrimitiveType
是一个 UML 元类。您可以使用 stereotype(假设这里是 A
)来扩展它,以创建更精致的 PrimitiveType
元类。如果这样做,在您的 UML 模型中,您将能够创建 A
个实例,但您将无法使用 A
作为 Property
类型。您将能够使用的唯一对象将是创建的 A
个实例。
我正在 Eclipse 中使用 Papyrus UML 定义配置文件。我用几个 Stereotype class 扩展了 metaclass "Class" 和 "Property"。我可以在我的实际模型中正确地看到新的刻板印象。 我想在我的配置文件中定义我自己的类型,以将它们用于我模型中 classes 内的属性。
示例:我想在 class 中有一个 属性,其类型 HashMap 未在基本 Java 类型 中定义.我可以在我的配置文件中定义一个 <<Primitive Type>>
class 并将其命名为 "HashMap" 但我不清楚我需要扩展哪个 UML 元 class。
如果您有时间,请提供一个配置文件定义的逐步示例。非常感谢!
您不需要扩展现有的 UML 元类来创建新类型。在 UML 元模型中,定义属性 (a Property
) 通过引用 type
链接到 Type
。可以附加到 属性 的 Type
可以是 Inteface/Class/PrimitiveType...
实例 。实际上,部分 UML 基本类型只是在导入的其他模型中定义的 PrimitiveType
个实例(在您的 UML 模型 XMI 中查找 packageImport
)。
当您将 Property
的类型设置为 Integer
时,您将 Property
实例的类型设置为名为 Integer
的 PrimitiveType
实例.所以如果你想要一个 HashMap
类型,你只需要创建一个名为 HashMap
的 PrimitiveType
的实例(就像你所做的那样)就可以了。
但是,由于您 "binding" 是 Java 的模型,我怀疑您可能想要为泛型类型建模(例如 HashMap<String, Integer>
)。为此,您将必须处理 UML 模板。
http://www.uml-diagrams.org/template.html
在这种情况下,您必须创建一个可模板化的 Class
,其中包含两个名为 HashMap
的正式参数,并绑定它以生成绑定类型。然后,您将能够使用绑定类型作为 Property
实例的类型(也不需要 UML 元模型扩展)。
注意:
PrimitiveType
是一个 UML 元类。您可以使用 stereotype(假设这里是 A
)来扩展它,以创建更精致的 PrimitiveType
元类。如果这样做,在您的 UML 模型中,您将能够创建 A
个实例,但您将无法使用 A
作为 Property
类型。您将能够使用的唯一对象将是创建的 A
个实例。