renamed in Model: map_fields() to fields(), prepare_table() to table()

This commit is contained in:
Tomasz Sowa 2021-05-13 03:27:21 +02:00
parent 2ad6c8c258
commit 6eaa9088e5
4 changed files with 48 additions and 53 deletions

View File

@ -121,7 +121,7 @@ void BaseExpression::generate_from_model(Model & model)
{
before_generate_from_model();
dump_additional_info(model);
model.map_fields();
model.fields();
after_generate_from_model();
}
}

View File

@ -181,7 +181,7 @@ public:
model.model_env = &model_env;
model.model_env->model_data = model_data;
model.model_env->finder_helper = &finder_helper;
model.prepare_table();
model.table();
model.model_env->add_table_name_to_finder_helper();
return *this;

View File

@ -127,7 +127,7 @@ ModelConnector * Model::get_connector()
}
void Model::prepare_table()
void Model::table()
{
if( model_connector )
{
@ -135,12 +135,12 @@ void Model::prepare_table()
if( plog )
{
(*plog) << PT::Log::log1 << "Morm: you should provide the table name e.g. provide prepare_table() method and call table(...) there" << PT::Log::logend;
(*plog) << PT::Log::log1 << "Morm: you should provide the table name e.g. provide table() method and call table(...) there" << PT::Log::logend;
}
}
}
void Model::table(const wchar_t * table_name)
void Model::table_name(const wchar_t * table_name)
{
if( model_env )
{
@ -151,7 +151,7 @@ void Model::table(const wchar_t * table_name)
}
}
void Model::table(const wchar_t * schema_name, const wchar_t * table_name)
void Model::table_name(const wchar_t * schema_name, const wchar_t * table_name)
{
if( model_env )
{
@ -200,7 +200,7 @@ void Model::to_text(PT::TextStream & stream, ModelData * model_data, bool clear_
{
try
{
// prepare_table(); at the moment flat strings (json/space) do not need a table name
// table(); at the moment flat strings (json/space) do not need a table name
flat_connector->to_text(stream, *this);
}
catch(...)
@ -288,7 +288,7 @@ void Model::generate_insert_query(PT::TextStream & stream, ModelData * model_dat
{
try
{
prepare_table();
table();
db_connector->generate_insert_query(stream, *this);
}
catch(...)
@ -325,7 +325,7 @@ bool Model::insert(ModelData * model_data, bool insert_whole_tree)
try
{
prepare_table();
table();
status = insert_tree(insert_whole_tree);
}
catch(...)
@ -351,7 +351,7 @@ bool Model::insert_tree(bool insert_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITH_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_INSERT;
map_fields();
fields();
}
if( model_connector )
@ -398,7 +398,7 @@ bool Model::insert_tree(bool insert_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITHOUT_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_INSERT;
map_fields();
fields();
}
return result;
@ -420,7 +420,7 @@ void Model::generate_update_query(PT::TextStream & stream, ModelData * model_dat
if( db_connector )
{
prepare_table();
table();
db_connector->generate_update_query(stream, *this);
}
}
@ -452,7 +452,7 @@ bool Model::update(ModelData * model_data, bool update_whole_tree)
try
{
prepare_table();
table();
status = update_tree(update_whole_tree);
}
catch(...)
@ -482,7 +482,7 @@ bool Model::update_tree(bool update_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITH_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_UPDATE;
map_fields();
fields();
}
if( model_connector )
@ -510,7 +510,7 @@ bool Model::update_tree(bool update_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITHOUT_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_UPDATE;
map_fields();
fields();
}
return result;
@ -531,7 +531,7 @@ void Model::generate_remove_query(PT::TextStream & stream, ModelData * model_dat
if( db_connector )
{
prepare_table();
table();
db_connector->generate_remove_query(stream, *this);
}
}
@ -564,7 +564,7 @@ bool Model::remove(ModelData * model_data, bool remove_whole_tree)
try
{
prepare_table();
table();
status = remove_tree(remove_whole_tree);
}
catch(...)
@ -594,7 +594,7 @@ bool Model::remove_tree(bool remove_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITHOUT_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_REMOVE;
map_fields();
fields();
}
if( model_connector )
@ -629,7 +629,7 @@ bool Model::remove_tree(bool remove_whole_tree)
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITH_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_REMOVE;
map_fields();
fields();
}
return result;
@ -660,7 +660,7 @@ bool Model::save(ModelData * model_data, bool save_whole_tree)
try
{
prepare_table();
table();
status = save_tree(save_whole_tree);
}
catch(...)
@ -688,7 +688,7 @@ bool Model::save_tree(bool save_whole_tree)
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITH_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_SAVE;
map_fields();
fields();
}
ModelEnv * old_model_env = model_env; // remove, insert or update will set model_env to nullptr
@ -722,7 +722,7 @@ bool Model::save_tree(bool save_whole_tree)
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_THROUGH_CHILDS_WITHOUT_FOREIGN_KEY;
model_env->model_work_submode = MORM_MODEL_WORK_SUBMODE_SAVE;
map_fields();
fields();
}
return result;
@ -754,7 +754,7 @@ void Model::map_values_from_query()
model_env->model_work_mode = MORM_MODEL_WORK_MODE_READING_VALUE_FROM_DB_RESULTSET;
model_env->was_primary_key_read = false; // whether or not there was at least one column with primary_key flag
model_env->has_primary_key_set = true; // whether all primary_columns were different than null
map_fields();
fields();
model_env->model_work_mode = MORM_MODEL_WORK_MODE_NONE;
if( model_env->was_primary_key_read && model_env->has_primary_key_set )
@ -781,8 +781,8 @@ void Model::clear()
try
{
// prepare_table() doesn't have to be called
map_fields();
// table() doesn't have to be called
fields();
}
catch(...)
{
@ -1030,7 +1030,7 @@ void Model::field_model_left_join(const wchar_t * db_field_name, Model & field_m
if( field_type.is_foreign_key() )
{
field_model.map_fields();
field_model.fields();
join_tables_str << " ON ";
db_expression->table_with_index_and_field_to_stream(join_tables_str, model_env->table_name, model_env->table_index, db_field_name, field_type);
@ -1048,7 +1048,7 @@ void Model::field_model_left_join(const wchar_t * db_field_name, Model & field_m
else
{
ModelEnv * old_model_env = field_model.model_env;
map_fields(); // map_fields() will set field_model.model_env to null
fields(); // fields() will set field_model.model_env to null
field_model.model_env = old_model_env;
join_tables_str << " ON ";
@ -1092,7 +1092,7 @@ void Model::field_model_save_key(const wchar_t * db_field_name)
int old_work_mode = model_env->model_work_mode;
model_env->model_work_mode = MORM_MODEL_WORK_MODE_ITERATE_PRIMARY_KEY_VALUES;
model_env->field_index = 0;
map_fields();
fields();
model_env->model_work_mode = old_work_mode;
if( model_env->field_value_helper_tab->empty() && plog )
@ -1131,9 +1131,9 @@ void Model::field_model_set_parent_key_in_child(const wchar_t * db_field_name, M
model_env_local.field_value_helper_tab = &helper_tab;
model_env_local.field_index = 0;
field_model.model_env = &model_env_local;
field_model.prepare_table();
field_model.table();
field_model.map_fields();
field_model.fields();
if( (size_t)field_model.model_env->field_index != helper_tab.size() && log )
{
@ -1268,7 +1268,7 @@ void Model::field_model_generate_db_sql(const wchar_t * db_field_name, Model & f
if( field_type.is_insertable() )
{
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_INSERT_PRIMARY_KEY);
field_model.map_fields();
field_model.fields();
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_INSERT);
}
}
@ -1283,7 +1283,7 @@ void Model::field_model_generate_db_sql(const wchar_t * db_field_name, Model & f
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE_PRIMARY_KEY);
field_model.model_env->field_index = 0;
field_model.model_env->set_field_name_helper = &key_fields;
field_model.map_fields();
field_model.fields();
db_expression->set_output_type(MORM_OUTPUT_TYPE_DB_UPDATE);
if( (size_t)field_model.model_env->field_index != key_fields.size() )
@ -1301,7 +1301,7 @@ void Model::field_model_generate_db_sql(const wchar_t * db_field_name, Model & f
db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_INSERT &&
db_expression->get_output_type() != MORM_OUTPUT_TYPE_DB_UPDATE )
{
field_model.map_fields();
field_model.fields();
}
field_model.model_env->model_work_mode = MORM_MODEL_WORK_MODE_NONE;
@ -1363,7 +1363,7 @@ void Model::field_model(const wchar_t * db_field_name, const wchar_t * flat_fiel
if( !is_empty_field(db_field_name) )
{
field_model.prepare_table();
field_model.table();
if( field_type.is_foreign_key() || field_type.is_foreign_key_in_child() )
{
@ -1386,7 +1386,7 @@ void Model::field_model(const wchar_t * db_field_name, const wchar_t * flat_fiel
{
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GENERATING_FLAT_STRING )
{
// calling field_model.prepare_table(); is not needed in generating strings (at least for json/space formats)
// calling field_model.table() is not needed in generating strings (at least for json/space formats)
field_model_generate_flat_string(flat_field_name, field_model, field_type);
}
}
@ -1445,7 +1445,7 @@ void Model::set_parent_key_in_childs()
if( model_env )
{
model_env->model_work_mode = MORM_MODEL_WORK_MODE_SET_PARENT_ID;
map_fields();
fields();
}
}

View File

@ -86,20 +86,6 @@ public:
void set_connector(ModelConnector * connector);
ModelConnector * get_connector();
/*
* map fields to names
*
* IMPROVEME rename me to fields() and make protected
*/
virtual void map_fields() = 0;
/*
* IMPROVEME make me protected
*/
virtual void prepare_table();
virtual void table(const wchar_t * table_name);
virtual void table(const wchar_t * schema_name, const wchar_t * table_name);
virtual void to_text(PT::TextStream & stream, ModelData * model_data, bool clear_stream = true, bool dump_mode = false);
virtual void to_text(PT::TextStream & stream, ModelData & model_data, bool clear_stream = true, bool dump_mode = false);
virtual void to_text(PT::TextStream & stream, bool clear_stream = true, bool dump_mode = false);
@ -145,7 +131,7 @@ public:
model_env = &model_env_local;
model_env->model_work_mode = MORM_MODEL_WORK_MODE_SET_FIELD_VALUE;
model_env->field_index = 0;
prepare_table(); // CHECK ME it is needed to set table name?
table(); // CHECK ME it is needed to set table name?
FieldValueHelper field_value_helper;
field_value_helper.db_field_name = db_field_name;
@ -157,7 +143,7 @@ public:
helper_tab.push_back(field_value_helper);
model_env->field_value_helper_tab = &helper_tab;
map_fields();
fields();
if( !helper_tab.back().found && model_connector )
{
@ -189,6 +175,15 @@ protected:
Model(const Model & m);
virtual ~Model();
/*
* the main method of mapping between fields and database resultsets
*/
virtual void fields() = 0;
virtual void table();
virtual void table_name(const wchar_t * table_name);
virtual void table_name(const wchar_t * schema_name, const wchar_t * table_name);
virtual void before_select();
virtual void before_insert();
virtual void before_update();
@ -683,7 +678,7 @@ protected:
child_model.model_env = &model_env_local;
child_model.model_env->has_primary_key_set = child_model.has_primary_key_set;
child_model.set_connector(model_connector);
child_model.prepare_table();
child_model.table();
if( model_env->model_work_submode == MORM_MODEL_WORK_SUBMODE_INSERT )
{