removed MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER
removed Model::get_wrapper(...) method
This commit is contained in:
parent
b9990e3b8c
commit
4a8fa0c34c
|
@ -266,30 +266,6 @@ Model * Model::get_model(const wchar_t * db_field_name, const wchar_t * flat_fie
|
|||
}
|
||||
|
||||
|
||||
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;
|
||||
model_env->model_work_mode = MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER;
|
||||
model_env->db_field_name = db_field_name;
|
||||
model_env->flat_field_name = flat_field_name;
|
||||
model_env->model = this;
|
||||
|
||||
try
|
||||
{
|
||||
fields();
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
model_env = nullptr;
|
||||
throw;
|
||||
}
|
||||
|
||||
model_env = nullptr;
|
||||
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)
|
||||
{
|
||||
|
@ -1566,22 +1542,18 @@ 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_GET_MODEL_WRAPPER )
|
||||
{
|
||||
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->wrapper.model )
|
||||
{
|
||||
model_env->wrapper.model = &field_model;
|
||||
}
|
||||
}
|
||||
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
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)) )
|
||||
(is_empty_field(model_env->flat_field_name) || is_the_same_field(flat_field_name, model_env->flat_field_name)) &&
|
||||
!model_env->model )
|
||||
{
|
||||
model_env->model = &field_model;
|
||||
// FIX ME
|
||||
//model_env->wrapper.model = &field_model;
|
||||
|
||||
|
||||
// model_env->was_field_found = true;
|
||||
// model_env->model = &field_model;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
64
src/model.h
64
src/model.h
|
@ -48,7 +48,8 @@
|
|||
#include "flatexpression.h"
|
||||
#include "modelenv.h"
|
||||
#include "ft.h"
|
||||
#include "wrapper.h"
|
||||
#include "modelcontainerwrapper.h"
|
||||
#include "spacewrapper.h"
|
||||
|
||||
#ifdef MORM_HAS_EZC_LIBRARY
|
||||
#include "env.h"
|
||||
|
@ -243,7 +244,6 @@ public:
|
|||
|
||||
|
||||
Model * get_model(const wchar_t * db_field_name, const wchar_t * flat_field_name);
|
||||
Wrapper get_wrapper(const wchar_t * db_field_name, const wchar_t * flat_field_name);
|
||||
|
||||
bool get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, pt::Stream & stream, bool clear_stream = true);
|
||||
bool get_raw_value(const wchar_t * db_field_name, const wchar_t * flat_field_name, ModelData * model_data, pt::Stream & stream, bool clear_stream = true);
|
||||
|
@ -279,6 +279,18 @@ public:
|
|||
throw;
|
||||
}
|
||||
|
||||
if( model_env->model_container_wrapper )
|
||||
{
|
||||
env.res.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_MODEL_CONTAINER_WRAPPER;
|
||||
env.res.model_container_wrapper = model_env->model_container_wrapper;
|
||||
}
|
||||
|
||||
if( model_env->space_wrapper )
|
||||
{
|
||||
env.res.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_SPACE_WRAPPER;
|
||||
env.res.space_wrapper = model_env->space_wrapper;
|
||||
}
|
||||
|
||||
if( model_env->ezc_var_space_local && model_env->ezc_var_space_local->type != pt::Space::Type::type_null )
|
||||
{
|
||||
env.res.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_SPACE_LOCAL;
|
||||
|
@ -289,12 +301,8 @@ public:
|
|||
env.res.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_DATE;
|
||||
env.res.date = model_env->ezc_var_date;
|
||||
}
|
||||
else
|
||||
if( model_env->model_container_wrapper )
|
||||
{
|
||||
env.res.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_MODEL_CONTAINER_WRAPPER;
|
||||
env.res.model_container_wrapper = model_env->model_container_wrapper;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// else
|
||||
// if( model_env->model )
|
||||
|
@ -833,16 +841,6 @@ protected:
|
|||
{
|
||||
if( model_connector && model_env )
|
||||
{
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER )
|
||||
{
|
||||
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->wrapper.date )
|
||||
{
|
||||
model_env->wrapper.date = &field_value;
|
||||
}
|
||||
}
|
||||
else
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
if( (is_empty_field(model_env->db_field_name) || is_the_same_field(db_field_name, model_env->db_field_name)) &&
|
||||
|
@ -850,6 +848,7 @@ protected:
|
|||
{
|
||||
model_env->was_field_found = true;
|
||||
|
||||
// !! CHECKME is correct here? should be !model_env->ezc_var_date used?
|
||||
if( model_env->ezc_var_date )
|
||||
{
|
||||
model_env->ezc_var_date = &field_value;
|
||||
|
@ -868,13 +867,14 @@ protected:
|
|||
{
|
||||
if( model_connector && model_env )
|
||||
{
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER )
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
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->wrapper.space_wrapper )
|
||||
!model_env->space_wrapper )
|
||||
{
|
||||
model_env->wrapper.space_wrapper = new SpaceWrapper(&field_value);
|
||||
model_env->was_field_found = true;
|
||||
model_env->space_wrapper = new SpaceWrapper(&field_value);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1196,15 +1196,16 @@ protected:
|
|||
{
|
||||
ContainerItemType * item_type_null_pointer = nullptr;
|
||||
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER )
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
if constexpr (std::is_base_of<Model, ContainerItemType>())
|
||||
{
|
||||
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->wrapper.model_container_wrapper )
|
||||
!model_env->model_container_wrapper )
|
||||
{
|
||||
model_env->wrapper.model_container_wrapper = new ModelWrapperVector(&field_value);
|
||||
model_env->was_field_found = true;
|
||||
model_env->model_container_wrapper = new ModelWrapperVector(&field_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1230,7 +1231,6 @@ protected:
|
|||
!model_env->model_container_wrapper )
|
||||
{
|
||||
model_env->was_field_found = true;
|
||||
//model_env->wrapper.model_container_wrapper = new ModelWrapperList(&field_value);
|
||||
model_env->model_container_wrapper = new ModelWrapperList(&field_value);
|
||||
}
|
||||
}
|
||||
|
@ -1248,15 +1248,16 @@ protected:
|
|||
{
|
||||
ContainerItemType * item_type_null_pointer = nullptr;
|
||||
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER )
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
if constexpr (std::is_base_of<Model, ContainerItemType>())
|
||||
{
|
||||
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->wrapper.model_container_wrapper )
|
||||
!model_env->model_container_wrapper )
|
||||
{
|
||||
model_env->wrapper.model_container_wrapper = new ModelWrapperVectorPointer(&field_value);
|
||||
model_env->was_field_found = true;
|
||||
model_env->model_container_wrapper = new ModelWrapperVectorPointer(&field_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1273,15 +1274,16 @@ protected:
|
|||
{
|
||||
ContainerItemType * item_type_null_pointer = nullptr;
|
||||
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER )
|
||||
if( model_env->model_work_mode == MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM )
|
||||
{
|
||||
if constexpr (std::is_base_of<Model, ContainerItemType>())
|
||||
{
|
||||
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->wrapper.model_container_wrapper )
|
||||
!model_env->model_container_wrapper )
|
||||
{
|
||||
model_env->wrapper.model_container_wrapper = new ModelWrapperListPointer(&field_value);
|
||||
model_env->was_field_found = true;
|
||||
model_env->model_container_wrapper = new ModelWrapperListPointer(&field_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,8 +97,6 @@ public:
|
|||
pt::Stream * stream;
|
||||
bool was_field_found; // used only in MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM
|
||||
|
||||
Wrapper wrapper;
|
||||
|
||||
|
||||
#ifdef MORM_HAS_EZC_LIBRARY
|
||||
void * ezc_fun_info;
|
||||
|
@ -107,6 +105,7 @@ public:
|
|||
pt::Date * ezc_var_date;
|
||||
|
||||
ModelContainerWrapper * model_container_wrapper;
|
||||
SpaceWrapper * space_wrapper;
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -142,7 +141,6 @@ public:
|
|||
child_model = e.child_model;
|
||||
stream = e.stream;
|
||||
was_field_found = e.was_field_found;
|
||||
wrapper = e.wrapper;
|
||||
|
||||
#ifdef MORM_HAS_EZC_LIBRARY
|
||||
ezc_fun_info = e.ezc_fun_info;
|
||||
|
@ -150,6 +148,7 @@ public:
|
|||
ezc_var_space_local = e.ezc_var_space_local;
|
||||
ezc_var_date = e.ezc_var_date;
|
||||
model_container_wrapper = e.model_container_wrapper;
|
||||
space_wrapper = e.space_wrapper;
|
||||
#endif
|
||||
|
||||
// schema_name and table_name don't have to be copied
|
||||
|
@ -195,7 +194,6 @@ public:
|
|||
child_model = nullptr;
|
||||
stream = nullptr;
|
||||
was_field_found = false;
|
||||
wrapper.clear();
|
||||
|
||||
#ifdef MORM_HAS_EZC_LIBRARY
|
||||
ezc_fun_info = nullptr;
|
||||
|
@ -203,6 +201,7 @@ public:
|
|||
ezc_var_space_local = nullptr;
|
||||
ezc_var_date = nullptr;
|
||||
model_container_wrapper = nullptr;
|
||||
space_wrapper = nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -46,8 +46,7 @@
|
|||
#define MORM_MODEL_WORK_MODE_ITERATE_PRIMARY_KEY_VALUES 8
|
||||
#define MORM_MODEL_WORK_MODE_SET_FIELD_VALUE 9
|
||||
#define MORM_MODEL_WORK_MODE_GET_FIELD_MODEL 10
|
||||
#define MORM_MODEL_WORK_MODE_GET_MODEL_WRAPPER 11
|
||||
#define MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM 12
|
||||
#define MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM 11
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -99,6 +99,7 @@ public:
|
|||
return std::numeric_limits<size_t>::max();
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
const size_t SPACE_INDICES_TABLE_SIZE = 32;
|
||||
|
|
Loading…
Reference in New Issue