added: Wrapper class as a wrapper for: a model, model container (list/vector), Space or Date
added BaseObjectWrapper as base class for: SpaceWrapper and ModelContainerWrapper removed: ModelWrapperModel, now one Model doesn't need a wrapper renamed: ModelWrapperSpace -> SpaceWrapper, now as a base class it has BaseObjectWrapper renamed: Model::get_model_wrapper() -> Model::get_wrapper() - now it returns Wrapper object removed logging from Model::get_model() and Model::get_wrapper() field() methods don't take ModelWrapper** but Wrapper& now
This commit is contained in:
@@ -240,7 +240,7 @@ void Model::get_table_name(std::string & str, bool with_schema_name, ModelData *
|
||||
}
|
||||
|
||||
|
||||
Model * Model::get_model(const wchar_t * db_field_name, const wchar_t * flat_field_name, bool put_log_if_not_found)
|
||||
Model * Model::get_model(const wchar_t * db_field_name, const wchar_t * flat_field_name)
|
||||
{
|
||||
ModelEnv model_env_local;
|
||||
model_env = &model_env_local;
|
||||
@@ -261,24 +261,12 @@ Model * Model::get_model(const wchar_t * db_field_name, const wchar_t * flat_fie
|
||||
throw;
|
||||
}
|
||||
|
||||
if( !model_env->model && model_connector && put_log_if_not_found )
|
||||
{
|
||||
pt::Log * plog = model_connector->get_logger();
|
||||
|
||||
if( plog )
|
||||
{
|
||||
(*plog) << pt::Log::log1 << "Morm: I cannot find such a property: ";
|
||||
put_fields_to_log(*plog, db_field_name, flat_field_name);
|
||||
(*plog) << pt::Log::logend;
|
||||
}
|
||||
}
|
||||
|
||||
model_env = nullptr;
|
||||
return model;
|
||||
}
|
||||
|
||||
|
||||
ModelWrapper * Model::get_model_wrapper(const wchar_t * db_field_name, const wchar_t * flat_field_name, bool put_log_if_not_found)
|
||||
Wrapper Model::get_wrapper(const wchar_t * db_field_name, const wchar_t * flat_field_name)
|
||||
{
|
||||
ModelEnv model_env_local;
|
||||
model_env = &model_env_local;
|
||||
@@ -286,12 +274,10 @@ ModelWrapper * Model::get_model_wrapper(const wchar_t * db_field_name, const wch
|
||||
model_env->db_field_name = db_field_name;
|
||||
model_env->flat_field_name = flat_field_name;
|
||||
model_env->model = this;
|
||||
ModelWrapper * model_wrapper = nullptr;
|
||||
|
||||
try
|
||||
{
|
||||
fields();
|
||||
model_wrapper = model_env->model_wrapper;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
@@ -299,31 +285,19 @@ ModelWrapper * Model::get_model_wrapper(const wchar_t * db_field_name, const wch
|
||||
throw;
|
||||
}
|
||||
|
||||
if( !model_env->model_wrapper && model_connector && put_log_if_not_found )
|
||||
{
|
||||
pt::Log * plog = model_connector->get_logger();
|
||||
|
||||
if( plog )
|
||||
{
|
||||
(*plog) << pt::Log::log1 << "Morm: I cannot find such a property: ";
|
||||
put_fields_to_log(*plog, db_field_name, flat_field_name);
|
||||
(*plog) << pt::Log::logend;
|
||||
}
|
||||
}
|
||||
|
||||
model_env = nullptr;
|
||||
return model_wrapper;
|
||||
return model_env_local.wrapper;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, pt::Stream & stream, bool clear_stream, bool put_log_if_not_found)
|
||||
bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, pt::Stream & stream, bool clear_stream)
|
||||
{
|
||||
return get_raw_value(db_field_name, flat_field_name, nullptr, stream, clear_stream, put_log_if_not_found);
|
||||
return get_raw_value(db_field_name, flat_field_name, nullptr, stream, clear_stream);
|
||||
}
|
||||
|
||||
|
||||
bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, ModelData * model_data, pt::Stream & stream, bool clear_stream, bool put_log_if_not_found)
|
||||
bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, ModelData * model_data, pt::Stream & stream, bool clear_stream)
|
||||
{
|
||||
if( clear_stream )
|
||||
{
|
||||
@@ -350,18 +324,6 @@ bool Model::get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_fi
|
||||
throw;
|
||||
}
|
||||
|
||||
if( !model_env->model_wrapper && model_connector && put_log_if_not_found )
|
||||
{
|
||||
pt::Log * plog = model_connector->get_logger();
|
||||
|
||||
if( plog )
|
||||
{
|
||||
(*plog) << pt::Log::log1 << "Morm: I cannot find such a property: ";
|
||||
put_fields_to_log(*plog, db_field_name, flat_field_name);
|
||||
(*plog) << pt::Log::logend;
|
||||
}
|
||||
}
|
||||
|
||||
model_env = nullptr;
|
||||
return model_env_local.was_field_found;
|
||||
}
|
||||
@@ -1608,9 +1570,9 @@ void Model::field_model(const wchar_t * db_field_name, const wchar_t * flat_fiel
|
||||
{
|
||||
if( (is_empty_field(model_env->db_field_name) || is_the_same_field(db_field_name, model_env->db_field_name)) &&
|
||||
(is_empty_field(model_env->flat_field_name) || is_the_same_field(flat_field_name, model_env->flat_field_name)) &&
|
||||
!model_env->model_wrapper )
|
||||
!model_env->wrapper.model )
|
||||
{
|
||||
model_env->model_wrapper = new ModelWrapperModel(&field_model);
|
||||
model_env->wrapper.model = &field_model;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user