1

EMF 比较版本:2.1.0 M6 (2013/03/19 17:50)

我正在尝试按照本指南中的说明使用独立比较。我收到以下编译错误

The method setMatchEngine(IMatchEngine) is undefined for the type EMFCompare.Builder

对于下面的代码

// Configure EMF Compare
IEObjectMatcher matcher = DefaultMatchEngine.createDefaultEObjectMatcher(UseIdentifiers.NEVER);
IComparisonFactory comparisonFactory = new DefaultComparisonFactory(new DefaultEqualityHelperFactory());
IMatchEngine matchEngine = new DefaultMatchEngine(matcher, comparisonFactory);
EMFCompare comparator = EMFCompare.builder().setMatchEngine(matchEngine).build();

我看到它setMatchEngine被其他一些 API 取代,如下图所示。我不确定如何matchEngine使用该 API 指定新的。

在此处输入图像描述

4

1 回答 1

2

这些 API 已针对 M6 进行了更改(就删除而言,API 现在处于最终的 2.1.0 阶段)。如果您的工作区中有代码,那么“如何使用 API”的一个很好的来源是 EMF Compare 的单元测试。

对于您的特定用例,代码如下所示:

IMatchEngine.Factory factory = new MatchEngineFactoryImpl(UseIdentifiers.NEVER);
IMatchEngine.Factory.Registry matchEngineRegistry = new MatchEngineFactoryRegistryImpl();
matchEngineRegistry .add(factory);
EMFCompare comparator = EMFCompare.builder().setMatchEngineFactoryRegistry(matchEngineRegistry).build();

请注意,EMFCompare.builder().build();在大多数情况下,使用默认注册表 ( ) 就足够了……除非您真的不能让 EMF 比较使用 ID:p。

[编辑:一个小提示:我们现在已经用准确的信息更新了 wiki,感谢您的反馈;)]

于 2013-04-08T13:31:14.983 回答