| modeltype UML "strict" uses simpleuml('http://www.eclipse.org/qvt/1.0.0/Operational/examples/simpleuml'); |
| |
| transformation UMLFoo(inout uml : UML); |
| |
| main() { |
| var c := uml.objects()![Class]; |
| var p := c.owner; |
| |
| var i := object UML::Class { |
| name := "I" + c.name; |
| attributes := c.attributes[name = "foo"]; |
| }; |
| |
| p.ownedElements += i; |
| |
| c.generalizations += object Generalization { |
| isSubstitutable := false; |
| general := c; |
| }; |
| |
| (uml.objects()[ModelElement])[stereotype->includes('stereo')]->map updateReferredType(i); |
| |
| c.name := c.name + "Impl"; |
| } |
| |
| mapping inout ModelElement::updateReferredType(in newType : Type) { |
| taggedValue += object TaggedValue { |
| value := newType.stereotype->any(true) |
| } |
| } |