removed: set_connector_for_childs from ModelConnector

changed: model connector is propagated to childs when needed
         (when update, insert, save, to_text is called or in finder)




git-svn-id: svn://ttmath.org/publicrep/morm/trunk@1120 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2018-07-04 13:52:40 +00:00
parent 08cd621d41
commit d6e428d929
6 changed files with 14 additions and 41 deletions

View File

@ -117,7 +117,8 @@ public:
}
template<typename ModelClass>
void field_list(const wchar_t * field_name, const std::list<ModelClass> & field_value, bool insertable, bool updatable, bool is_primary_key, int model_connector_mode)
void field_list(const wchar_t * field_name, const std::list<ModelClass> & field_value, bool insertable, bool updatable, bool is_primary_key,
ModelConnector * model_connector, int model_connector_mode)
{
if( out_stream && can_field_be_generated(insertable, updatable, is_primary_key) )
{
@ -127,7 +128,7 @@ public:
{
put_field_name(field_name);
put_name_value_separator();
put_field_value_list(field_value, model_connector_mode);
put_field_value_list(field_value, model_connector, model_connector_mode);
}
field_after();
@ -251,7 +252,7 @@ protected:
template<typename ModelClass>
void put_field_value_list(const std::list<ModelClass> & field_value, int model_connector_mode)
void put_field_value_list(const std::list<ModelClass> & field_value, ModelConnector * model_connector, int model_connector_mode)
{
if( out_stream )
{
@ -271,7 +272,7 @@ protected:
}
//before_field_value(field_value);
// FIX ME what about setting model connector to the m? !!!!!!!!!!!!
m.set_connector(model_connector);
m.model_connector_mode = model_connector_mode;
generate_from_model(m);
m.model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;

View File

@ -117,14 +117,10 @@ void Model::set_connector(ModelConnector & connector)
set_connector(&connector);
}
void Model::set_connector(ModelConnector * connector)
{
model_connector = connector;
if( model_connector )
{
model_connector->set_connector_for_childs(*this);
}
}

View File

@ -473,7 +473,10 @@ protected:
if( flat_expression && !is_empty_field(flat_field_name) )
{
flat_expression->field_list(flat_field_name, field_list, insertable, updatable, is_primary_key, model_connector_mode);
// IMPROVE ME
// what about model_data and save_mode?
// may it should be placed inside some structure?
flat_expression->field_list(flat_field_name, field_list, insertable, updatable, is_primary_key, model_connector, model_connector_mode);
}
}
}
@ -482,21 +485,16 @@ protected:
{
field_list.clear();
}
// WILL BE REMOVED
if( model_connector_mode == MORM_MODEL_CONNECTOR_MODE_SETTING_CONNECTOR_FOR_CHILDS )
{
// IMPROVE ME
// it would be better to set the connector when an operation is needed
}
}
}
template<typename ModelX>
void field_model(const wchar_t * db_field_name, const wchar_t * flat_field_name, ModelX & field_model, bool insertable, bool updatable, bool is_primary_key)
void field_model(const wchar_t * db_field_name, const wchar_t * flat_field_name, Model & field_model, bool insertable, bool updatable, bool is_primary_key)
{
if( model_connector )
{
field_model.set_connector(model_connector);
// IMPLEMENTME what about db?
if( model_connector_mode == MORM_MODEL_CONNECTOR_MODE_GENERATING_FLAT_STRING )
{
@ -519,12 +517,6 @@ protected:
{
field_model.clear();
}
// WILL BE REMOVED
if( model_connector_mode == MORM_MODEL_CONNECTOR_MODE_SETTING_CONNECTOR_FOR_CHILDS )
{
field_model.set_connector(model_connector);
}
}
}
@ -599,8 +591,6 @@ protected:
template<typename ModelClass> friend class Finder;
friend class BaseExpression;
// WILL BE REMOVED when ModelConnector::set_connector_for_childs(Model & model) will be removed
friend class ModelConnector;
};
} // namespace

View File

@ -164,13 +164,5 @@ std::wstring ModelConnector::get_db_error()
void ModelConnector::set_connector_for_childs(Model & model)
{
model.model_connector_mode = MORM_MODEL_CONNECTOR_MODE_SETTING_CONNECTOR_FOR_CHILDS;
model.map_fields();
model.model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
}
}

View File

@ -79,11 +79,6 @@ public:
virtual DbConnector * get_db_connector();
// WILL BE REMOVED
// model connector for childs will be set when needed
virtual void set_connector_for_childs(Model & model);
protected:

View File

@ -45,7 +45,6 @@
#define MORM_MODEL_CONNECTOR_MODE_READING_VALUE_FROM_DB_RESULTSET 4
#define MORM_MODEL_CONNECTOR_MODE_CLEARING_VALUE 5
#define MORM_MODEL_CONNECTOR_MODE_SETTING_CONNECTOR_FOR_CHILDS 6
#define MORM_WORK_MODE_MODEL_FIELDS 1