2010-12-26 12 views
1

ich ein EMF-Modell wie die nächste haben:Wie kann ich einen Link in EMF Design

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

Jedes Mal, wenn ich eine Instanz des EMF-Modell erstellen muss ich und ein Treiber in der Umgebung schaffen, ein anderes in der HardwareVerification, aber was ich brauche, ist, an beiden Orten den gleichen Treiber zu haben.

Zum Beispiel:

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

Meine Frage ist: Wie soll ich dieses Modell? * Ich habe gelesen, dass zum Verwalten von Links in EMF können Sie einen anderen EClass mit der Quelle und Ziel Attribut verwenden.

Antwort

1

EReferences kann als Eindämmen oder nicht Eindämmungs Referenzen modelliert werden. Wenn Sie Referenzen ohne Containment verwenden, können Sie auf das gleiche Objekt verweisen, das an anderer Stelle im Modell enthalten ist.

Unter der Annahme, dass die Umgebung den Treiber "besitzt", wäre das die Containment-Referenz. Und die HardwareVerification würde nur den Treiber "verwenden", dann wäre das die Nicht-Containment-Referenz. ein textuelles "UML" Diagramm könnte so aussehen (die < x> bezeichnet das Containment und die <> die nicht containment Referenz.

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

Ich glaube, der Link, über den Sie sprechen, ist die EReference.

Wenn Sie einer EClass in einer ecore-Datei einen EReference hinzufügen, können Sie die Kardinalität festlegen, indem Sie die Eigenschaft Lower Bound und Upper Bound der EReference verwenden.

In Ihrem Fall können Sie einstellen, Lowerbound = 1, Upperbound = -1 (unendlich) darzustellen -1 - * ->

Verwandte Themen