Nach den EMF FAQ definieren, ist es möglich, eine Karte in EMF zu erstellen:Wie man eine Karte in Xcore
Ein EMap ist im Grunde eine Liste der java.util.Map $ Eintrag Instanzen. daher eine Karte müssen Sie zuerst Ihre MapEintrag modellieren, indem nach diesen Schritten zu erstellen:
- Eine E-Klasse mit dem Namen [Typ1] bis [Typ2] Karte wo [Typ1] stellt den Schlüssel des Typs und der [Type2] repräsentiert den Typ des Wertes.
- Legen Sie die Instanzklassenname-Eigenschaft der neu erstellten EClass auf java.util.Map $ Entry fest.
- Erstellen Sie ein EAttribute oder EReference namens "Schlüssel" und legen Sie den EDataType oder EClass dafür fest.
- Erstellen Sie ein EAttribute oder EReference namens "value" und legen Sie den EDataType oder EClass dafür fest.
Nun, wenn Sie einen eReference irgendwo erstellen, die diese Karte Eintrag Klasse als E-Klasse verwendet, wird der EMB-Code-Generator diesen speziellen Fall erfassen und ein richtig getippt EMap Getter/Setter für Sie statt eines generieren normaler EList Getter/Setter.
Kann ich dies mit Xcore Modellen verwenden? Ich bin mir nicht sicher, ob Schritt 2 in Xcore machbar ist oder überhaupt Karten unterstützt.