blob: fc7750ae9187d10c60724bb62b803f04a0ffcb5a [file] [log] [blame]
import classes : '../Classes.ecore#/';
import classescs : '../ClassesCS.ecore#/';
transformation classescs2as
{
leftCS imports classescs;
rightAS imports classes;
map mCreationRootCS2Root
{
guard:leftCS rootCS : RootCS;
new:rightAS root : Root;
set rootCS.ast := root;
}
map mCreationPackageCS2Package
{
guard:leftCS packageCS : PackageCS;
new:rightAS _'package' : Package;
set packageCS.ast := _'package';
}
map uPackage_name
{
guard:leftCS packageCS : PackageCS;
var l1 : classes::Package := packageCS.ast.oclAsType(classes::Package);
set l1.name := packageCS.name;
}
map uRoot_ownedPackages
{
guard:leftCS rootCS : RootCS;
var z1 : classes::Root := rootCS.ast.oclAsType(classes::Root);
set z1.ownedPackages :=
rootCS.ownedPackages.ast.oclAsType(classes::Package)->asOrderedSet();
}
entry __root__ check leftCS enforce rightAS
{
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;
}
}
}
}