mirror of
https://github.com/yweber/lodel2.git
synced 2026-04-30 04:00:57 +02:00
49 lines
2.3 KiB
Python
49 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
## @package EditorialModel.migrationhandler.dummy
|
|
# @brief A dummy migration handler
|
|
#
|
|
# According to it every modifications are possible
|
|
#
|
|
|
|
## 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 em model : The EditorialModel.model object to provide the global context
|
|
# @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, em, 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")
|
|
|
|
## @brief Not usefull for the moment
|
|
def register_model_state(self, em, state_hash):
|
|
if self.debug:
|
|
print("New EditorialModel state registered : '%s'" % state_hash)
|