У меня есть 2 модели для сравнения. В моей модели *.ecore у меня есть атрибут Id, и для его свойства ID установлено значение true. Я использую EcoreUtil.generateUUID() для уникальных идентификаторов.
В моем случае у меня есть одна готовая модель, и я создаю новую во время выполнения. Поэтому идентификаторы отличаются друг от друга.
В руководстве разработчика EMFCompare нам предлагают использовать UseIdentifiers.НИКОГДА;
IEObjectMatcher matcher = DefaultMatchEngine.createDefaultEObjectMatcher(UseIdentifiers.NEVER);
Тем не менее, он производит математические вычисления для каждого узла с идентификатором, как показано ниже:
Левый объект: DocModel.impl.ParagraphImpl@2767e23c (Id: _8pidAdVSEeSCK78kxjXrDg) (имя: null) (rawText: Lorem ipsum ....)
Правый объект: DocModel.impl.ParagraphImpl@33bc72d1 (Id: _QSFJodrUEeSkqsl19NdwQQ) (имя: null) (rawText: Lorem ipsum ....)
d.getKind(): ИЗМЕНИТЬ
Я предполагаю, что сравнение показывает, что они ИЗМЕНЯЮТСЯ из-за разных идентификаторов.
Короче говоря, я хочу игнорировать атрибуты Id в сравнении.
спасибо и привет