| modeltype ECORE uses 'http://www.eclipse.org/emf/2002/Ecore'; |
| |
| |
| transformation t( |
| in inModel : ECORE, out outModel : ECORE); |
| |
| |
| main() { |
| inModel.rootObjects()[EPackage]->map p2p(); |
| } |
| |
| constructor EClass::EClass(s : String, op : EOperation) { |
| name := s; |
| eOperations += op; |
| } |
| |
| mapping EPackage::p2p() : EPackage { |
| name := self.name; |
| eClassifiers += self.eClassifiers->map c2c(); |
| } |
| |
| mapping EClassifier::c2c() : EClassifier { |
| init { |
| if (self.name = 'A') then { |
| result := new EDataType(); |
| } else { |
| result := new EClass(); |
| } endif; |
| } |
| name := 'mapped' + self.name; |
| } |