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