| modeltype SIMPLEUML uses "http://www.eclipse.org/qvt/1.0.0/Operational/examples/simpleuml"; |
| modeltype ECORE uses "http://www.eclipse.org/emf/2002/Ecore"; |
| modeltype RDB uses 'http://www.eclipse.org/qvt/1.0.0/Operational/examples/rdb'; |
| |
| transformation exec2(in model1 : ECORE, in model2 : ECORE, out uml : SIMPLEUML, out rdb : RDB); |
| |
| main(out uPackage : Package, out table : Table) { |
| |
| uPackage := object Package {name := 'pack1'}; |
| uPackage.ownedElements := model1.objects()->select(c|c.oclIsKindOf(EClass)) |
| ->collect(c|c.oclAsType(EClass).map toClass())->asOrderedSet(); |
| |
| var umlPackage2 := object Package {name := 'pack2'}; |
| umlPackage2.ownedElements += model2.objects()->select(c|c.oclIsKindOf(EClass)) |
| ->collect(c|c.oclAsType(EClass).map toClass())->asSet(); |
| |
| table := object Table {name := 'table'}; |
| table.columns += object TableColumn { name := 'col' }; |
| } |
| |
| mapping EClass::toClass() : Class { |
| name := self.name + '_Cls1'; |
| } |