| transformation mm_header4(in ecore1 : ECORE, in ecore2 : ECORE, in ecore3 : ECORE, out uml : SIMPLEUML, out rdb : RDB); |
| |
| 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'; |
| |
| mapping main(in p1 : EPackage@ecore3, out u : Package, in p2 : EPackage@ecore1, in p3 : EPackage@ecore2) { |
| init { |
| u := object SIMPLEUML::Package {name := 'uml'}; |
| u.ownedElements := p1.eClassifiers->select(c|c.oclIsKindOf(EClass)) |
| ->collect(c|c.oclAsType(EClass).map toClass())->asOrderedSet(); |
| u.ownedElements += p2.eClassifiers->select(c|c.oclIsKindOf(EClass)) |
| ->collect(c|c.oclAsType(EClass).map toClass()); |
| u.ownedElements += p3.eClassifiers->select(c|c.oclIsKindOf(EClass)) |
| ->collect(c|c.oclAsType(EClass).map toClass()); |
| |
| object rdb::Table {name := 'table'}; |
| } |
| } |
| |
| mapping EClass::toClass() : Class { |
| name := self.name + '_Cls'; |
| } |