Как создать в ECORE ссылку на Has-A, которая будет доступна во время выполнения? - PullRequest
0 голосов
/ 14 февраля 2011

Эй, я новичок в EMF / ECORE.Я хочу смоделировать ссылку Has-A (Сдерживание), но защитная оболочка должна быть доступна во время выполнения.Итак:

У меня есть разные классы, которые имеют объем.поэтому том моделируется в классе:

MyVolume
 - depth: EDouble
 - height: EDouble
 - width: EDouble
 - volume()

MyClass
 - name: EString
 - volume: MyVolume

Если создать редактор с помощью .genmodel, я могу добавить его в класс тома.но я хочу, чтобы volumne был частью Class, чтобы пользователь мог использовать Volume Class в качестве атрибута, такого как name, не создавая его сначала.А глубина, высота и ширина должны отображаться так же, как имя атрибута в представлении свойств редактора.

Какое свойство в модели следует установить или есть другой способ архивации цели?

Заранее спасибо

Штеффен

Я нашел "решение":

  • Я создал класс MyVolume, а затем
  • тип данных MyVolume, использующий My.impl.MyAttributeImpl в качестве имени класса экземпляра.
  • Затем в MyClass создается атрибут тома: MyVolume (Datatype).
  • Так что я могу увеличить глубину в исходном коде, напримерthis fixture.getVolume (). getDepth ();
  • Но в представлениях свойств в редакторе отображается только объем.

Есть еще идеи?

Штеффен

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Вы также можете переопределить поставщика элементов для автоматического создания экземпляра MyVolume при создании «MyClass».

Книга EMF содержит множество примеров, подобных этому, Вот общее представление о среде EMF.Edit , посмотрите на часть "Переопределяющие команды".

0 голосов
/ 15 февраля 2011

Почему бы просто не сделать MyClass extension MyVolume вместо атрибута? Я не думаю, что этот вид союза, который вы хотите, поддерживается каким-либо другим способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...