Questo esempio contiene le tre trasformazioni di seguito riportate:
Trasformazione |
Descrizione |
Da classe a testo -> Console
|
Questa trasformazione accetta una classe UML come origine e scrive una descrizione della classe (il nome della classe e i relativi attributi e operazioni e i parametri di delle operazioni) nella vista Console.
|
Da classe a testo -> File
|
Questa trasformazione è uguale alla trasformazione da Classe a Console di testo, ma scrive i risultati in un file invece della vista Console.
|
Da stato a JSP
|
Questa trasformazione accetta una macchina di stato come origine e genera una pagina JSP per ciascuno stato che ha uno stereotipo dal profilo ScreenFlow.
|
Per comprendere il modo in cui sono create le trasformazioni, è necessario eseguire le trasformazioni stesse ed esplorare il codice di origine. Per leggere il codice sorgente, è necessario seguire queste linee guida:
-
Verificare le classi Java che implementano le regole. Le classi vengono visualizzate nei pacchetti i cui nomi terminano con
.rules .
-
Una serie di regole viene combinata in una o più trasformazioni. Le trasformazioni sono implementate dalle classi Java nei pacchetti i cui nomi terminano con
.transforms . Leggere prima il codice delle classi transform e poi quello delle classi root transforms .
-
Infine, verificare il file manifest plug-in
plugin.xml e
il codice per la classe TransformationProvider per comprendere il modo in cui sono collegate le trasformazioni al relativo servizio.
Trasformazione da classe a testo
Questa trasformazione accetta una classe UML, un pacchetto o un modello come origine e scrive i nomi delle classi e i relativi attributi e operazioni, oltre ai parametri delle operazioni nella vista Console o in un file.
Se si sceglie un modello o un pacchetto come origine, la trasformazione scrive i dettagli di tutte le classi contenute nel modello o pacchetto.
Questa trasformazione ha due varianti:
-
Da classe a testo -> Console: questa trasformazione scrive l'output nella vista Console e non è necessaria una destinazione.
Questa trasformazione di esempio illustra il modo in cui effettuare le seguenti attività:
-
Creare semplici regole e combinarle in una o più trasformazioni
-
Creare un fornitore di trasformazione
-
Descrivere una trasformazione e il relativo fornitore nel file manifest plug-in,
plugin.xml
- Da classe a testo -> File: questa trasformazione scrive l'output in un file e richiede un progetto come destinazione. Per impostazione predefinita, crea un file denominato
class2text.txt nella cartella ClassToTextOutput , nel progetto specificato. E' possibile utilizzare la proprietà della trasformazione Nome file di destinazione per modificare il nome predefinito del file.
Questa trasformazione di esempio illustra il modo in cui eseguire queste attività aggiuntive:
-
Descrivere le proprietà della trasformazione nel file manifest plug-in
plugin.xml
-
Modificare le proprietà della trasformazione nella regola
Trasformazione da stato a JSP
Questa trasformazione accetta uno stato UML in una macchina di stato come propria origine e genera una pagina web in forma di file JSP utilizzando JET (Java Emitter
Templates). Se viene scelta una macchina di stato o una regione come origine, la trasformazione genera un file JSP per ciascuno stato nella macchina di stato o regione cui è applicato lo stereotipo dal profilo ScreenFlow.
Questa trasformazione di esempio illustra il modo in cui effettuare le seguenti attività:
-
Utilizzare stereotipi e parole chiave per eseguire il trigger delle regole in modo selettivo
-
Combinare le funzioni JET e le trasformazioni per generare del testo
Per preparare la macchina di stato di origine per la trasformazione, è necessario applicare il profilo ScreenFlow al modello UML contenente la macchina di stato e contrassegnarla applicando gli stereotipi nel profilo ScrrenFlow
agli stati.
Il profilo ScreenFlow contiene quattro stereotipi: form , editform ,
selectlist e display .
Tali stereotipi determinano lo stile di visualizzazione del contenuto dinamico della pagina generata. L'esempio utilizza gli stereotipi per determinare se lo stile di visualizzazione è un modulo editabile o un elenco selezionabile e così via. Se si applica più di uno stereotipo a uno stato, la trasformazione considera solo il primo stereotipo.
Inoltre, l'esempio utilizza le proprietà degli stereotipi per determinare i dati scambiati tra le pagine JSP.
La trasformazione genera una pagina JSP corrispondente ad uno stato solo se uno dei quattro stereotipi viene applicato allo stato.
Se i file JSP esistono già, la trasformazione non li sovrascirve quando viene eseguita. E' possibile modificare questa opzione impostando il valore della proprietà della trasformazione Sovrascrivi output dei file su true .
Profilo ScreenFlow
La tabella di seguito riportata illustra gli stereotipi nel profilo ScreenFlow e le relative proprietà. I valori che si trovano nella tabella sono solo a scopo illustrativo.
Stereotipo |
Classe di base |
Proprietà:Valori |
Descrizione |
visualizza
<<visualizza>> |
Stato |
entità:Contatto
campi:nome, indirizzo |
Indica che la pagine JSP generata visualizza i dettagli del contatto: nome e indirizzo |
editform
<<editform>> |
Stato |
entità:Contatto
campi:nome, indirizzo |
Indica che la pagine JSP generata contiene un modulo editabile in cui è possibile immettere o modificare i dettagli del contatto: nome e indirizzo |
modulo
<<modulo>> |
Stato |
campi:userName |
Indica che la pagine JSP generata contiene un modulo per immettere il nome utente |
selectlist
<<selectlist>> |
Stato |
entità:Contatto
campi:nome, indirizzo
selectfield:id |
Indica che la pagine JSP generata contiene un elenco di contatti che possono essere utilizzati per selezionare un contatto con un ID specifico |
|