Живые ограничения GMF - валидация - PullRequest
1 голос
/ 15 ноября 2010

У меня есть модель эдс, и я хотел бы сделать редактор GMF для создания экземпляров этой метамодели. Я хотел бы также некоторые живые ограничения, чтобы избежать некоторых связей между компонентами моей модели ЭМП. компонентов A, B, C, D, которые являются производными от общего класса, называемого F, и в F есть ссылка, которая соединяет F-> F, поэтому она может предоставить мне соединения между A, B, C, D компоненты. Но когда я нахожусь в редакторе GMF, мне нужен механизм, позволяющий избежать соединения A-> B и разрешить только соединение A-> C. Я читал, что этого можно достичь с помощью языка OCL и ограничений ссылок, которые можно добавить в файл gmfmap. Но я не смог найти ни одного учебника со словарем OCL и примерами, делающими эту живую проверку Есть ли у кого-нибудь указания?

1 Ответ

2 голосов
/ 19 ноября 2010

После более глубокого поиска я нашел очень полезную и быструю основу для проверки.Он называется Eugenia из группы Epsilon.

Eugenia позволяет вам создавать все необходимые файлы для окончательного редактора GMF с помощью одного файла (очень круто, потому что в противном случае вы должны объявить gfmtool, gmfgraph и т. Д. Самостоятельно), а затем вы можете создать новый EVLфайл, который содержит ограничения и инварианты вашей модели. Сопоставление выполняется легко путем предоставления и расширения точки на вашем URI метамодели, и все, что вам нужно сделать, это включить новый плагин, который содержит файл evl в вашей окончательной конфигурации Eclipse.http://www.eclipse.org/gmt/epsilon/doc/articles/evl-gmf-integration/

(Будьте осторожны, не генерируйте код диаграммы как приложение RPC, поскольку RPC не будет работать. Для получения дополнительной информации смотрите здесь: http://giampow.blogspot.com/2010/06/eclipse-rcp-application-custom-problems.html)

...