我正在写一个模型到模型的转换。这是我的ETL文件的一部分:
rule process2activity
transform p : input!Process
to a : UMLOutput!Activity{
...
var ip : new UMLOutput!InputPin;
var op : new UMLOutput!OutputPin;
ip.activity = a;
op.activity = a;
...
}
当我验证输出时,我得到:“'活动测试'的'输入引脚'和'节点'的相反特征'活动'不相互引用”。
我的输入引脚的“活动”功能正确显示。但是,我的活动的“节点”功能是空的。
但奇怪的是,当我尝试这个时:
a.nodes.println();
我得到两个Pins返回。但它们不会显示在我的模型的“属性”窗口中。
有任何想法吗?
没有元模型信息很难分辨。似乎活动和节点的关系是1:1。因此op.activity = a
实际上导致活动从ip.activity关系中移除,即活动只能与一个引脚相关。