HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_ORMSchemaEditor.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: UT_ORMSchemaEditor.h
7  *
8  * COMMENTS:
9  *
10  *
11  */
12 
13 #ifndef __UT_ORMSCHEMAEDITOR_H__
14 #define __UT_ORMSCHEMAEDITOR_H__
15 
16 #include "UT_API.h"
17 
18 #include "UT_Map.h"
19 #include "UT_ORMDDLReference.h"
20 #include "UT_ORMModelState.h"
21 #include "UT_SQL.h"
22 
23 class UT_SqlOrm;
24 class UT_IORMConstraint;
25 
27 {
28 public:
29  virtual ~UT_IORMSchemaEditor();
31 
32  virtual void deleteModel(
33  const UT_ORMModelState& model,
34  bool handle_autom2m = true);
35  virtual void createModel(const UT_ORMModelState& model);
36  virtual void addField(
37  const UT_ORMModelState& model,
38  const UT_ORMModelStateField& field);
39  virtual void removeField(
40  const UT_ORMModelState& model,
41  const UT_ORMModelStateField& field);
42  virtual void renameField(
43  const UT_ORMModelState& model,
44  const UT_ORMModelStateField& from_field,
45  const UT_ORMModelStateField& to_field);
46  virtual void addConstraint(
47  const UT_ORMModelState& model,
48  UT_IORMConstraint* constraint);
49  virtual void alterDBTable(
50  const UT_ORMModelState& old_model,
51  const UT_ORMModelState& new_model);
52  virtual void alterField(
53  const UT_ORMModelState& model,
54  const UT_ORMModelStateField& old_field,
55  const UT_ORMModelStateField& new_field);
56 
58  const UT_ORMModelState& model,
59  const UT_StringArray& fields,
60  const UT_StringHolder& name,
61  const UT_StringHolder& condition);
63  const UT_ORMModelState& model,
64  const UT_StringArray& fields,
65  const UT_StringHolder& name,
66  const UT_StringHolder& condition) const;
68  const UT_ORMModelState& model,
69  const UT_StringHolder& name,
70  const UT_StringHolder& condition) const;
71 
72  const UT_StringArray& collectedSql() const { return myCollectedSql; }
73 
74  UT_ErrorCode error() const;
75 
77 protected:
78  UT_IORMSchemaEditor(UT_SqlOrm& orm, bool collect_sql = false);
79 
81  const UT_ORMModelState& model,
82  const UT_ORMModelStateField& field);
83  void execute(const UT_StringHolder& sql);
86 
88 
90 
92 
94 
96 
98  bool myCollectSql = false;
99 
101 };
102 
104 {
105 public:
106  UT_ORMSqliteSchemaEditor(UT_SqlOrm& orm, bool collect_sql);
107  void addConstraint(
108  const UT_ORMModelState& state,
109  UT_IORMConstraint* constraint) override;
110  void addField(
111  const UT_ORMModelState& model,
112  const UT_ORMModelStateField& field) override;
113  void alterDBTable(
114  const UT_ORMModelState& old_model,
115  const UT_ORMModelState& new_model) override;
116  void removeField(
117  const UT_ORMModelState& model,
118  const UT_ORMModelStateField& field) override;
119  void alterField(
120  const UT_ORMModelState& model,
121  const UT_ORMModelStateField& old_field,
122  const UT_ORMModelStateField& new_field) override;
123 
124 private:
125  void remakeTable_(
126  const UT_ORMModelState& model,
127  const UT_ORMModelStateField* create_field,
128  const UT_ORMModelStateField* delete_field,
129  const std::pair<
130  const UT_ORMModelStateField*,
131  const UT_ORMModelStateField*> alter_field
132  = {nullptr, nullptr});
133 };
134 
135 #endif // __UT_ORMSCHEMAEDITOR_H__
136 
UT_StringHolder columnSql(const UT_ORMModelState &model, const UT_ORMModelStateField &field)
UT_NON_COPYABLE(UT_IORMSchemaEditor)
UT_StringHolder typeString_(UT_ORMColumnType col_type) const
void alterDBTable(const UT_ORMModelState &old_model, const UT_ORMModelState &new_model) override
virtual void createModel(const UT_ORMModelState &model)
void removeField(const UT_ORMModelState &model, const UT_ORMModelStateField &field) override
UT_ORMColumnType
UT_IORMSchemaEditor(UT_SqlOrm &orm, bool collect_sql=false)
void alterField(const UT_ORMModelState &model, const UT_ORMModelStateField &old_field, const UT_ORMModelStateField &new_field) override
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition: UT_UniquePtr.h:39
virtual ~UT_IORMSchemaEditor()
UT_SqlDatabase & connection()
UT_UniquePtr< UT_ORMDDLStatement > createUniqueSql(const UT_ORMModelState &model, const UT_StringArray &fields, const UT_StringHolder &name, const UT_StringHolder &condition) const
UT_Array< UT_UniquePtr< UT_IORMDDLReference > > myDeferredSql
UT_StringArray myCollectedSql
UT_StringHolder uniqueSql(const UT_ORMModelState &model, const UT_StringArray &fields, const UT_StringHolder &name, const UT_StringHolder &condition)
UT_Map< UT_ORMColumnType, UT_StringHolder > myColumnTypeToDBType
virtual void deleteModel(const UT_ORMModelState &model, bool handle_autom2m=true)
virtual void renameField(const UT_ORMModelState &model, const UT_ORMModelStateField &from_field, const UT_ORMModelStateField &to_field)
UT_ORMSqliteSchemaEditor(UT_SqlOrm &orm, bool collect_sql)
GLuint const GLchar * name
Definition: glcorearb.h:786
virtual void addField(const UT_ORMModelState &model, const UT_ORMModelStateField &field)
virtual void alterDBTable(const UT_ORMModelState &old_model, const UT_ORMModelState &new_model)
virtual void addConstraint(const UT_ORMModelState &model, UT_IORMConstraint *constraint)
std::error_code UT_ErrorCode
Definition: UT_ErrorCode.h:20
UT_ErrorCode error() const
virtual void removeField(const UT_ORMModelState &model, const UT_ORMModelStateField &field)
virtual void alterField(const UT_ORMModelState &model, const UT_ORMModelStateField &old_field, const UT_ORMModelStateField &new_field)
UT_UniquePtr< UT_AutoSqlTransaction > myTransaction
void addConstraint(const UT_ORMModelState &state, UT_IORMConstraint *constraint) override
void execute(const UT_StringHolder &sql)
void addField(const UT_ORMModelState &model, const UT_ORMModelStateField &field) override
const UT_StringArray & collectedSql() const
UT_UniquePtr< UT_ORMDDLStatement > deleteUniqueSql(const UT_ORMModelState &model, const UT_StringHolder &name, const UT_StringHolder &condition) const
UT_StringHolder mySqlDeleteTable
UT_StringHolder tableSql(const UT_ORMModelState &model)
state
Definition: core.h:2289