blob: 30da960e3dddfa125ec2b6c4259a77547d94bb20 [file] [log] [blame]
import classes : '../Classes.ecore#/';
import classescs : '../ClassesCS.ecore#/';
transformation classescs2as
{
check leftCS imports classescs;
enforce rightAS imports classes;
}
map mCreationRootCS2Root in classescs2as
{
guard:leftCS rootCS : RootCS;
new:rightAS root : Root;
set rootCS.ast := root;
}
map mCreationPackageCS2Package in classescs2as
{
guard:leftCS packageCS : PackageCS;
new:rightAS _'package' : Package;
set packageCS.ast := _'package';
}
map uPackage_name in classescs2as
{
guard:leftCS packageCS : PackageCS;
var l1 : classes::Package := packageCS.ast.oclAsType(classes::Package);
set l1.name := packageCS.name;
}
map uRoot_ownedPackages in classescs2as
{
guard:leftCS rootCS : RootCS;
var z1 : classes::Root := rootCS.ast.oclAsType(classes::Root);
set z1.ownedPackages :=
rootCS.ownedPackages.ast.oclAsType(classes::Package)->asOrderedSet();
}
map __root__ in classescs2as
{
for rootCS : classescs::RootCS in classescs::RootCS.allInstances() {
call mCreationRootCS2Root {
rootCS iterates rootCS;
}
}
for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() {
call mCreationPackageCS2Package {
packageCS iterates packageCS;
}
}
for rootCS : classescs::RootCS in classescs::RootCS.allInstances() {
call uRoot_ownedPackages {
rootCS iterates rootCS;
}
}
for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() {
call uPackage_name {
packageCS iterates packageCS;
}
}
}