EMF交叉引用和CDO

时间:2015-08-06 11:14:21

标签: eclipse emf cdo

我希望以这种方式保留我的EMF模型,以避免不必要地重复对象。为此,我尝试使用交叉引用,但它抛出一个Exception,表示该引用未包含在资源中。

例如,让我们考虑一家公司及其首席执行官。

的调用有两种情况
company1.setCEO(ceo1);
company2.setCEO(ceo1);

1-当containment设置为true时,只有最后一家公司存储对ceo的引用; 2-当containment设置为false时,抛出异常。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在EMF中,容器引用的上限必须为1.在您的情况下,这意味着ceo1只能包含在一个公司中。这就是为什么你的第一个场景结束时只有第二家公司存储了对ceo的引用。

在第二种情况下,问题似乎也是一个遏制问题。如果您在公司和首席执行官之间使用非遏制参考,则必须定义您的CEO是否包含在内。最简单的方法是将其添加到资源内容resource.getContents().add(ceo1)。但是,更好的设计解决方案会在其所属的类中为CEO添加遏制参考。