Skip to content

[MediniQVT] Procesar atributos de una clase excluyendo relaciones

octubre 17, 2012

Esto me dio bastante trabajo sacarlo, más que nada por la poca documentación de MediniQVT aplicado a UML.

 

En el where de una relación hago esto

 

where {
       myclass.ownedAttribute->forAll (att|
                       if not (att.type.oclIsTypeOf(uml::Class)) 
                       then 
                             auxiliarRelation (att, another_class)
                      else
                             true
                      endif
              );
 }

De esta forma se recorren todos los atributos de la clase, invocando axiliarRelation cuando se trata de un atributo simple, y no de una relación con una clase.

Entonces tengo una relación que me hace esa transformación que quiero hacer con los atributos simples:

relation auxiliarRelation{

     checkonly domain source att:uml::Property{};
 
     enforce domain target another_class:uml::Class{
          ownedAttribute = atribs:uml::Property{
            name = att.name,
            type = att.type 
            --así se copian los atributos
          }
     };
 }
Anuncios

From → QVT, UML

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: