ЭДС от модели к модели

#eclipse-emf #ecore

Вопрос:

Есть 2 модели ecore с ЭДС. lang.ecore По имени export.ecore И. Они в общем-то такие же, как. Но export.ecore в некоторых аспектах это немного урезано, и некоторые элементы имеют несколько иную семантику.

Теперь у меня есть загруженная модель lang в памяти, и я хочу создать export дерево объектов, только в памяти.

  • сопоставление одинаковых элементов
  • повторно создайте ссылки в модели экспорта
  • настройка различных объектов

Есть ли способ сделать это эффективно, избегая при этом слишком много повторяющегося кодирования?

Ответ №1:

Вероятно, вы могли бы начать преобразование с шага, основанного на рефлексивных API, чтобы «воссоздать» исходную модель в целевую модель, которая «в основном похожа» только на основе имен ваших типов и их функций.

Однако, если ваши метамодели не настолько велики, я не уверен, что вы выиграете много времени за цену ясности/отладки.

Более того, вы хотите рассмотреть, останутся ли ваши две метамодели «в целом похожими», или есть вероятность, что они будут развиваться по-разному, или если ваше отображение потребует от вас отклониться от этого пути.