def addUpdate(self, newModelObject): conflict = False diff = ModelObjectDiff(self, newModelObject) for k, v in diff.getPropertiesDiff().items(): attribute = self.__getAttribute(k) prop_update = self.propertyTieBreaker(attribute, *v) if isinstance(prop_update, tuple): conflict = True else: setattr(self, attribute, prop_update) if conflict: self.updates.append(ConflictUpdate(self, newModelObject)) return conflict
def addUpdate(self, newModelObject): conflict = False diff = ModelObjectDiff(self, newModelObject) for k, v in diff.getPropertiesDiff().items(): attribute = self.__getAttribute(k) prop_update = self.propertyTieBreaker(attribute, *v) if (not isinstance(prop_update, tuple) or CONF.getMergeStrategy()): # if there's a strategy set by the user, apply it if isinstance(prop_update, tuple): prop_update = MergeSolver(CONF.getMergeStrategy()).solve( prop_update[0], prop_update[1]) setattr(self, attribute, prop_update) else: conflict = True if conflict: self.updates.append(ConflictUpdate(self, newModelObject)) return conflict
def addUpdate(self, newModelObject): conflict = False diff = ModelObjectDiff(self, newModelObject) for k, v in diff.getPropertiesDiff().items(): attribute = self.publicattrsrefs().get(k) prop_update = self.propertyTieBreaker(attribute, *v) if not isinstance(prop_update, tuple) or CONF.getMergeStrategy(): # if there's a strategy set by the user, apply it if isinstance(prop_update, tuple): prop_update = MergeSolver(CONF.getMergeStrategy()) prop_update = prop_update.solve(prop_update[0], prop_update[1]) setattr(self, attribute, prop_update) else: conflict = True if conflict: self.updates.append(ConflictUpdate(self, newModelObject)) return conflict