2013-04-05 48 views
1

EMF的版本比较:2.1.0 M6(2013年3月19日17:50)与EMF编制问题比较码

我想使用独立于this guide比较作为解释。我得到下面的编译错误

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代替如图所示如下图。我不知道如何使用该API指定新的matchEngine

enter image description here

回答

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,感谢您的反馈;]]