0

特定の .xmi をロードする EMF プラグインの 2 つの異なるバージョンがあります。後者のバージョンは、以前のバージョンの xmi と互換性がないように変更されています。私がやりたいことは、最初のプラグインで xmi をロードし、新しいプラグインを使用してプログラムでモデルを構築し、古いモデルを移行することです。これらは、EMF モデル内のいくつかの変更を除いて同一です。

これらのプラグインをロードするにはどうすればよいですか? 出来ますか?より良い戦略はありますか?

4

2 に答える 2

2

2 つのコードとモデルを同時に使用できるように、古いバージョンの ID (および場合によっては EMF パッケージ URI) を変更することをお勧めします。

古いクラスと新しいクラスの両方を同じプラグイン (移行ツール) で処理する必要があるため、両方を機能させる方法はありません。

ただし、生成されたパッケージなしで古いモデルを開くことができる動的 EMF テクノロジを検討する必要があります (一方で、反射 API を使用する必要があります)。この方法を使用すると、EMF Reflective API を使用して古いモデルを開くコンバーターを作成し、それを手動で新しいモデル バージョンに変換できます。

于 2012-02-21T20:08:48.087 に答える
1

申し訳ありませんが、これらのプラグインはシングルトンであるため、これは不可能です。また、Java ベース クラスが邪魔になるため、移行中にプラグインを切り替えることはできません。

考えられる解決策の 1 つは、EDaptテクノロジを使用することです。このテクノロジーにより、ロード時にモデルを自動的に移行できます。私は、EDapt の前身である COPE を 2 つの異なるプロジェクトで使用し、大きな成功を収めました。

于 2012-02-21T20:20:07.307 に答える