| transformation lateresolve; |
| |
| 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 resolveone(simpleuml::Class); |
| })->asOrderedSet(); |
| } |
| |