# -*- coding: utf-8 -*- ## Manage Model changes class DummyMigrationHandler(object): def __init__(self, debug = False): self.debug = debug ## @brief Record a change in the EditorialModel and indicate wether or not it is possible to make it # @note The states ( initial_state and new_state ) contains only fields that changes # @param uid int : The uid of the change EmComponent # @param initial_state dict | None : dict with field name as key and field value as value. Representing the original state. None mean creation of a new component. # @param new_state dict | None : dict with field name as key and field value as value. Representing the new state. None mean component deletion # @throw EditorialModel.exceptions.MigrationHandlerChangeError if the change was refused def register_change(self, uid, initial_state, new_state): if self.debug: print("\n##############") print("DummyMigrationHandler debug. Changes for component with uid %d :"%uid) if initial_state is None: print("Component creation (uid = %d): \n\t"%uid,new_state) elif new_state is None: print("Component deletion (uid = %d): \n\t"%uid,initial_state) else: field_list = set(initial_state.keys()).union(set(new_state.keys())) for field_name in field_list: str_chg = "\t%s "%field_name if field_name in initial_state: str_chg += "'"+str(initial_state[field_name])+"'" else: str_chg += " creating " str_chg += " => " if field_name in new_state: str_chg += "'"+str(new_state[field_name])+"'" else: str_chg += " deletion " print(str_chg) print("##############\n") pass def register_model_state(self, state_hash): if self.debug: print("New EditorialModel state registered : '%s'"%state_hash)