| import ecore : 'http://www.eclipse.org/emf/2002/Ecore#/'; |
| |
| package my : my = 'http://my/1.0' |
| { |
| class Model |
| { |
| property bs : BType[*] { composes }; |
| } |
| class Entity |
| { |
| attribute name : String[?]; |
| } |
| class AType extends Entity |
| { |
| operation referenced() : BType[?] |
| { |
| body: BType.allInstances()->select(references->includes(self))->asSequence()->first(); |
| } |
| attribute referencedAttr : BType[?] { derived,volatile,transient,readonly } |
| { |
| derivation: BType.allInstances()->select(references->includes(self))->asSequence()->first(); |
| } |
| |
| } |
| class BType extends Entity |
| { |
| property references : AType[*] { composes }; |
| } |
| } |