首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >东方海外allInstances()

东方海外allInstances()
EN

Stack Overflow用户
提问于 2018-05-09 13:46:44
回答 1查看 1.5K关注 0票数 1

当时我学了点东方海外,遇到了下面的问题,我找不到正确的答案。我查看了关于OCL 2.4规格的文档,但没有发现,这似乎回答了我的问题:

大多数allInstances()示例如下所示:

上下文Person inv: Person.allInstances().forAll(p : Person \ p.employeeNumber <> self.employeeNumber)

其中Person是一个具有属性employeeNumber的类。

是否也允许在self和其他属性上使用allInstances(),并且具有相同的属性,如.allInstances()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 16:47:32

你正在达到OCL规范中较为模糊的区域之一。allInstances()是一种类型操作,因此可能被认为是静态的,但是静态关键字是在OCL2.2中添加的,没有任何明确的语义或示例。

基于Eclipse轴的实现原型对模糊的解决方案进行了分析.OclElement::allInstance()是作为/org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib中的静态操作建模的,因此源必须是类型。

如果调用self.allInstances(),就会得到“类”而不是“Object”所需的值。

如果调用self.oclType().allInstances(),则会得到更有趣的内容。

注意:实现oclType()以支持完全反射是另一个规范说明。

如果您希望OCL实现之间的可移植性,请坚持使用类似于Person.allInstances()->isUnique(employeeNumber).的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50255008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档