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