package mmw_match { class MatchModel extends WModel { reference leftM container : WModelRef; reference rightM container : WModelRef; reference methods [*] container : Method; } -------------------------------------------------------------------- class Method { attribute name : String; } class ElementEqual extends Equal { } class Equal extends Equivalent { } class AttributeEqual extends Equal { } class ReferenceEqual extends Equal { } class Element extends ReferredElement { reference child [*] container: WLink; reference referredClass container : ReferredElement; } abstract class ReferredElement extends WLinkEnd { } class LeftElement extends ReferredElement { } class RightElement extends ReferredElement { } class Equivalent extends WLink { attribute similarity : Double; -- @subsets end reference left container : ReferredElement; -- @subsets end reference right container : ReferredElement; } class NotEquivalent extends WLink { -- @subsets end reference left container : ReferredElement; -- @subsets end reference right container : ReferredElement; } datatype Double; }