lib/bake/mergeConfig.rb in bake-toolkit-2.50.0 vs lib/bake/mergeConfig.rb in bake-toolkit-2.51.0

- old
+ new

@@ -37,10 +37,17 @@ cpy end def replace() + if Metamodel::BaseConfig_INTERNAL === @child && + Metamodel::BaseConfig_INTERNAL === @parent + if @child.mergeInc != "" && @parent.mergeInc != "no" + @parent.mergeInc = @child.mergeInc + end + end + @child.class.ecore.eAllReferences.each do |f| next unless @parent.class.ecore.eAllReferences.include?f next unless f.containment childData = @child.getGeneric(f.name) if Metamodel::ModelElement === childData @@ -76,10 +83,17 @@ } end def removeChilds(childElem, parentElem) return if childElem.nil? or parentElem.nil? + + if Metamodel::BaseConfig_INTERNAL === childElem && + Metamodel::BaseConfig_INTERNAL === parentElem + if childElem.mergeInc == parentElem.mergeInc + parentElem.mergeInc = "" + end + end childElem.class.ecore.eAllReferences.each do |f| next unless f.containment begin childData = childElem.getGeneric(f.name) @@ -126,9 +140,16 @@ childData.setGeneric(a.name, parentData.getGeneric(a.name)) if !childData.eIsSet(a.name) && parentData.eIsSet(a.name) end end def extend(child, parent, push_front) + if Metamodel::BaseConfig_INTERNAL === child && + Metamodel::BaseConfig_INTERNAL === parent + if child.mergeInc != "" && parent.mergeInc != "no" + parent.mergeInc = child.mergeInc + end + end + (parent.class.ecore.eAllReferences & child.class.ecore.eAllReferences).each do |f| next unless f.containment parentData = parent.getGeneric(f.name) next if parentData.nil? or (Array === parentData && parentData.empty?) childData = child.getGeneric(f.name) \ No newline at end of file