2010-12-26 4 views
1

У меня есть модель EMF как следующая:Как я могу создать ссылку в EMF

HardwareVerification -1-*-> Driver 
HardwareVerification -0-*-> Environment 
Environment -1-1-> Driver 

Каждый раз, когда я создаю экземпляр модели EMF я должен создать драйвер в среде, а другой в HardwareVerification, но мне нужно иметь один и тот же драйвер в обоих местах.

Например:

h1 -> driver 1 
h1 -> env1 
env1 -> driver1 

Мой вопрос: Как я должен моделировать это? * Я прочитал, что для управления ссылками в EMF вы можете использовать другой EClass с источником и target.

ответ

1

EReferences может быть смоделирована как сдерживание или ссылки, не являющихся сдерживания. Если вы используете ссылки без ограничений, то вы можете ссылаться на тот же объект, который содержится в модели где-то еще.

Предполагая, что среда «владеет» драйвером, то это будет ссылка на сдерживание. И HardwareVerification будет использовать только «драйвер», то это будет ссылка без ограничения. текстовая диаграмма «UML» может выглядеть так (< x> обозначает защитную оболочку и <> ссылка на неконденсируемую информацию.

env1 <x>-----> driver1 
         ^
         | 
h1 <>-------------- 
0

Я считаю, что ссылка, о которой вы говорите, является EReference.

Когда вы добавляете EReference в EClass в файл ecore, вы можете указать мощность с использованием свойства Lower Bound и Upper Bound для EReference.

В вашем случае, вы можете установить LowerBound = 1, UpperBound = -1 (бесконечное) для представления -1 - * ->

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