Добавление поведения к моделям EMF - PullRequest
1 голос
/ 06 июня 2011

Мне интересно, как люди в целом справляются с добавлением поведения в модели ЭМП. У меня есть модель, представляющая определенный тип физического файла (файл проекта для IDE, но детали не интересны), и модель содержит некоторые вычисленные атрибуты (например, результат передачи этого файла внешним инструментам). Я вижу два способа сделать это: создание подклассов и редактирование созданных классов моделей.

Меня не очень интересует решение этой конкретной проблемы (я могу сделать это несколькими способами), а не изучение того, как другие пользователи EMF подходят к этой проблеме в целом.

Ответы [ 2 ]

1 голос
/ 06 июня 2011

У меня была такая же проблема, и я разговаривал с некоторыми модельными людьми и Эдом Мерксом.

Общий подход состоит в том, чтобы статически создавать все возможные типы и использовать их без изменений. Динамические модели (то есть модели EMF, которые изменяются во время выполнения) не очень распространены, поэтому нет достаточных знаний о том, как лучше всего их реализовать.

Некоторые проблемы, с которыми вы столкнетесь: Загрузка и сохранение классов вашей модели во время выполнения. Вам лучше убедиться, что классы модели имеют как минимум одинаковых атрибутов при повторной загрузке модели.

Обычно это означает, что вы должны сохранить метамодель EMF вместе с самой моделью.

Что касается подклассов и редактирования: думайте об EMF как о подобном Reflection API. На самом деле это просто API для описания классов Java, для создания экземпляров, для изменения этих экземпляров и сохранения.

Так что, если вам нужно решить, какой путь лучше, спросите себя, как бы вы решили это без EMF (т. Е. На обычной Java при использовании Reflection).

0 голосов
/ 09 сентября 2017

Мой ClassMaker позволяет это сделать.Вот пример .

И он по крайней мере создает основу для проверок, упомянутых в ответе Аарона.

UPD: Сегодня я реализовал проверяет это и не видит никаких трудностей.Что я делаю не так?

...