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';
}
