当前位置: 首页 > 知识库问答 >
问题:

如何用单独的文件中的OCL表达式从ecore模型生成代码?

羊舌子瑜
2023-03-14
<genAnnotations source="http://www.eclipse.org/OCL/GenModel">
    <details key="Use Delegates" value="false"/>
</genAnnotations>

此外,我检查了在preferences中嵌入ecore模型的OCL实现设置,以生成代码。但是当我尝试使用这个genmodel生成代码时,它只生成没有OCL表达式的代码。为了从一个单独的文件中为所有OCL表达式生成代码,我还应该做些什么呢?

这是我的模型文件:ecore文件

这是我的genmodel文件:.genmodel文件

import 'CarRental.ecore#/'

package CarRental

context Person
inv Person3:
  age > 0 and age < 80

context Person::fullName : String
  derive: self.firstname.concat(' ').concat(self.lastname)
...
endpackage
package CarRental : CarRental = 'http:///CarRental.ecore'
{
    class Person
    {
        operation email() : String[*|1];
        operation updateAge(newAge : ecore::EInt[1]);
        attribute firstname : String[?];
        attribute lastname : String[?];
        attribute age : ecore::EInt[1];
        attribute isMarried : Boolean[1];
        attribute fullName : String[?] { derived };
    }
...
}

共有1个答案

宿镜
2023-03-14

应该在Eclipse OCL新闻组上询问一个完全的Eclipse问题。

https://www.eclipse.org/forums/index.php/f/26/

您的Ecore/genModel文件不是Ecore/genModel文件;它们是顶层声明的快照。快照很少是文件的好替代品。

 类似资料:
  • 我有2个文件,一个ecore实现元模型和一个电子存储库。电子存储库以EMF格式与ecore实现元模型一起提供。我想浏览这个存储库的内容,我所知道的是我必须从实现元模型生成一个Eclipse插件,通过这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续它。 ecore实现元模型是使用Eclipse Indigo SR2中的EMF版本2.7开发的,e-Repository是在相同的环

  • 我想从图中所示的.jar文件中检索compare.ecore模型。 我试图在Eclipse IDE中复制并粘贴它,但没有成功。我用WinRAR打开了给定路径中的.jar文件,但在归档中找不到模型。 如何检索此模型?

  • 问题内容: 给定一组XPath映射,我希望能够生成一个完整的XML文件。 输入可以在两个映射中指定:(1)列出XPath表达式和值的映射;(2)另一个定义了适当的名称空间。 对于命名空间: 还要注意,同样重要的是,我还必须处理XPath Attributes 表达式。例如:我也应该能够处理属性,例如: 最终输出应如下所示: PS:这是对先前提出的问题的更详细的问题,尽管由于一系列进一步的要求和说明

  • 问题内容: 是的,您没看错。我需要能够从正则表达式 生成 随机文本的内容。因此,文本应该是随机的,但要与正则表达式匹配。看来它不存在,但我可能是错的。 仅举一个例子:该库将能够以“ ”作为输入,并生成诸如以下示例: abc abbbc bac 等等 更新:我自己创建了一些东西:Xeger。查看http://code.google.com/p/xeger/。 问题答案: 我刚刚创建了一个库来进行此操

  • 本文向大家介绍python 中的列表生成式、生成器表达式、模块导入,包括了python 中的列表生成式、生成器表达式、模块导入的使用技巧和注意事项,需要的朋友参考一下 5.16 列表生成式 5.17 列表生成式与生成器表达式的应用 第六章模块 什么是模块? 模块就是一系统功能的集合体,在python中,一个py文件就是一个模块,比如module.py,其中模块名module 6.1 import

  • EMF使用空的/“super()”构造函数生成类。我的问题是,是否可以说特定类的构造函数必须包含某些代码行?例如,用UUID初始化类的标识符属性?