- removed prefix() method from Finder

(this was for a custom prefix)
- removed column_prefix and column_prefix_index from BaseExpression
  now we have a pointer to ModelEnv passed in field() method
- to ModelEnv: added table_name, table_name_simple and table_index





git-svn-id: svn://ttmath.org/publicrep/morm/branches/join_models@1193 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2019-05-21 17:24:12 +00:00
parent 958e89fb02
commit a1d18735b0
9 changed files with 94 additions and 148 deletions

View File

@@ -61,11 +61,6 @@ public:
virtual int get_work_mode();
virtual void prepare_to_new_expression();
virtual void set_column_prefix(const std::string & prefix);
virtual void set_column_prefix(const std::string & prefix, int index);
virtual std::string get_column_prefix();
virtual int get_column_prefix_index();
virtual void generate_from_model(PT::TextStream & stream, Model & model);
@@ -73,6 +68,7 @@ public:
// rename me
virtual void allow_to_use_prefix(bool use_prefix);
virtual bool get_allow_to_use_prefix();
// give me a better name
virtual void put_field_doc(Model & model, const void * field_pointer, bool insertable, bool updatable, bool is_primary_key, ModelEnv * model_env);
@@ -89,7 +85,7 @@ public:
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS )
{
put_field_name(field_name, add_column_prefix);
put_field_name(field_name, add_column_prefix, model_env);
}
else
if( work_mode == MORM_WORK_MODE_MODEL_SAVE_FIELDS )
@@ -98,7 +94,7 @@ public:
PT::TextStream * old_out_stream = out_stream;
out_stream = &str;
put_field_name(field_name, add_column_prefix);
put_field_name(field_name, add_column_prefix, model_env);
out_stream = old_out_stream;
if( model_env && model_env->finder_helper )
@@ -116,7 +112,7 @@ public:
else
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
{
put_field_name(field_name);
put_field_name(field_name, add_column_prefix, model_env);
put_name_value_separator();
put_field_value(field_value);
}
@@ -138,7 +134,7 @@ public:
{
field_before();
put_field_name(field_name, add_column_prefix);
put_field_name(field_name, add_column_prefix, model_env);
put_name_value_separator();
put_field_doc(model, reinterpret_cast<const void*>(&field_value), insertable, updatable, is_primary_key, model_env);
@@ -195,7 +191,7 @@ public:
// else
if( work_mode == MORM_WORK_MODE_MODEL_FIELDS_VALUES )
{
put_field_name(field_name);
put_field_name(field_name); // what about model_env? put it here?
put_name_value_separator();
put_field_value_list(field_value, model_connector, model_env);
}
@@ -233,10 +229,11 @@ public:
}
template<typename FieldValue>
void field_to_stream(PT::TextStream & stream, const wchar_t * field_name, const FieldValue & field_value, bool insertable = true, bool updatable = true, bool is_primary_key = false)
void field_to_stream(PT::TextStream & stream, const wchar_t * field_name, const FieldValue & field_value, bool insertable = true, bool updatable = true, bool is_primary_key = false,
bool add_column_prefix = true, ModelEnv * model_env = nullptr)
{
this->out_stream = &stream;
field(field_name, field_value, insertable, updatable, is_primary_key);
field(field_name, field_value, insertable, updatable, is_primary_key, add_column_prefix, model_env);
this->out_stream = nullptr;
}
@@ -266,6 +263,7 @@ public:
//virtual void esc(void* val, PT::TextStream & stream);
virtual void esc(const PT::Date & date, PT::TextStream & stream);
virtual void esc(const PT::TextStream & val,PT::TextStream & stream);
@@ -275,16 +273,8 @@ protected:
int work_mode; /* what to do: generating fields list, values list or fields-values list */
bool is_first_field;
// niech Stream bedzie jakims interfejsem z operatorami << dla standardowych typow
// albo w pikotoolsach dodać klase bazowa (intefejs) dla streamow
// i dodatkowo dodac loger ktory dziedziczy po niej i dodaje loglevel i endline
// jako metode bazowa dodac format("string", parametry,...)
// przyda sie do formatowania doubli
PT::TextStream * out_stream;
std::string column_prefix;
int column_prefix_index;
bool use_prefix;
virtual void generate_from_model(Model & model);
@@ -297,7 +287,7 @@ protected:
//void field(const wchar_t * field_name, Model & field, bool insertable = true, bool updatable = true);
virtual void put_field_name(const wchar_t * field_name, bool add_column_prefix = true);
virtual void put_field_name(const wchar_t * field_name, bool add_column_prefix = true, ModelEnv * model_env = nullptr);
template<typename FieldValue>
void put_field_value(const FieldValue & field_value)