EMF版本比较:2.1.0 M6(2013/03/19 17:50)
我正在尝试使用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
。
答案 0 :(得分:2)
这些API已针对M6进行了更改(就删除而言,API现在处于最终的2.1.0阶段)。如果您的工作区中有代码,那么“如何使用API”的良好来源是EMF的单元测试。
对于您的特定用例,代码看起来如下:
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 Compare使用ID:p。
[编辑:一个小注释:我们现在已经用准确的信息更新了维基,感谢您的反馈;)