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