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)
|
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( 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)) &&
|
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 "flatexpression.h"
|
||||||
#include "modelenv.h"
|
#include "modelenv.h"
|
||||||
#include "ft.h"
|
#include "ft.h"
|
||||||
#include "wrapper.h"
|
#include "modelcontainerwrapper.h"
|
||||||
|
#include "spacewrapper.h"
|
||||||
|
|
||||||
#ifdef MORM_HAS_EZC_LIBRARY
|
#ifdef MORM_HAS_EZC_LIBRARY
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
|
@ -243,7 +244,6 @@ public:
|
||||||
|
|
||||||
|
|
||||||
Model * get_model(const wchar_t * db_field_name, const wchar_t * flat_field_name);
|
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, 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);
|
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;
|
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 )
|
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;
|
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.type = Ezc::Var<FunInfoStreamType>::Type::TYPE_DATE;
|
||||||
env.res.date = model_env->ezc_var_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
|
// else
|
||||||
// if( model_env->model )
|
// if( model_env->model )
|
||||||
|
@ -833,16 +841,6 @@ protected:
|
||||||
{
|
{
|
||||||
if( model_connector && model_env )
|
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( 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)) &&
|
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;
|
model_env->was_field_found = true;
|
||||||
|
|
||||||
|
// !! CHECKME is correct here? should be !model_env->ezc_var_date used?
|
||||||
if( model_env->ezc_var_date )
|
if( model_env->ezc_var_date )
|
||||||
{
|
{
|
||||||
model_env->ezc_var_date = &field_value;
|
model_env->ezc_var_date = &field_value;
|
||||||
|
@ -868,13 +867,14 @@ protected:
|
||||||
{
|
{
|
||||||
if( model_connector && model_env )
|
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)) &&
|
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->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
|
else
|
||||||
|
@ -1196,15 +1196,16 @@ protected:
|
||||||
{
|
{
|
||||||
ContainerItemType * item_type_null_pointer = nullptr;
|
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 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)) &&
|
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->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->model_container_wrapper )
|
||||||
{
|
{
|
||||||
model_env->was_field_found = true;
|
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);
|
model_env->model_container_wrapper = new ModelWrapperList(&field_value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1248,15 +1248,16 @@ protected:
|
||||||
{
|
{
|
||||||
ContainerItemType * item_type_null_pointer = nullptr;
|
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 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)) &&
|
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->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;
|
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 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)) &&
|
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->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;
|
pt::Stream * stream;
|
||||||
bool was_field_found; // used only in MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_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
|
#ifdef MORM_HAS_EZC_LIBRARY
|
||||||
void * ezc_fun_info;
|
void * ezc_fun_info;
|
||||||
|
@ -107,6 +105,7 @@ public:
|
||||||
pt::Date * ezc_var_date;
|
pt::Date * ezc_var_date;
|
||||||
|
|
||||||
ModelContainerWrapper * model_container_wrapper;
|
ModelContainerWrapper * model_container_wrapper;
|
||||||
|
SpaceWrapper * space_wrapper;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -142,7 +141,6 @@ public:
|
||||||
child_model = e.child_model;
|
child_model = e.child_model;
|
||||||
stream = e.stream;
|
stream = e.stream;
|
||||||
was_field_found = e.was_field_found;
|
was_field_found = e.was_field_found;
|
||||||
wrapper = e.wrapper;
|
|
||||||
|
|
||||||
#ifdef MORM_HAS_EZC_LIBRARY
|
#ifdef MORM_HAS_EZC_LIBRARY
|
||||||
ezc_fun_info = e.ezc_fun_info;
|
ezc_fun_info = e.ezc_fun_info;
|
||||||
|
@ -150,6 +148,7 @@ public:
|
||||||
ezc_var_space_local = e.ezc_var_space_local;
|
ezc_var_space_local = e.ezc_var_space_local;
|
||||||
ezc_var_date = e.ezc_var_date;
|
ezc_var_date = e.ezc_var_date;
|
||||||
model_container_wrapper = e.model_container_wrapper;
|
model_container_wrapper = e.model_container_wrapper;
|
||||||
|
space_wrapper = e.space_wrapper;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// schema_name and table_name don't have to be copied
|
// schema_name and table_name don't have to be copied
|
||||||
|
@ -195,7 +194,6 @@ public:
|
||||||
child_model = nullptr;
|
child_model = nullptr;
|
||||||
stream = nullptr;
|
stream = nullptr;
|
||||||
was_field_found = false;
|
was_field_found = false;
|
||||||
wrapper.clear();
|
|
||||||
|
|
||||||
#ifdef MORM_HAS_EZC_LIBRARY
|
#ifdef MORM_HAS_EZC_LIBRARY
|
||||||
ezc_fun_info = nullptr;
|
ezc_fun_info = nullptr;
|
||||||
|
@ -203,6 +201,7 @@ public:
|
||||||
ezc_var_space_local = nullptr;
|
ezc_var_space_local = nullptr;
|
||||||
ezc_var_date = nullptr;
|
ezc_var_date = nullptr;
|
||||||
model_container_wrapper = nullptr;
|
model_container_wrapper = nullptr;
|
||||||
|
space_wrapper = nullptr;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,7 @@
|
||||||
#define MORM_MODEL_WORK_MODE_ITERATE_PRIMARY_KEY_VALUES 8
|
#define MORM_MODEL_WORK_MODE_ITERATE_PRIMARY_KEY_VALUES 8
|
||||||
#define MORM_MODEL_WORK_MODE_SET_FIELD_VALUE 9
|
#define MORM_MODEL_WORK_MODE_SET_FIELD_VALUE 9
|
||||||
#define MORM_MODEL_WORK_MODE_GET_FIELD_MODEL 10
|
#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 11
|
||||||
#define MORM_MODEL_WORK_MODE_PUT_FIELD_RAW_VALUE_TO_STREAM 12
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,7 @@ public:
|
||||||
return std::numeric_limits<size_t>::max();
|
return std::numeric_limits<size_t>::max();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
const size_t SPACE_INDICES_TABLE_SIZE = 32;
|
const size_t SPACE_INDICES_TABLE_SIZE = 32;
|
||||||
|
|
Loading…
Reference in New Issue