| |
| modeltype ECORE uses "http://www.eclipse.org/emf/2002/Ecore"; |
| |
| transformation stdlibModel(in inModel : ECORE, out outModel : ECORE); |
| |
| main() { |
| var p := object EPackage { name := 'Root' }; |
| |
| object EClass { name := 'A' }; |
| object EClass { |
| name := 'B'; |
| eStructuralFeatures += object EAttribute { |
| name := 'attr'; |
| } |
| }; |
| |
| p.eClassifiers += outModel.objects()[EClass]; |
| |
| |
| var modelCopy : Stdlib::Model := outModel.copy(); |
| assert fatal(modelCopy.objects()->size() = outModel.objects()->size()); |
| assert fatal(not modelCopy.objects()->includesAll(outModel.objects())); |
| |
| |
| modelCopy.rootObjects()->forEach(i) { |
| modelCopy.removeElement(i); |
| }; |
| |
| assert fatal (modelCopy.objects()->isEmpty()); |
| |
| var emptyModel : Model := ECORE.createEmptyModel(); |
| assert fatal (emptyModel.rootObjects()->isEmpty()); |
| assert fatal (emptyModel.objects()->isEmpty()); |
| } |