“模型-文本”转换样本详细信息

此样本包含以下三个转换:

转换

描述

类-文本 -> 控制台 此转换接受 UML 类作为源,并将类的描述(类名和类的属性和操作以及操作的参数)写入“控制台”视图。
类-文本 -> 文件 此转换与“类-文本控制台”转换相同,但是将结果写入文件,而不是“控制台”视图。
状态-JSP 此转换接受状态机作为源,并为具有来自 ScreenFlow 概要文件的构造型的每种状态生成 JSP 页面。

要了解如何构造转换,您应该运行转换并研究源代码。当您阅读源代码时,应遵循以下准则:

  • 首先查看实施规则的 Java 类。这些类出现在名称以 .rules 结尾的包中。
  • 一组规则被组合到一个或多个转换中。转换由名称以 .transforms 结尾的包中的 Java 类实施。您可能想先阅读 transform 类的代码,然后阅读 root transforms 的代码。
  • 最后,查看插件清单文件 plugin.xml 以及 TransformationProvider 类的代码,了解转换如何连接到转换服务。

“类-文本”转换

此转换接受 UML 类、包或模型作为源,并将类名和类的属性和操作以及操作的参数写入“控制台”视图或文件。 如果您选择模型或包作为源,转换会写入该模型或包所包含的所有类的详细信息。

此转换有两种变化形式:

  1. 类-文本 -> 控制台:此转换将输出写入“控制台”视图,并且不需要目标。

    此样本转换向您显示如何做以下事情:

    • 创建简单规则并将它们组合到一个或多个转换中
    • 创建转换提供程序
    • 在插件清单文件 plugin.xml 中描述转换及其提供程序

  2. 类-文本 -> 文件:此转换将输出写入文件并需要项目作为目标。缺省情况下,它在您指定的项目中,于 ClassToTextOutput 文件夹内创建名为 class2text.txt 的文件。您可以使用转换属性 Target File Name 来更改文件的缺省名称。

    此样本转换向您显示如何做以下这些更多的事情:

    • 在插件清单文件 plugin.xml 中描述转换属性
    • 在规则内操作转换属性


“状态-JSP”转换

此转换接受状态机中的 UML 状态作为源,并使用 Java 发射器模板(JET)以 JSP 文件的形式生成 Web 页面。如果您选择状态机或域作为源,则转换为状态机或域中每种应用了来自 ScreenFlow 概要文件的构造型的状态,生成 JSP 文件。

此样本转换向您显示如何做以下事情:

  • 使用构造型和关键字来有选择地触发规则
  • 组合 JET 功能和转换来生成文本

要为转换准备源状态机,必须将 ScreenFlow 概要文件应用于包含状态机的 UML 模型,并通过将 ScreenFlow 概要文件中的构造型应用于状态机的状态,来标记状态机。ScreenFlow 概要文件包含四个构造型:formeditformselectlistdisplay。这些构造型为所生成页面的动态内容确定它们的显示样式。样本使用构造型来确定显示样式是可编辑的表单还是可选择的列表等。如果将多个构造型应用于一个状态,则转换只考虑第一个构造型。

样本也使用构造型的属性来确定通过 JSP 页面交换的数据。 仅当将四种构造型中的其中一种应用于某种状态时,转换才生成对应于该状态的 JSP 页面。 如果 JSP 文件已存在,则转换运行时不覆盖它们。通过将转换属性覆盖输出文件的值设置为 true,可以更改转换是否覆盖文件。

ScreenFlow 概要文件

下表显示 ScreenFlow 概要文件中的构造型及其属性。表中的值仅用于说明。

构造型

基类

属性:值

描述

display
<<display>>
状态 实体:联系人
字段:姓名、地址
指示生成的 JSP 页面显示联系人详细信息:姓名和地址
editform
<<editform>>
状态 实体:联系人
字段:姓名、地址
指示生成的 JSP 页面包含可编辑的表单,在其中用户可输入或编辑联系人详细信息:姓名和地址
form
<<form>>
状态 字段:用户名 指示生成的 JSP 页面包含表单,可输入用户名
selectlist
<<selectlist>>
状态 实体:联系人
字段:姓名、地址
选择字段:标识
指示生成的 JSP 页面包含一列联系人,可用于选择具有特定标识的联系人