Gli oggetti di input e di output del package contengono una funzione chiamata packagedElement. Questa funzione è una raccolta che contiene diversi tipi di oggetti UML validi. Le regole di associazione create in questa lezione definiscono come la trasformazione elabora gli elementi della raccolta di tipo package o classe.
Nella Lezione 3: Creazione e perfezionamento della dichiarazione di associazione classe-a-classe si è spiegato che per ciascuna regola di associazione di spostamento in una dichiarazione di associazione, viene aggiunta una regola che copia il valore di un attributo dal modello di origine al modello di associazione al codice sorgente del trasformatore generato. Per ciascuna regola di associazione secondaria, nel codice sorgente del trasformatore viene generato un estrattore che estrae gli elementi dalla raccolta specificata. La regola di associazione secondaria viene applicata ad un oggetto se l'oggetto di input corrente è un'istanza del tipo di input definito nella dichiarazione di associazione.
Quando si esegue la trasformazione generata, se il modello di origine contiene un package, viene richiamato il trasformatore Package2PackageTransform che crea un package con lo stesso nome nel modello di destinazione. Il trasformatore Package2PackageTransform attraversa la raccolta della funzione packagedElement. Per ciascun elemento della raccolta di tipo package, che indica che il modello di origine contiene package nidificati, il trasformatore richiama il trasformatore Package2PackageTransform. Per ciascun elemento nella raccolta di tipo classe, il trasformatore richiama le regole per trasformare la classe in una classe e interfaccia corrispondenti nel modello di output di destinazione.
Per creare una dichiarazione di associazione package-a-package nel modello di associazione:
Dopo aver creato la dichiarazione di associazione, è necessario aggiungervi un oggetto di input e un oggetto di output. In questa lezione, viene specificato un package UML come oggetto di input e di output.
Per aggiungere un oggetto di input e un oggetto di output alla dichiarazione di associazione package-a-package:
Per creare le regole di associazione tra gli attributi degli oggetti di input e di output del package: