HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_ORMModelState.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_ORMModelState.h
7  *
8  * COMMENTS:
9  *
10  *
11  */
12 
13 #ifndef __UT_ORMMODELSTATE_H__
14 #define __UT_ORMMODELSTATE_H__
15 
16 #include "UT_API.h"
17 
18 #include "UT_Array.h"
19 #include "UT_Debug.h"
20 #include "UT_ORMColumn.h"
21 #include "UT_ORMConstraint.h"
22 #include "UT_StringHolder.h"
23 #include "UT_UniquePtr.h"
24 
25 #include <SYS/SYS_Compiler.h>
26 
28 {
29 public:
31 };
32 
34 {
35 public:
36  UT_ORMModelState() = default;
38  const UT_StringHolder& table_name,
39  const UT_Array<UT_ORMModelStateField>& fields)
40  : myName(table_name), myTableName(table_name), myFields(fields)
41  {
42  }
43 
44  ~UT_ORMModelState() = default;
45  UT_ORMModelState(const UT_ORMModelState& model) { *this = model; }
47  {
48  *this = model.clone();
49  return *this;
50  }
53 
54  UT_ORMModelState clone() const;
55 
56  const UT_StringHolder& name() const { return myName; }
57  const UT_StringHolder& tableName() const { return myTableName; }
58 
60  {
61  for (auto&& field : myFields)
62  {
63  if (field.name() == field_name)
64  return &field;
65  }
66  return nullptr;
67  }
68  const UT_ORMModelStateField* findField(const UT_StringRef& field_name) const
69  {
70  return SYSconst_cast(this)->findField(field_name);
71  }
72  bool hasField(const UT_StringRef& field_name) const
73  {
74  for (auto&& field : myFields)
75  {
76  if (field.name() == field_name)
77  return true;
78  }
79  return false;
80  }
81  void removeField(const UT_StringRef& field_name)
82  {
83  for (int i = 0, s = myFields.size(); i < s; i++)
84  {
85  if (myFields[i].name() == field_name)
86  {
87  myFields.removeIndex(i);
88  break;
89  }
90  }
91  }
92  void addField(const UT_ORMModelStateField& field)
93  {
94  if (!hasField(field.name()))
95  {
96  myFields.emplace_back(field);
97  }
98  }
100  const UT_StringHolder& from_name,
101  const UT_StringHolder& to_name)
102  {
103  if (UT_ORMModelStateField* found_field = findField(from_name);
104  found_field)
105  {
106  found_field->setName(to_name);
107  }
108  }
110  {
111  myConstraints.emplace_back(std::move(constraint));
112  }
113  const UT_Array<UT_ORMModelStateField>& fields() const { return myFields; }
115  {
116  return myConstraints;
117  }
118 
123 };
124 
125 #endif // __UT_ORMMODELSTATE_H__
const UT_Array< UT_UniquePtr< UT_IORMConstraint > > & constraints() const
const UT_StringHolder & name() const
Definition: UT_ORMColumn.h:76
UT_ORMColumn()=default
const UT_Array< UT_ORMModelStateField > & fields() const
UT_ORMModelState clone() const
UT_ORMModelStateField * findField(const UT_StringRef &field_name)
const UT_StringHolder & name() const
SYS_FORCE_INLINE T * SYSconst_cast(const T *foo)
Definition: SYS_Types.h:136
GLdouble s
Definition: glad.h:3009
void addField(const UT_ORMModelStateField &field)
const UT_StringHolder & tableName() const
#define UT_API
Definition: UT_API.h:14
UT_StringHolder myName
void renameField(const UT_StringHolder &from_name, const UT_StringHolder &to_name)
UT_StringHolder myTableName
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition: UT_UniquePtr.h:39
UT_ORMModelState(const UT_ORMModelState &model)
void removeField(const UT_StringRef &field_name)
GLuint const GLchar * name
Definition: glcorearb.h:786
void addConstraint(UT_UniquePtr< UT_IORMConstraint > constraint)
UT_ORMModelState & operator=(const UT_ORMModelState &model)
UT_Array< UT_UniquePtr< UT_IORMConstraint > > myConstraints
const UT_ORMModelStateField * findField(const UT_StringRef &field_name) const
bool hasField(const UT_StringRef &field_name) const
LeafData & operator=(const LeafData &)=delete
UT_ORMModelState(const UT_StringHolder &table_name, const UT_Array< UT_ORMModelStateField > &fields)
UT_Array< UT_ORMModelStateField > myFields