13 #ifndef __UT_ORMCOLUMN_H__
14 #define __UT_ORMCOLUMN_H__
39 AutoIncrement = 1 << 5,
54 unsigned props = Properties::Empty,
55 OnDelete on_delete = OnDelete::DoNothing)
56 : myName(name), myType(type), myProperties(
props), myOnDelete(on_delete)
80 myProperties |= Properties::NotNull;
85 bool isNotNull()
const {
return myProperties & Properties::NotNull; }
89 myProperties |= Properties::PrimaryKey;
96 return myProperties & Properties::PrimaryKey;
101 myProperties |= Properties::Unique;
106 bool isUnique()
const {
return myProperties & Properties::Unique; }
110 myProperties |= Properties::AutoIncrement;
117 return myProperties & Properties::AutoIncrement;
120 bool isLocal()
const {
return !isManyToMany() && !isForeignKey(); }
133 bool isForeignKey()
const {
return myProperties & Properties::ForeignKey; }
134 bool isManyToMany()
const {
return myProperties & Properties::ManyToMany; }
142 myProperties |= ForeignKey;
143 myForeignModelName = foreign_model;
144 myForeignTable = table_name;
145 myForeignColumns.
clear();
146 myForeignColumns.emplace_back(col);
147 myOnDelete = ondelete;
148 setRelatedName(related_name);
157 myProperties |= ForeignKey;
158 myForeignModelName = foreign_model;
159 myForeignTable = table_name;
160 myForeignColumns = cols;
161 myOnDelete = ondelete;
162 setRelatedName(related_name);
164 void setAsForeignKey(
172 return myForeignModelName;
176 return myForeignColumns[0];
184 unsigned myProperties = Properties::Empty;
231 return UT_ORMColumn::Type::DateTime;
234 #endif // __UT_ORMCOLUMN_H__
const UT_StringHolder & name() const
UT_ORMColumn(const UT_StringHolder &name, Type type, unsigned props=Properties::Empty, OnDelete on_delete=OnDelete::DoNothing)
UT_ORMColumn::Type UTsqlOrmColumnType< const char * >()
UT_ORMColumn & setAutoIncrement(bool inc)
UT_StringHolder myForeignModelName
UT_ORMColumn::Type UTsqlOrmColumnType< int >()
void setOnDelete(OnDelete ondelete)
const UT_StringHolder & foreignTable() const
SYS_FORCE_INLINE void clear()
UT_ORMColumn::Type UTsqlOrmColumnType< UT_StringHolder >()
bool isManyToMany() const
UT_StringArray myForeignColumns
void setAsForeignKey(const UT_StringHolder &foreign_model, const UT_StringHolder &table_name, const UT_StringHolder &col, UT_ORMColumn::OnDelete ondelete=UT_ORMColumn::OnDelete::Cascade, const UT_StringHolder &related_name=UT_StringHolder::theEmptyString)
bool isTableColumn() const
UT_StringHolder myForeignTable
bool isForeignKey() const
GLint GLint GLsizei GLint GLenum GLenum type
bool isAutoIncrement() const
void setAsForeignKey(const UT_StringHolder &foreign_model, const UT_StringHolder &table_name, const UT_StringArray &cols, UT_ORMColumn::OnDelete ondelete=UT_ORMColumn::OnDelete::Cascade, const UT_StringHolder &related_name=UT_StringHolder::theEmptyString)
bool operator!=(const UT_ORMColumn &rhs) const
UT_ORMColumn & setUnique(bool upk)
static const UT_StringHolder theEmptyString
UT_ORMColumn & setNotNull(bool not_null)
UT_ORMColumn & setName(const UT_StringHolder &name)
UT_StringHolder myRelated
GLuint const GLchar * name
bool operator==(const UT_ORMColumn &rhs) const
const UT_StringHolder & foreignTableModelName() const
OnDelete onDelete() const
const UT_StringHolder & foreignFieldName() const
const UT_StringArray & foreignColumns() const
UT_ORMColumn & setPrimaryKey(bool pk)
UT_ORMColumn::Type UTsqlOrmColumnType< int64 >()
UT_ORMColumn::Type UTsqlOrmColumnType< UT_DateTimeField >()
const UT_StringHolder & relatedName() const
UT_ORMColumn::Type UTsqlOrmColumnType< bool >()
unsigned properties() const
bool isPrimaryKey() const
GLenum GLuint GLsizei const GLenum * props