Domanda

Ho creato un metamodello ecore e generato un editor tramite EMF.Per generare il mio codice di output I Parse il set di risorse (XMI) quando viene creato uno schema e quindi mappare queste risorse alle mie classi Java.Queste classi Java sono responsabili della generazione del mio output che sono alcuni file JavaScript in base a pochi file del modello (.stg). Tutto funziona bene, ma la mia domanda è dove arrivano le tecnologie come Xtend / Acceleo?Ho bisogno di nessuno di loro?So che sono basati con i modelli, ma dal momento che i miei modelli sono resi attraverso le mie classi Java, perché dovrei usare Xtend ad esempio?Sono totalmente confuso.

Grazie mille

È stato utile?

Soluzione

Xtend è una lingua generale.Potresti chiamarlo una "Java migliore".Questo è particolarmente vero per la modellazione, perché Xtend ha carino espressioni del modello .Quindi, se vuoi che il tuo codice generatore sia più leggibile, potresti sostituire alcune classi Java con le classi Xtend.Non è necessario riscrivere tutto, Xtend interopera perfettamente con Java.Riscrivi solo le parti che beneficiano di più dalle ricche caratteristiche della lingua di Xtend.

Altri suggerimenti

Si utilizza il quadro di modellazione Eclipse Enterprise (EMF). Ciò fornisce il Meta Modell ECore Meta e può generare redattori basati sulla finestra di dialogo di base. Fondamentalmente EMF porta i tuoi diagrammi dal formato file XMI a un modello di oggetto standardizzato, simile a un DOM.

Probabilmente usi anche il framework dell'editor grafico (GEF) per visualizzare i diagrammi. Ci vuole il tuo DOM e lo rende in una rappresentazione grafica. Di solito è anche possibile modificare la grafica utilizzando l'interfaccia utente grafica, che cambierà anche il contenuto del tuo DOM.

Parallelo al GEF esiste anche un framework di Editor testuale chiamato XTEXT. Porta il tuo DOM a una rappresentazione testuale. È quindi possibile utilizzare un editor di testo per modificare la rappresentazione testuale. XTEXT può analizzare questo testo modificato e modificare il DOM di conseguenza. Inoltre genera un bell'editor Eclipse con sintassi alto fulmine, piegatura del codice, completamento del codice e possibilità di estensioni per il completamento del codice personalizzato e il refactoring.

XTEXT può essere aumentato da XBASE. XBASE è un linguaggio di programmazione di base che funziona sulla Java VM. È quindi possibile fornire una mappatura dai tuoi manufatti di eCore ai concetti XBase (ad esempio quale oggetto Ecore rappresenta un'istruzione IF o un ciclo). XBASE può quindi generare java bytecode e quindi convertire il modello di ecore in codice rigidabile.

Xtend è una lingua generale. Viene spesso usato come un motore modello molto avanzato per convertire il modello di Ecore in testo. In contrasto con XTEXT non c'è modo di ritorno per convertire il testo generato al Dom Ecore. Naturalmente è possibile utilizzare qualsiasi motore modello o anche XTEXT / XBASE per generare il tuo codice runnicabile in base alle proprie esigenze.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top