比較する2つのモデルがあります。私の *.ecore モデルには、「Id」属性があり、その ID プロパティはtrueに設定されています。一意の ID に EcoreUtil.generateUUID() を使用しています。
私の場合、準備が整ったモデルが 1 つあり、実行時に新しいモデルを作成しています。したがって、ID は互いに異なります。
EMFCompare の開発者ガイドでは、 UseIdentifiers.NEVER の使用を提案しています。
IEObjectMatcher matcher = DefaultMatchEngine.createDefaultEObjectMatcher(UseIdentifiers.NEVER);
それでも、以下のような id を持つノードごとに数学を生成します。
左のオブジェクト: DocModel.impl.ParagraphImpl@2767e23c (Id: _8pidAdVSEeSCK78kxjXrDg) (名前: null) (rawText: Lorem ipsum ....)
右のオブジェクト: DocModel.impl.ParagraphImpl@33bc72d1 (Id: _QSFJodrUEeSkqsl19NdwQQ) (名前: null) (rawText: Lorem ipsum ....)
d.getKind(): 変更
比較すると、IDが異なるために変更されていることがわかります。
つまり、ID 属性を無視して比較したいのです。
感謝とよろしく