< 上一课 | 下一课 >

第 6 课:创建和优化包到包映射声明

本课程说明如何创建“包到包”映射声明和多个映射规则。映射规则指定生成的变换如何处理源模型包含的包中嵌套的包或类元素。

包输入/输出对象包含名为 packagedElement 的特性。此特性是包含不同类型的有效 UML 对象的集合。在本课程中创建的映射规则定义变换如何处理类型为包或类的集合元素。

在本课程中,将创建以下映射规则:
  • 在目标项目中创建包的移动映射规则;此包的名称与源模型中包的名称相同
  • 如果元素的类型为类,那么调用 Class2ClassTransform 变换的子映射映射规则
  • 如果元素的类型为类,那么调用 Class2InterfaceTransform 变换的子映射映射规则
  • 如果元素的类型为包,那么调用 Package2PackageTransform 变换的子映射映射规则

第 3 课:创建和优化类到类映射声明说明了对于映射声明中每个移动映射规则,会把一个将属性值从源模型复制到目标模型的规则添加至生成的变换源代码。对于每个子映射映射规则,将在变换源代码中生成抽取指定集合中的元素的抽取器。如果当前输入对象是在映射声明中定义的输入类型的实例,那么会将子映射规则应用于对象。

运行生成的变换时,如果源模型包含包,那么将调用 Package2PackageTransform 变换并在目标模型中创建名称与源模型中包的名称相同的包。Package2PackageTransform 变换在 packagedElement 特性的集合中来回移动。对于类型为包(意味着源模型包含嵌套包)的每个集合元素,变换将调用 Package2PackageTransform 变换。对于类型为类的每个集合元素,变换调用规则以将类变换为目标输出模型中相应的类和接口。

要在映射模型中创建“包到包”映射声明,请完成下列步骤:

  1. 如果未在变换映射编辑器中打开 Generalize_Classes.mapping 文件,请在包资源管理器视图中双击该文件。
  2. 在变换映射编辑器的“映射根”部分中,右键单击 Generalize_Classes;然后单击创建映射
  3. 新建映射窗口的映射名称字段中,输入 Package2Package,然后单击确定。映射就会显示在大纲视图中,并在编辑器区域中的“映射根”下面打开。