我創建了我的元模型,名爲WFG.ecore
。EMF-如何以編程方式從模型中刪除實例
ATL我設法轉換WFG模型中的bpmn2文件。 ATL轉換給對象WorkFlow
,這是WFG中所有其他對象的容器。
現在我想用Java編程修改對象WorkFlow
,但我不能。
如何從其容器中刪除對象實例,以及如何從所有實例中刪除對象實例?
下面有一個與實例
gateways
+--------->+----------+
| |Gateway_1 |
♦ +----------+
+-----------+ ^
|WorkFlow_1 | | nextGateway 0..1
+-----------+ |
♦ +---------+
| | Node_1 |
+---------->+---------+
nodes
我想刪除實例Gateway_1
,因此,它在WorkFlow_1
沒有更多的遏制,使Node_1.getNextGateway->null
一個例子。我試着做 WorkFlow_1.getGateways().remove(Gateway_1)
但不工作
所以我必須手動刪除遞歸引用,這是不夠的,只是從容器中刪除一個對象。有沒有辦法自動做到這一點?手動刪除引用很容易出錯,特別是如果我將來添加新的引用,並且很難記住添加相對的刪除代碼。謝謝 – DeLac
EcoreUtil刪除方法可以幫助:http://download.eclipse.org/modeling/emf/emf/javadoc/2.5.0/org/eclipse/emf/ecore/util/EcoreUtil.html – Severin
太棒了!謝謝 – DeLac