天天看點

EReference的containment和container屬性

EReference的containment屬性如果為true,表示目标EClass是被源EClass包含的,這是一種十分強的關系,例如汽車和車輪的關系。在ecore裡,不允許包含關系形成圈,也就是說如果A包含B,B就不能再直接或間接的包含A;另外,如果作為容器的對象結束了自己的生命周期,被它包含的對象也将結束自己的生命周期。

如果一個EReference有作為EOpposite的EReference,并且後者的containment屬性為true,則這個EReference的container屬性為true。說白了,一個EReference的container屬性表示它指向的EClass是否為包含者。

最後,container屬性是derived屬性,是以在ecore編輯器裡我們無法直接編輯一個EReference的這個屬性。

繼續閱讀