Seite auswählen

Schlagwort: Model

UUIDs im EMF-Modell verwenden

Die Referenzierung erfolgt in der XML/XMI-Repräsentation eines EMF-generierten Modells standardmäßig über XPath Ausdrücke (hm, stimmt das? wo hab ich das denn gelesen?). <packagedElement xsi:type=”KobrA2SUM.Structure:K2ComponentClass” name=”TravelBookingSystem”> <generalization general=”#//BookingSystem”/> <!– … –> </packagedElement> <packagedElement xsi:type=”KobrA2SUM.Structure:K2ComponentClass” name=”TravelBookingSystem”> <!– … –> </packagedElement> Hieraus ergibt sich der Nachteil, dass ein SUM-View-Mapping der Modellelemente nur zu Programmlaufzeit sichergestellt werden kann. Ändert man zum Beispiel den Namen der Komponente “BookingSystem” in der View “offline” und möchte dann die Änderung in das SUM importieren, ist die nicht mehr korrekt möglich, da kein passendes Mapping mehr erfolgen kann. Vor allem hinsichtlich einer kollaborativen Entwicklung ergeben sich Schwierigkeiten, die ohne künstliche IDs nicht zu umgehen sind. Aus diesem Grund gibt es die Möglichkeit UUIDs zu verwenden. Da diese bei EMF-generierten Modellen standardmäßig nicht vorgesehen sind, ist ein kleiner Eingriff des Programmierers in den erzeugten Code notwendig. Wie das funktioniert habe ich vor allem durch einen Artikel von Seweryn Niemiec erfahren: How To Enable UUID In EMF Generated Model […] Folgende Änderungen brachten mich zum Ziel: Die Klasse KobrA2SUMResourceFactoryImpl erweitert org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl Die Klasse KobrA2SUMResourceImpl erweitert org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl Außerdem wurde die Methode useUUIDs() der Klasse KobrA2SUMResourceImpl überschrieben: /* (non-Javadoc) * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#useUUIDs() */ @Override protected boolean useUUIDs() { return true; } Schließlich erhielt ich ein Modell, das UUIDs verwendet und auch über diese referenziert. <packagedElement xsi:type=”KobrA2SUM.Structure:K2ComponentClass” xmi:id=”_5F2l0CKuEd654_10FfizxA” name=”TravelBookingSystem”> <generalization xmi:id=”_5F96kCKuEd654_10FfizxA” general=”#_5H7CYSKuEd654_10FfizxA”/> <!– … –> </packagedElement> <packagedElement xsi:type=”KobrA2SUM.Structure:K2Class” xmi:id=”_5H7CYSKuEd654_10FfizxA” name=”BookingSystem”> <!– … –>...

Weiterlesen

org.eclipse.uml2 – Erste Schritte und Erfolge

Mir war einige Zeit unklar, wie ich beginnen soll, auf programmatischem Weg eine .uml-Datei mittels des UML2-Plugins von Eclipse zu erzeugen. Zunächst einmal ein paar Infos zu Eclipse-UML2: UML2 is an EMF-based implementation of the Unified Modeling Language (UMLTM) 2.x OMG metamodel for the Eclipse platform. The objectives of the UML2 component are to provide a useable implementation of the UML metamodel to support the development of modeling tools a common XMI schema to facilitate interchange of semantic models test cases as a means of validating the specification validation rules as a means of defining and enforcing levels of compliance For more details on UML2, see the Wiki. Quelle: http://www.eclipse.org/modeling/mdt/?project=uml2Erste Schritte – aber wie? Ein hilfreicher Artikel war Getting Started with UML2, der auf zwei Wegen erklärt, wie man eine .uml-Datei mit Elementen wie Package, Class, etc. … erstellt; namlich einmal per mitgeliefertem Editor, bei dem die UML-Elemente in einer Baumstruktur angezeigt werden – so wie man das auch aus vielen grafischen Modellierungseditoren kennt – und einmal per Java-Code. “Per Java-Code” war genau das was ich gesucht habe. Nachdem ich mir die Code-Schnipsel und Erklärungen angesehen hatte, stellte sich mir die Frage, wie ich das selbst nachbauen konnte. Ich erstellte in Eclipse also ein neues Java-Projekt und fügte einfach mal einen Code-Schnipsel in die main(String[] args)-Methode ein. Natürlich meckerte Eclipse sofort, da es ja Klassen wie z.B. “Model” nicht...

Weiterlesen
Wird geladen