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 を使用して new を指定する方法がわかりません。

ここに画像の説明を入力

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 Compare に ID を使用させることが本当にできない場合を除きます。

[編集: ちょっとしたメモ: wiki を正確な情報で更新しました。フィードバックに感謝します ;)]

于 2013-04-08T13:31:14.983 に答える