问题标签 [ocl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Scala 的 EMF/UML 和 OCL API
我在 Scala 中开发的应用程序的一部分需要读取和解析 EMF/UML 模型以及在这些模型上定义的 OCL 表达式。我的 OCL 表达式几乎是在这些 EMT/UML 模型上定义的查询表达式。
我的问题:
1) 读取和解析 EMF/UML 模型的 API 选项有哪些?
2) 有哪些 API 选项可以解析和评估 EMF/UML 模型上的 OCL 表达式(查询)。
uml - 如何使数字来自OCL中的给定集合?
有一个“等级”类,其“价值”属性设置为真实,我的问题是如何在 OCL 中编写这种条件:
等级是一组 {2, 3, 3.5, 4, 4.5, 5} 中的一个数字
eclipse - Acceleo Collection 集合
我已经定义了这个查询
我实际上做的是:
从“aCSharpModel”获取序列
对于这个序列中的每个元素,我将它定义为一个序列,并在前面添加另一个元素(
rmm.hasRelatedCSharpRModel
collect 内部是无关紧要的,它只是一个 1 对 1 的关系)
所以我需要这样的东西:
但是当我尝试从模板访问结果中的每个内部序列时,例如:
我收到一个错误:
org.eclipse.acceleo.engine.AcceleoEvaluationException:模块TODODbResourceRepositoryCSharpFile中第18行的迭代类型无效,用于块(genCascadePath(aCSharpResourceModelManager.hasRelatedCSharpRModel))分隔符('->')。org.eclipse.emf.ecore.impl.DynamicEObjectImpl 不是序列实例(CSharpResourceModel)。
如果我尝试执行相同的 for 循环,但使用迭代器作为 typeCSharpResourceModel
而不是Sequence(CSharpResourceModel)
,它不会产生错误,但它将我的查询结果视为单个序列,就像一个展平的序列一样。
问题是我需要有我一开始描述的行为。
我怎样才能做到这一点?
谢谢你。
constraints - 如何编写 OCL 约束
我是 OCL 新手,我在 eclipse luna 4.4.2 上使用纸莎草纸类调用地址具有约束的属性出处{出处应是强制性的}
我应该如何编写适合正式语言的OCL约束?还想知道如何验证语法的正确性吗?
eclipse - OCL:根据箭头方向导航单向关联
我在这里读到https://wiki.eclipse.org/OCL/FAQ
如何在 Ecore 中访问无法导航的对立面
在 UML 中,仅打算在运行时沿一个方向导航的关联可以用单向箭头绘制。
OCL 评估发生在分析时,无论箭头如何,都可以双向导航。
这是 OCL 标准的一部分还是只是 eclipse ecore 的一部分?
一个例子:给定两个类 A 和 B,以及从 A 到 B(但不是从 B 到 A)的单向关联。在类图中,这可以用从 A 到 B 的箭头(一个箭头指向 B 的线)来说明。
编写逆箭头方向导航的 OCL 约束真的是标准的一部分吗?
我在 OCL 规范中找不到任何关于此的内容,请参见此处。
uml - OCL(Object Constraint Language)选择,属性使用sum
我正在尝试查找OCL 表达式(计算器),但我不确定如何获取集合属性的总和。
我有一堂课Customer
和一堂课Orders
。我想将特定年份的所有订单的总和保存在Customer
类属性revenue
中。
Orders
具有属性“日期订单”和“金额”。Given 是 year(Date) 给出特定日期的年份并Date.now()
给出当前日期。
我找到了这个解决方案:
我不想使用collect,但我真的不知道如何只使用select语句来做到这一点。我假设省略 collect(amount) 并将 sum 更改amount.sum()
为也不正确?
我希望有人可以帮助我解决这个问题。