Dettagli esempio di trasformazione da modello a testo

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:

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

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