- 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)
+ if mgroup.name == name then
+ assert mgroup.default_mmodule == null
+ mgroup.default_mmodule = self
+ end
+ # placebo for old module nesting hierarchy
+ var direct_owner = mgroup.default_mmodule
+ 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
+ model.mmodule_nesting_hierarchy.add_edge(self, m)
+ end
+ # The potential owner is the default_mmodule of the parent group
+ if mgroup.parent != null then direct_owner = mgroup.parent.default_mmodule
+ end
+ if direct_owner != self and direct_owner != null then
+ model.mmodule_nesting_hierarchy.add_edge(direct_owner, self)
+ end