Os objetos de entrada e saída de pacote contêm um recurso denominado packagedElement. Esse recurso é uma coleta que contém diferentes tipos de objetos UML válidos. As regras de mapeamento que você criar nesta lição definirão como a transformação processa os elementos de coleta que são do tipo pacote ou classe.
A Lição 3: Criar e Refinar uma Declaração de Mapeamento de Classe para Classe mostrou que, para cada regra de mapeamento de movimentação em uma declaração de mapeamento, uma regra que copia um valor de atributo do modelo de origem para o modelo de destino é incluída no código-fonte da transformação gerado. Para cada regra de mapeamento de submapa, um extrator que extrai elementos na coleta especificada é gerado no código-fonte da transformação. A regra de submapa será aplicada a um objeto se o objeto de entrada atual for uma instância do tipo de entrada definido na declaração de mapeamento.
Quando você executar a transformação gerada, se o modelo de origem contiver um pacote, a transformação Package2PackageTransform será chamada e criará um pacote com o mesmo nome no modelo de destino. A transformação Package2PackageTransform atravessa a coleta do recurso packagedElement. Para cada elemento de coleta que for do tipo pacote, significando que o modelo de origem contém pacotes aninhados, a transformação invocará a transformação Package2PackageTransform. Para cada elemento de coleta que for do tipo classe, a transformação invocará as regras para transformar a classe em uma classe e uma interface correspondentes no modelo de saída de destino.
Para criar uma declaração de mapeamento de pacote para pacote no modelo de mapeamento:
Depois de criar a declaração de mapeamento, você precisa incluir nela um objeto de entrada e um objeto de saída. Nesta lição, você especificará um pacote UML como objeto de entrada e saída.
Para incluir um objeto de entrada e um objeto de saída na declaração de mapeamento de pacote para pacote:
Para criar as regras de mapeamento entre os atributos dos objetos de entrada e saída de pacote: