Configuração de Amostra de uma Transformação de Modelo-a-Modelo que Usa um Diagrama para Especificar a Entrada

Essa amostra mostra como usar um diagrama para especificar a entrada de uma transformação de modelo-a-modelo. Este tópico explica como executar e como configurar esse tipo de transformação.
Antes de Iniciar
Use as instruções no tópico "Configurar Instruções para uma Transformação de Modelo-a-Modelo que Usa um Diagrama para Especificar a Entrada" para configurar a amostra.
  1. No ambiente de trabalho de tempo de execução, examine a configuração de origem e de transformação.
    1. Expanda Diagramas e Modelos e observe que os elementos de diagrama e modelo estão incluídos no projeto de origem.
    2. Clique com o botão direito do mouse em Executar test.tc em em seguida clique em Abrir > Editor de Configuração de Transformação.
    3. No editor de configuração de transformação, clique na guia Propriedades. Observe que o valor especificado para a propriedade DiagramName é Main1, que é um dos diagramas no projeto.
    4. No editor de configuração de transformação, clique na guia Principal e, em seguida, clique em Executar.
    5. Examine a saída da transformação. A saída inclui Class2, Class4 e Class6, conforme especificado no diagrama de entrada denominado Main1.
  2. Para compreender como a transformação é configurada, examine o projeto importado na área de trabalho.
    1. Expanda src, expanda com.ibm.xtools.transform.authoring.examples.classesindiagram e abra a classe TransformationProvider, ClassesInDiagramTransformationProvider.
    2. Observe que a classe TransformationProvider recupera o nome do diagrama do contexto de transformação e o armazena em uma variável global. O código é semelhante a este:
      protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
            return new RootTransformation(descriptor, new MainTransform() {
      		@Override
      		public void execute(ITransformContext context) throws Exception {
      			diagramName = (String)context.getPropertyValue("diagramname");
      			super.execute(context);
      		}        	
             });
         }
      
         public static String diagramName = null;
    3. Expanda o modelo e abra o arquivo de mapeamento que é denominado ClassesInDiagram.mapping.
    4. Na declaração do mapeamento Model2Model, clique com o botão direito do mouse no segundo submapa packagedElement-para-packagedElement e clique em Mostrar em Propriedades. Esse submapa é o mapeamento Class2Class.
    5. Na janela Propriedades, clique na guia Extrator Customizado. Observe que o extrator customizado usa a variável global para determinar quais classes devem ser processadas, fazendo referência ao conteúdo do diagrama especificado. O extrator customizado do mapeamento do submapa Class2Class na declaração do mapeamento Package2Package faz o mesmo.
  3. No ambiente de trabalho de tempo de execução, no editor de configuração de transformação, na página Propriedades, substitua o valor no campo diagramName por "Main2" e execute novamente a transformação. Nesse momento, a transformação falha.

    A transformação falha quando o diagrama Main2 é nomeado na configuração porque o modelo de origem contém uma generalização de Class5 para Class. No entanto, a Class1 não foi copiada no modelo de destino porque ele não apareceu no diagrama especificado.

    Quando você criar uma transformação, observe que a transformação deverá incluir todos os objetos referidos que estão contidos no mesmo modelo, para que todas as referências dentro do modelo possam ser resolvidas.

Informações relacionadas
Configurar Instruções para uma Transformação de Modelo-a-Modelo que Usa um Diagrama para Especificar a Entrada

Feedback