Frage

Ich habe ein ECORE-Metamodier erstellt und einen Editor über EMF erzeugt.Um meinen Ausgabecode zu generieren, arrangiere ich den Ressourcen-Set (XMI), wenn ein Diagramm erstellt wird, und dann diese Ressourcen zu meinen eigenen Java-Klassen zuordnen.Diese Java-Klassen sind dafür verantwortlich, meine Ausgabe zu generieren, die einige JavaScript-Dateien basieren, die auf wenigen Vorlagendateien (.stg) basieren. Alles funktioniert gut, aber meine Frage ist, wo Kommtechnologien wie Xtend / Acceleo kommen?Brauche ich eines von ihnen?Ich weiß, dass sie Template-basiert sind, aber da ich meine eigenen Vorlagen habe, die durch meine Java-Klassen gerendert werden, warum muss ich zum Beispiel Xtend verwenden?Ich bin total verwirrt.

vielen Dank

War es hilfreich?

Lösung

xtend ist eine Allzwecksprache.Sie könnten es als "bessere Java" nennen.Dies gilt insbesondere für das Vorlagen, denn Xtend hat schöne Template-Ausdrücke .Wenn Sie möchten, dass Ihr Generatorcode lesender ist, können Sie einige Java-Klassen mit Xtend-Klassen ersetzen.Sie müssen nicht alles neu schreiben, Xtend interoperiert nahtlos mit Java.Umschreiben Sie einfach die Teile, die am meisten von den reichen Sprachfunktionen von Xtend profitieren.

Andere Tipps

Sie verwenden das Eclipse Enterprise Modeling Framework (EMF). Dies liefert Ihnen das Ecore Meta Modell und können grundlegende Dialog-basierte Redakteure generieren. Grundsätzlich bringt EMF Ihre Diagramme aus dem XMI-Dateiformat auf ein standardisiertes Objektmodell, ähnlich einem DOM.

Sie verwenden wahrscheinlich auch den grafischen Editorahmen (GEF), um Ihre Diagramme zu visualisieren. Es braucht deinen Dom und macht es in eine grafische Darstellung. Normalerweise können Sie die Grafiken auch mit der grafischen Benutzeroberfläche ändern, die dann auch den Inhalt Ihres DOM ändern wird.

Parallel zum GEF gibt es auch einen Text-Editor-Framework namens XTEXT. Es bringt Ihren Dom zu einer textuellen Darstellung. Sie können dann einen Texteditor verwenden, um die Textdarstellung zu ändern. XTEXT kann diesen geänderten Text analysieren und den DOM entsprechend ändern. Zusätzlich erzeugt er einen schönen Eclipse-Editor mit Syntax-Hohen Blitz, Code-Falten, Code-Fertigstellung und Möglichkeiten für Erweiterungen für den Code-Abschluss und das Refactoring.

xtext kann von XBase erweitert werden. XBase ist eine grundlegende Programmiersprache, die auf dem Java VM läuft. Sie können dann ein Mapping von Ihren ECORE-Artefakten an XBASE-Konzepte (z. B. welches Ecore-Objekt eine IF-Anweisung oder eine Schleife darstellt). XBASE kann dann Java Bytecode generieren und somit Ihr ECORE-Modell in den ausgeführten Code konvertieren.

xtend ist eine Allzwecksprache. Es wird häufig als sehr fortschrittlicher Template-Engine verwendet, um Ihr ECORE-Modell auf Text umzuwandeln. Im Gegensatz zu XTEXT gibt es nicht zurück, den erzeugten Text wieder in den Ecore DOM umzuwandeln. Natürlich können Sie eine beliebige Template-Engine oder sogar XTEXT / XBase verwenden, um Ihren ausgeführbaren Code entsprechend Ihren Bedürfnissen zu generieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top