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:
parent
08cd621d41
commit
d6e428d929
|
@ -117,7 +117,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename ModelClass>
|
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) )
|
if( out_stream && can_field_be_generated(insertable, updatable, is_primary_key) )
|
||||||
{
|
{
|
||||||
|
@ -127,7 +128,7 @@ public:
|
||||||
{
|
{
|
||||||
put_field_name(field_name);
|
put_field_name(field_name);
|
||||||
put_name_value_separator();
|
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();
|
field_after();
|
||||||
|
@ -251,7 +252,7 @@ protected:
|
||||||
|
|
||||||
|
|
||||||
template<typename ModelClass>
|
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 )
|
if( out_stream )
|
||||||
{
|
{
|
||||||
|
@ -271,7 +272,7 @@ protected:
|
||||||
}
|
}
|
||||||
|
|
||||||
//before_field_value(field_value);
|
//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;
|
m.model_connector_mode = model_connector_mode;
|
||||||
generate_from_model(m);
|
generate_from_model(m);
|
||||||
m.model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
|
m.model_connector_mode = MORM_MODEL_CONNECTOR_MODE_NONE;
|
||||||
|
|
|
@ -117,14 +117,10 @@ void Model::set_connector(ModelConnector & connector)
|
||||||
set_connector(&connector);
|
set_connector(&connector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Model::set_connector(ModelConnector * connector)
|
void Model::set_connector(ModelConnector * connector)
|
||||||
{
|
{
|
||||||
model_connector = connector;
|
model_connector = connector;
|
||||||
|
|
||||||
if( model_connector )
|
|
||||||
{
|
|
||||||
model_connector->set_connector_for_childs(*this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
26
src/model.h
26
src/model.h
|
@ -473,7 +473,10 @@ protected:
|
||||||
|
|
||||||
if( flat_expression && !is_empty_field(flat_field_name) )
|
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();
|
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 )
|
if( model_connector )
|
||||||
{
|
{
|
||||||
|
field_model.set_connector(model_connector);
|
||||||
|
|
||||||
// IMPLEMENTME what about db?
|
// IMPLEMENTME what about db?
|
||||||
if( model_connector_mode == MORM_MODEL_CONNECTOR_MODE_GENERATING_FLAT_STRING )
|
if( model_connector_mode == MORM_MODEL_CONNECTOR_MODE_GENERATING_FLAT_STRING )
|
||||||
{
|
{
|
||||||
|
@ -519,12 +517,6 @@ protected:
|
||||||
{
|
{
|
||||||
field_model.clear();
|
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;
|
template<typename ModelClass> friend class Finder;
|
||||||
friend class BaseExpression;
|
friend class BaseExpression;
|
||||||
|
|
||||||
// WILL BE REMOVED when ModelConnector::set_connector_for_childs(Model & model) will be removed
|
|
||||||
friend class ModelConnector;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,11 +79,6 @@ public:
|
||||||
virtual DbConnector * get_db_connector();
|
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:
|
protected:
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
#define MORM_MODEL_CONNECTOR_MODE_READING_VALUE_FROM_DB_RESULTSET 4
|
#define MORM_MODEL_CONNECTOR_MODE_READING_VALUE_FROM_DB_RESULTSET 4
|
||||||
#define MORM_MODEL_CONNECTOR_MODE_CLEARING_VALUE 5
|
#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
|
#define MORM_WORK_MODE_MODEL_FIELDS 1
|
||||||
|
|
Loading…
Reference in New Issue