blob: 295d0ebdd71f669c4f8ca77e572e12bc3fb96980 [file] [log] [blame]
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)
}
}