blob: 78cf2ddf76503c4df7c1c390060af854151b76db [file] [log] [blame]
import classes : 'Classes.ecore#/';
import classescs : 'ClassesCS.ecore#/';
import classescstraces : 'classescs2as.ecore#/';
transformation classescs2as
{
leftCS imports classescs;
rightAS imports classes;
middle imports classescstraces;
}
map mRootCS2Root_LM in classescs2as
{
check leftCS(rootCS : RootCS) {}
enforce middle() {
realize r2r : RootCS2Root
}
where () {
r2r.rootCS := rootCS;
}
}
map mPackageCS2Package_LM in classescs2as
{
check leftCS(packageCS : PackageCS) {}
enforce middle() {
realize p2p : PackageCS2Package
}
where () {
p2p.packageCS := packageCS;
}
}
map mClassCS2Class_LM in classescs2as
{
check leftCS(classCS : ClassCS) {}
enforce middle() {
realize c2c : ClassCS2Class
}
where () {
c2c.classCS := classCS;
}
}
map mRootCS2Root_MR in classescs2as
{
check middle(r2r : RootCS2Root) {}
enforce rightAS() {
realize root : Root
}
where () {
r2r.root := root;
}
}
map mPackageCS2Package_MR in classescs2as
{
check middle(p2p : PackageCS2Package) {}
enforce rightAS() {
realize package : Package
}
where () {
p2p.package := package;
}
}
map mClassCS2Class_MR in classescs2as
{
check middle(c2c : ClassCS2Class) {}
enforce rightAS() {
realize class : Class
}
where () {
c2c.class := class;
}
}
map uRoot_ownedPackages in classescs2as
{
check rightAS(root : Root) {}
check leftCS(rootCS : RootCS) {}
where (rootCS.RootCS2Root.root = root;) {
root.ownedPackages := rootCS.ownedPackages.PackageCS2Package.package;
}
}
map uPackage_name in classescs2as
{
check rightAS(package : Package) {}
check leftCS(packageCS : PackageCS) {}
where (packageCS.PackageCS2Package.package = package;) {
package.name := packageCS.name;
}
}
map uPackage_ownedClasses in classescs2as
{
check rightAS(package : Package) {}
check leftCS(packageCS : PackageCS) {}
where (packageCS.PackageCS2Package.package = package;) {
package.ownedClasses := packageCS.ownedClasses.ClassCS2Class.class;
}
}
map uClass_name in classescs2as
{
check rightAS(class : Class) {}
check leftCS(classCS : ClassCS) {}
where (classCS.ClassCS2Class.class = class;) {
class.name := classCS.name;
}
}
map __root__ in classescs2as
{
where () {}
for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() {
call mPackageCS2Package_LM {
packageCS := packageCS;
}
}
for p2p : classescstraces::PackageCS2Package in classescstraces::PackageCS2Package.allInstances() {
call mPackageCS2Package_MR {
p2p := p2p;
}
}
for packageCS : classes::Package in classescs::PackageCS.allInstances() {
for package : classescs::PackageCS in classes::Package.allInstances() {
call uPackage_name {
package := package;
packageCS := packageCS;
}
}
}
for classCS : classes::Package in classescs::ClassCS.allInstances() {
call mClassCS2Class_LM {
classCS := classCS;
}
}
for c2c : classescs::ClassCS in classescstraces::ClassCS2Class.allInstances() {
call mClassCS2Class_MR {
c2c := c2c;
}
}
for package : classescstraces::ClassCS2Class in classes::Package.allInstances() {
for packageCS : classes::Class in classescs::PackageCS.allInstances() {
call uPackage_ownedClasses {
packageCS := packageCS;
package := package;
}
}
}
for classCS : classescs::ClassCS in classescs::ClassCS.allInstances() {
for class : classes::Class in classes::Class.allInstances() {
call uClass_name {
class := class;
classCS := classCS;
}
}
}
for package : classescs::RootCS in classes::Package.allInstances() {
for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances() {
call uPackage_ownedClasses {
packageCS := packageCS;
package := package;
}
}
}
for rootCS : classescstraces::RootCS2Root in classescs::RootCS.allInstances() {
call mRootCS2Root_LM {
rootCS := rootCS;
}
}
for r2r : classescs::RootCS in classescstraces::RootCS2Root.allInstances() {
call mRootCS2Root_MR {
r2r := r2r;
}
}
for root : classes::Root in classes::Root.allInstances() {
for rootCS : classescs::RootCS in classescs::RootCS.allInstances() {
call uRoot_ownedPackages {
rootCS := rootCS;
root := root;
}
}
}
}