6

複数の Ecore モデル (2 つ以上) を Java でプログラムによって単一の Ecore モデルに結合する方法はありますか? すべてのモデルが同じメタモデルに準拠しています。

の:

Model1 conforming to metamodelX
Model2 conforming to metamodelX
model3 conforming to metamodelX
model4 conforming to metamodelX
model5 conforming to metamodelX

外:

modelOut conforming to metamodelX and merge of Model1, Model2, model3, model4, model5 ...
4

2 に答える 2

7

EMF Compare と呼ばれる、EMF の比較とマージを処理するための Eclipse プロジェクトがあります。

彼らが提供する例を次に示します。

// Loading models
EObject model1 = ModelUtils.load(model1, resourceSet);
EObject model2 = ModelUtils.load(model2, resourceSet);

// Matching model elements
MatchModel match = MatchService.doMatch(model1, model2, Collections.<String, Object> emptyMap());
// Computing differences
DiffModel diff = DiffService.doDiff(match, false);
// Merges all differences from model1 to model2
List<DiffElement> differences = new ArrayList<DiffElement>(diff.getOwnedElements());
MergeService.merge(differences, true);

これは、モデルのマージやその他の比較を処理するための非常に優れた方法を提供します。手動で変更を行うこともできます。

彼らが提供する完全な例を次に示します

于 2011-01-30T21:11:51.877 に答える