- self.direct_owner = direct_owner
- if direct_owner != null then
- model.mmodule_nesting_hierarchy.add_edge(direct_owner, self)
+ self.mgroup = mgroup
+ if mgroup != null then
+ mgroup.mmodules.add(self)
+ # placebo for old module nesting hierarchy
+ var direct_owner = mgroup.fuzzy_owner
+ if direct_owner == self then
+ # The module is the new owner of its own group, thus adopt the other modules
+ for m in mgroup.mmodules do
+ if m == self then continue
+ m.direct_owner = self
+ model.mmodule_nesting_hierarchy.add_edge(self, m)
+ end
+ # The potential owner is the the fuzzy_owner of the parent group
+ if mgroup.parent != null then direct_owner = mgroup.parent.fuzzy_owner
+ end
+ if direct_owner != self and direct_owner != null then
+ self.direct_owner = direct_owner
+ model.mmodule_nesting_hierarchy.add_edge(direct_owner, self)
+ end