在将输入/输出对象添加至“类到接口”映射声明之后,可以定义输入/输出对象的属性之间的映射规则。
对于本课程,将创建一个定制映射规则,而该规则将创建名为 IClassName 的接口。也可以创建一个调用在第 3 课:创建和优化类到类映射声明中创建的“操作到操作”子映射的子映射映射规则,然后将输入过滤器添加至该子映射映射规则,以指定仅将公有操作变换为目标接口。
要定义输入/输出对象的属性之间的映射规则,请完成下列步骤:
- 创建输入/输出对象的 name 属性之间的定制映射规则:
- 在编辑器区域的类输入对象中,单击 name 属性。
- 将 name 属性的句柄拖至接口输出对象中的 name 属性。 这就创建了移动映射规则。
- 在连接 name 属性的移动元素上,单击向下箭头,然后单击定制。
- 右键单击定制元素;然后单击在属性中显示。
- 在属性视图的详细信息选项卡上,单击直接插入,然后在方法特征符下面的文本区域中,输入以下代码:Interface_tgt.setName("I"+Class_src.getName());
注: 要调用内容辅助功能,在输入代码时,请按 Alt+/。
- 单击应用。
- 在输入/输出对象的
ownedOperation 属性之间创建子映射映射规则:
- 在编辑器区域的类输入对象中,单击 ownedOperation 属性。
- 将 ownedOperation 属性的句柄拖至接口输出对象的
ownedOperation 属性。因为
ownedOperation 属性是集合,所以在缺省情况下,将创建子映射映射规则。
- 如果属性视图没有打开,请右键单击新的子映射元素;然后单击在属性中显示。
- 如果尚未选择 Operation2Operation,请在属性视图的详细信息选项卡中,从映射列表中进行选择。
- 对于在步骤 2 中创建的子映射映射规则,添加只将公有操作变换为目标接口的输入过滤器:
- 在“属性”视图中的输入过滤器选项卡上,单击过滤器输入元素,然后单击直接插入。
- 在方法特征符下面的代码选项下面的文本区域中,输入以下代码:if (ownedOperation_src.getVisibility().equals(VisibilityKind.PUBLIC_LITERAL))
{ return true; } return false;
注: 为输入或输出过滤器指定的代码必须返回布尔值。只能指定方法主体;变换编写框架定义方法特征符。要查看有效变量名称的列表,在直接插入按钮下面的文本区域中,按 Alt+/。
- 单击应用。
- 单击。
在下一课中,将在 Generalize_Classes.mapping 模型中创建几个映射声明;这些映射声明定义运行生成的变换时如何变换参数和基本类型。