核心内容摘要
6大AI写作平台测评,毕业论文创作效率翻倍
摘要本文讨论CAAFmExtDefineExtensions用例。
该用例详细说明了在特征目录中定义扩展特征所涉及的各个步骤。
其前提条件是理解基本的特征建模器概念
扩展特征
特征启动项3以及创建启动项目录4。
通过此用例您将学到什么在CAAFmExtDefineExtensions用例中用户将学习定义扩展特征并进一步生成特征目录的步骤。
关键学习点包括理解包含扩展特征定义的OSM文件的重要性。
学习使用CATfctEditorAssistant工具来生成特征目录。
CAAFmExtDefineExtensions用例CAAFmExtDefineExtensions是CAAFeatureModelerExt.edu框架中的一个用例用于展示FeatureModelerExt框架的功能。
CAAFmExtDefineExtensions的功能是什么CAAFmExtDefineExtensions的目标是演示如何创建扩展特征。
该用例将定义两个新的特征目录每个目录包含一组不同的扩展特征。
下图展示了第一个特征目录的内容该用例创建的目录包含扩展特征的定义。
目录CAAOsmExt1Catalog包含了两个扩展特征的定义分别是CAAOsmHistoricalNovel历史小说和CAAOsmBiographicalNovel传记小说如图所示图 1: CAAOsmExt1Catalog.CATfct目录CAAOsmHistoricalNovel的特征是一个字符串类型的属性Epoch时代代表小说所基于的历史时期。
CAAOsmBiographicalNovel扩展特征继承自CAAOsmHistoricalNovel。
它具有两个属性Epoch字符串类型从父特征继承的属性。
Domain字符串类型由扩展特征显式添加的属性。
代表传记所基于的领域。
第二个特征目录CAAOsmExt2Catalog的内容如下所示。
图 2: CAAOsmExt2Catalog.CATfct目录CAAOsmChildrensNovel儿童小说是一个扩展特征其扩展属性是整数类型的AgeGroup年龄组。
如何启动CAAFmExtDefineExtensions要启动CAAFmExtDefineExtensions首先需要设置运行时环境。
具体步骤详见用例《创建启动项目录》4。
$ mkrun -c cmd $cdyour_workspace_root $# 确保运行时视图包括连接目录中不存在之前的特征目录文件$rmOS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct我们使用命令mkrun -c cmd启动一个已设置mkrun环境的子控制台cmd是Windows控制台命令解释器Unix上的等效命令是sh。
接着切换到工作空间目录并删除我们接下来打算创建、但可能已存在于工作空间运行时视图或连接目录中的所有特征目录CATfct文件。
在本例中我们运行rm命令删除CAAOsmExt1Catalog.CATfct。
$# 创建空特征目录$ CATfctEditorAssistant -create-new-catalog -catalog-name CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -into-directory$PWD/OS_directory/resources/graphic接下来我们启动CAA安装RTV5中可用的CATfctEditorAssistant可执行文件。
我们首先在-into-directory标志指定的地址中创建一个新的空特征目录。
font colorredclientID客户端ID是生成新目录过程的关键输入/font。
此后只有在验证了输入的客户端ID后客户端才被授权访问特征目录。
$# 将空特征目录描述为一个OSM文件。
$ CATfctEditorAssistant -describe-as-osm -catalog-name CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -as CAAOsmExt1Catalog.osm -into-directory$PWD在更新流程特征目录添加数据之前将特征目录转换到一个OSM文件中。
$# 使用InputData osm文件升级空特征目录。
请注意升级后的特征目录将输出到指定地址中$ CATfctEditorAssistant -update-catalog CAAOsmExt1Catalog.CATfct -with-client-id CAAOsmClientId1 -with-osm$PWD-into-directory$PWD继续使用更新后的OSM文件作为输入来升级特征目录。
上一步输出的OSM文件已更新了所有扩展特征。
升级后的目录CAAOsmExt1Catalog.CATfct则在您通过-into-directory标识指定的目录中生成。
只有成功验证了输入的客户端ID目录的升级才会返回SUCCESS。
$# 删除空的特征目录和osm文件$rmOS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct $rm$PWD/CAAOsmExt1Catalog.osm $# 将更新后的目录移动到运行时视图中$mv$PWD/CAAOsmExt1Catalog.CATfct OS_directory/resources/graphic/CAAOsmExt1Catalog.CATfct最后我们删除不再相关的空OSM和空特征目录文件。
注意CATfctEditorAssistant以下列不同的方式处理目录参数输入时目录参数会被剥离其目录路径然后在运行时视图中查找。
在您的工作空间级别就是目录文件必须放在以下地址否则生成OSM文件失败workspace_root/OS_directory/resources/graphic。
输出时目录被写入到目录参数指定的位置。
在工作空间中存储目录的位置是framework/CNext/resources/graphic。
在此地址位于工作空间文件夹内中找到的任何特征目录都会由mkrtv命令自动复制到运行时视图workspace_root/OS_directory/resources/graphic。
上述过程将创建扩展特征目录CAAOsmExt1Catalog.CATfct。
要创建扩展特征目录CAAOsmExt2Catalog.CATfct请重复相同的过程只需将CAAOsmClientId
CAAOsmExt1Catalog.osm和CAAOsmExt1Catalog.CATfct分别替换为CAAOsmClientId
CAAOsmExt2Catalog.osm和CAAOsmExt2Catalog.CATfct。
在哪里可以找到CAAFmExtDefineExtensions的OSM文件对应两个扩展特征目录的两个OSM文件都位于CAAFeatureModelerExt.edu框架的InputData目录中InstallRootFolder/CAAFeatureModelerExt.edu/InputData其中InstallRootFolder5是您API安装的根文件夹。
分步说明此用例中创建了两个扩展特征目录。
CAAFmExtDefineExtensions 包含3个逻辑步骤定义启动项1定义启动项2生成特征目录定义启动项1每个扩展特征目录都有一个关联的OSM文件。
OSM文件中定义了扩展特征。
与CAAOsmExt1Catalog关联的CAAOsmExt1Catalog.osm文件内容如下所示。
它定义了CAAOsmHistoricalNovel和CAAOsmBiographicalNovel扩展特征。
document CAAOsmExt1Catalog.CATfct { container RootCont #root { feature CAAOsmHistoricalNovel #startup #extension { #creation::parametermetadata_NovelExtn string Epoch EpochMiddle Ages } feature CAAOsmBiographicalNovel CAAOsmHistoricalNovel #startup #extension { string Domain DomainMusic } } ...您首先可能注意到的是#extension标签它指定该启动项是一个扩展启动项而不是常规启动项。
另一点是启动项可以派生自另一个启动项如此例中CAAOsmBiographicalNovel继承自 CAAOsmHistoricalNovel。
此外CAAOsmHistoricalNovel特征关联了一个字符串类型的属性Epoch其默认值设置为Middle Ages。
而CAAOsmBiographicalNovel特征关联了一个字符串类型的属性Domain其默认值设置为Music。
然后请注意CAAOsmHistoricalNovel的元数据声明#creation::parameter。
继承自CAAOsmHistoricalNovel的CAAOsmBiographicalNovel继承了相同的元数据metadata metadata_NovelExtn { ContType CAAFmExtApplication1 Container CAAFmExtApplication1 Extends [CAAOsmNovel] IsLocal true } } // OSM 结束 ...因此CAAOsmHistoricalNovel和CAAOsmBiographicalNovel可以成为CAAOsmNovel特征的本地扩展特征在应用容器CAAFmExtApplication1内实例化。
注意元数据必须包含这4行ContType/Container/Extends/IsLocal当您创建/升级osm文件时可以省略。
定义启动项2与CAAOsmExt2Catalog关联的CAAOsmExt2Catalog.osm文件内容如下所示。
它定义了CAAOsmChildrensNovel扩展。
document CAAOsmExt1Catalog.CATfct { container RootCont #root { feature CAAOsmChildrensNovel #startup #extension { #creation::parametermetadata_ChildrensNovelExtn int AgeGroup AgeGroup12 } } }CAAOsmChildrensNovel被定义为一个扩展特征其特征是一个整数类型的属性AgeGroup默认值设置为12。
由#creation::parameter刻面声明的元数据如下metadata metadata_ChildrensNovelExtn { ContType CAAFmExtApplication2 Container CAAFmExtApplication2 Extends [CAAOsmNovel] IsLocal true } } // OSM 结束 ...生成目录既然我们已经为目录创建了OSM文件下一步就是生成目录。
CAA安装RTV中提供的CATfctEditorAssistant工具可以生成新目录。
前面关于如何启动该用例的部分更详细地介绍了这一步骤。
简而言之该用例详细说明了定义扩展特征并随后生成目录所涉及的步骤。
在此过程中用户了解到以下内容的重要性OSM文件可由最终用户编辑包含扩展特征的定义。
CATfctEditorAssistant工具用于生成特征目录。
历史版本版本1 [2000年2月] 文档创建版本2 [2005年2月] 为新接口更新文档版本3 [2019年6月] 应用创建新目录时不创建OSM文件的规则特征建模器概念 ↩︎理解扩展特征 ↩︎建模启动项 ↩︎在目录中创建启动项 ↩︎ ↩︎构建和启动用例 ↩︎ ↩︎