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. È 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. È 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 |
|