Questo tutorial fa seguito a quello dedicato alla modellazione con EMF ( Eclipse EMF: Progettare il Modello)
In questo articolo vedremo come, attraverso i tools di generazione automatica di codice propri di EMF, sia possibile generare un CRUD, cioè un applicativo in grado di eseguire le tipiche operazioni per la gestione dei contenuti del modello stesso: Create(=Insert), Read(=Select), Update e Delete.

Tale gestione presuppone tuttavia una qualche forma di persistenza, ovvero un “canale” di memorizzazione di tali informazioni. Infatti nella maggior parte dei casi è opportuno poter, ad esempio:

  • ricaricare i dati memorizzati durante una precedente esecuzione
    oppure
  • condividere i dati con altre istanze dello stesso o di altri applicativi

Il meccanismo di persistenza di default di EMF prevede la memorizzazione delle informazioni su file system, tramite file in formato XMI (XML Metadata Interchange, uno standard OMG per lo scambio di dati attraverso XML).

Per ottenere un’applicazione in grado di gestire i nostri dati in questo formato, sono sufficienti i seguenti passi.
Facendo riferimento al tutorial precedente (menzionato sopra), riapriamo il file Library.genmodel, selezioniamo la root della struttura, visualizziamo la view delle Properties e modifichiamo la property Runtime Platform impostando il valore “RCP” (al posto di “IDE”), quindi salviamo (File -> Save).

Quindi selezioniamo nuovamente l’elemento root, eseguiamo tasto destro “Generate Edit Code” e poi “Generate Editor Code“.

 

Otterremo due nuovi plugin:

  • it.rcpvision.rcptutorial.model.edit
  • it.rcpvision.rcptutorial.model.editor

In particolare l’ultimo (it.rcpvision.rcptutorial.model.editor) può essere eseguito come applicazione RCP semplicemente selezionandolo e facendo tasto destro Run As -> Eclipse Application.

Il risultato dovrebbe essere il seguente

Se ora selezioniamo File -> New -> Library Model
ci troveremo a dover impostare valori nella seguente dialog

Nel primo campo andiamo ad impostare il path completo del file XMI che conterrà i nostri dati (notate che l’estensione del file .library è legata al nome iniziale che abbiamo attribuito al nostro ecore).
Il secondo campo indica invece di che tipo (EClass) EMF sarà l’elemento root all’interno di tale file XMI. Per come abbiamo progettato il Modello, tutte le entità sono contenute all’interno della classe Library, pertanto selezioniamo questa come Model Object. Premiamo quindi Finish.

Da qui abbiamo a disposizione un CRUD, molto essenziale, ma efficace, per:

  • aggiungere un nuovo Author

  • impostarne i valori degli attributi

 

  • creare un nuovo Book

  • impostare un titolo e gli autori


e via di seguito, popolando la nostra library di oggetti Book e Author legati fra loro secondo le relazioni specificate nel Modello EMF. Il tutto (per ora) in un file XMI memorizzato sul file system, che possiamo riaprire al prossimo riavvio dell’applicazione, ritrovando i dati impostati in precedenza e naturalmente con l’opzione di poterli di nuovo gestire (aggiungere, eliminare e modificare) e salvare.

Nel prossimo tutorial vedremo come tale CRUD, con alcune modifiche al codice generato (da notare che finora non abbiamo dovuto mettere mano in alcun modo a tale codice!) possa permetterci di cambiare modalità di persistenza da file XMI a un Database Relazionale.

Torna all’indice