Configuración de ejemplo para una transformación de modelo a modelo que utiliza un diagrama para especificar la entrada

Este ejemplo muestra cómo utilizar un diagrama para especificar la entrada para una transformación de modelo a modelo. Este tema explica cómo utilizar y cómo configurar esta especie de transformación.
Antes de empezar
Utilice las instrucciones del tema "Instrucciones de configuración para una transformación de modelo a modelo que utiliza un diagrama para especificar la entrada" para configurar el ejemplo.
  1. En el entorno de trabajo de tiempo de ejecución, examine el origen y configuración de transformación.
    1. Expanda Diagramas y modelos y tenga en cuenta que ambos elementos de diagrama y modelo están incluidos en el proyecto origen.
    2. Pulse con el botón derecho sobre run test.tc y a continuación pulse Abrir > Editor de configuraciones de transformación.
    3. En el Editor de configuraciones de transformación, pulse la pestaña Propiedades. Tenga en cuenta el valor especificado para la propiedad DiagramName es Main1, que es uno de los diagramas del proyecto.
    4. En el Editor de configuraciones de transformación, pulse la pestaña Principal y a continuación pulse Ejecutar.
    5. Examine la salida de la transformación. La salida incluye Class2, Class4 y Class6, tal como se especifica en el diagrama de entrada llamado Main1.
  2. Para entender cómo está configurada la transformación, examine el proyecto importado en el espacio de trabajo.
    1. Expanda src, expanda com.ibm.xtools.transform.authoring.examples.classesindiagram, y abra la clase TransformationProvider ClassesInDiagramTransformationProvider.
    2. Fíjese en que la clase TransformationProvider recupera el nombre del diagrama del contexto de transformación y lo almacena en una variable global. El código tiene el aspecto siguiente:
      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 el modelo y abra el archivo de correlación que se llama ClassesInDiagram.mapping.
    4. En la declaración de correlación Model2Model, pulse con el botón derecho sobre la segunda subcorrelación packagedElement-to-packagedElement y pulse Mostrar en propiedades. Esta subcorrelación es la correlación Class2Class.
    5. En la ventana Propiedades, pulse la pestaña Extractor personalizado. Fíjese en que el extractor personalizado utiliza la variable global para determinar qué clases deben procesarse haciendo referencia al contenido del diagrama especificado. Esta misma variable global la utiliza el extractor personalizado en la subcorrelación Class2Class de la declaración de correlación Package2Package.
  3. En el entorno de trabajo de tiempo de ejecución, en el editor de configuraciones de transformación, en la página Propiedades, sustituya el valor del campo diagramName por "Main2" y vuelva a ejecutar la transformación. Esta vez, la transformación falla.

    La transformación falla cuando el diagrama Main2 se denomina en la configuración porque el modelo origen contiene una generalización de Class5 a Class; sin embargo, Class1 no se copió en el modelo destino porque no aparecía en el diagrama especificado.

    Cuando cree una transformación, tenga en cuenta que la transformación debe incluir todos los objetos a los que se hace referencia que estén contenidos en el mismo modelo para que se puedan resolver todas las referencias internas del modelo.

Información relacionada
Instrucciones de configuración para una transformación de modelo a modelo que utiliza un diagrama para especificar la entrada

Comentarios