Как создать настраиваемые атрибуты в EMF Ecore Modeling Framework

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

Мы создали пользовательские классы данных в модели Ecore, но не можем назначить их компонентам, поскольку список атрибутов содержит атрибуты Ecore по умолчанию.

Поиск «пользовательских атрибутов ecore» возвращает результаты общей информации о моделировании Ecore, которая не совсем отвечает нашему вопросу.


person nullChar    schedule 24.06.2019    source источник


Ответы (2)


Если созданные вами «пользовательские классы данных» являются EClasses, вы можете назначить их компонентам через «EReference». Если это пользовательские типы данных, вы можете назначить их через «EAttribute». Это помогает?

person user1292456    schedule 26.06.2019

Я нашел ответ здесь, в сообщении, которое я пропустил ранее.

Как создать EAttribute, тип данных которого не является классом EMF?

Вы можете добавить тип данных в модели eCore, вручную добавив запись eClassifiers в файл *.ecore. (Мне не удалось найти механизм для этого через пользовательский интерфейс Eclipse.)

Например:

<eClassifiers xsi:type="ecore:EDataType"
 name="MyClass" instanceClassName="my.package.MyClass"/>

Это сделает класс доступным в качестве опции для EType в редакторе свойств для EAttributes. Похоже, он не доступен для EReferences.

person nullChar    schedule 28.06.2019