2014-02-13 4 views
0

У меня есть модели EMF. A и B.Как добавить EMF-модель в другую EMF-модель как пакет?

Элементы A, ссылающиеся на различные элементы B и основной элемент модели, из которых я создаю экземпляры, находятся в B, содержащем все остальные элементы модели. Это означает, что основной моделью является B, и когда я создаю экземпляр, основанный на основном элементе модели B, я должен иметь возможность создавать дочерние элементы в B-экземпляре из элементов ссылки A.

Но поскольку они оказались в двух разных проектах EMF, я хочу добавить A в B (как-то ссылку на него из B может быть?), Не просто определяя новый EPackage в B и копируя A в него , Это проблема дизайна сейчас, что оба должны быть в разных проектах.

Каков наилучший способ сделать это? Есть ли у вас какие-либо советы?

Спасибо.

ответ

1

Создайте свои модели с помощью аннотированных интерфейсов или, если это невозможно, напишите 2 новые простые модели (используя аннотированные интерфейсы), чтобы увидеть, как это работает. Например, напишите интерфейсы для модели B в плагине B и сгенерируйте модель B. Напишите интерфейсы для модели A в плагине A, в MANIFEST.MF в A добавьте плагин B как зависимость и сгенерируйте модель A. Теперь в A.genmodel вы увидите ссылки на вашу основную модель B.

+0

Учтите, если я спрошу, что вы имеете в виду именно с аннотированными интерфейсами? – DanglingElse

+0

Аннотированные интерфейсы - один из способов генерации модели EMF. Они выглядят как интерфейсы Java с аннотациями (например, @model) в комментариях Java. Другие способы генерации модели - это определение XML-схемы, диаграмма Rational Rose UML, непосредственное редактирование файла .ecore. – Severin

Смежные вопросы