É
possível alterar a ordem de processamento de declarações de mapeamento em uma transformação. Essa funcionalidade é útil para especificar instruções de processamento para objetos de
entrada que podem ser processados e consumidos por uma declaração de mapeamento menos específica.
A visualização
Esboço lista as declarações de mapeamento na ordem em que serão processadas quando você executar o código de transformação gerado.
Antes de Iniciar
É necessário ter um modelo de mapeamento aberto. Um modelo de mapeamento tem .mapping como extensão de nome de arquivo. O
modelo de mapeamento deve conter pelo menos duas declarações de mapeamento.
Por Que e Quando Desempenhar Esta Tarefa
Para alterar a ordem em que a transformação gerada
processa as declarações de mapeamento no modelo de mapeamento:
- Se a visualização Esboço não estiver visível, clique em .
- Na visualização Esboço, clique com o botão direito do mouse em uma declaração
de mapeamento e, em seguida, clique em Ordem de Execução e conclua
uma das seguintes etapas:
- Para classificar todas as declarações de mapeamento por seus tipos de objetos de entrada,
do menos abstrato para o mais abstrato, clique em Configurar todos com a ordem
padrão.
- Para mover o mapa selecionado na lista de declarações de mapeamento, clique em Mover
para cima ou Mover para baixo.
- Clique em .
Exemplo
Por exemplo, considere um modelo de mapeamento que tenha duas declarações de mapeamento:
Class2EClass e Classifier2EClass. A declaração de mapeamento Class2EClass define
uma classe UML como seu objeto de entrada; a declaração de mapeamento Classifier2EClass
define um classificador UML como seu objeto de entrada.
A transformação gerada
para Classifier2EClass aceita vários objetos de entrada, como classes UML
e interfaces UML. Neste exemplo, se for necessário processamento especial para
classes UML, mas processamento padrão para classificadores UML, você deverá
mover a declaração de mapeamento Class2EClass para o topo da lista de declarações de
mapeamento na visualização Esboço. Se Classifier2EClass estiver mais alto na lista do que
Class2EClass, a transformação Class2EClass nunca será executada porque a transformação
Classifier2EClass consome todos os objetos de classe encontrados no
modelo de entrada.