blob: eea0dea728f8ead07dc190be3d14620ca641f4a4 [file] [log] [blame]
transformation lateresolvebyrule;
modeltype SIMPLEUML uses 'http://www.eclipse.org/qvt/1.0.0/Operational/examples/simpleuml';
mapping main(in model: simpleuml::Model): simpleuml::Model {
name := model.name;
stereotype := model.stereotype;
taggedValue := model.taggedValue;
ownedElements += model.ownedElements->select(oclIsKindOf(simpleuml::Package))->
collect(p | package2package(p.oclAsType(simpleuml::Package)))->asOrderedSet();
ownedElements += model.ownedElements->select(oclIsKindOf(simpleuml::Class))->
collect(p | p.oclAsType(simpleuml::Class).class2class())->asOrderedSet();
}
mapping package2package(in pack: simpleuml::Package): simpleuml::Package {
name := pack.name;
stereotype := pack.stereotype;
taggedValue := pack.taggedValue;
ownedElements += pack.ownedElements->select(oclIsKindOf(simpleuml::Package))->
collect(p | package2package(p.oclAsType(simpleuml::Package)))->asOrderedSet();
ownedElements += pack.ownedElements->select(oclIsKindOf(simpleuml::Class))->
collect(p | p.oclAsType(simpleuml::Class).class2class())->asOrderedSet();
}
mapping simpleuml::Class::class2class(): simpleuml::Class {
name := self.name;
_abstract := self._abstract;
stereotype := self.stereotype;
taggedValue := self.taggedValue;
generalizations := self.generalizations->collect(g | object simpleuml::Generalization {
general := g.general.late resolveoneIn(simpleuml::Class::class2class, simpleuml::Class);
})->asOrderedSet();
}