我有 2 个模型要比较。在我的 *.ecore 模型中,我有一个“Id”属性,并且它的 ID 属性已设置为true。我正在使用 EcoreUtil.generateUUID() 作为唯一 ID。
就我而言,我有一个现成的模型,我正在运行时创建一个新模型。因此,ID 彼此不同。
在 EMFCompare 的开发者指南中,他们让我们使用UseIdentifiers.NEVER;
IEObjectMatcher matcher = DefaultMatchEngine.createDefaultEObjectMatcher(UseIdentifiers.NEVER);
尽管如此,它仍然会为每个节点生成数学,其 id 如下所示:
左对象:DocModel.impl.ParagraphImpl@2767e23c (Id: _8pidAdVSEeSCK78kxjXrDg) (name: null) (rawText: Lorem ipsum ....)
右对象:DocModel.impl.ParagraphImpl@33bc72d1 (Id: _QSFJodrUEeSkqsl19NdwQQ) (name: null) (rawText: Lorem ipsum ....)
d.getKind(): 改变
我想比较会看到他们因为不同的 id 而改变。
简而言之,我想在比较中忽略 Id 属性。
谢谢并恭祝安康