Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef WOC_PROCESSOR_TABLE_H
00007 #define WOC_PROCESSOR_TABLE_H
00008
00009 #include <QList>
00010 #include <QMap>
00011 #include <QObject>
00012 #include <QPair>
00013 #include <QStringList>
00014
00015 class QDomElement;
00016 class WocEnum;
00017
00019 class WocTable
00020 {
00021 public:
00023 WocTable();
00025 WocTable(const QDomElement&);
00026
00028 bool isValid()const{return m_valid;}
00029
00031 QString name()const{return m_name;}
00033 bool inBackup()const{return m_backup;}
00035 QString baseClass()const{return m_base;}
00036
00038 bool hasColumn(QString)const;
00040 QStringList columns()const;
00042 QStringList primaryColumns()const;
00044 QString columnType(QString)const;
00046 bool columnIsNull(QString)const;
00048 bool columnIsPrimary(QString)const;
00050 bool columnHasDefault(QString)const;
00052 QString columnDefault(QString)const;
00054 bool columnIsForeign(QString)const;
00056 QString columnForeign(QString)const;
00058 bool columnIsIndexed(QString)const;
00060 bool columnIsUnique(QString)const;
00062 QList<WocEnum> columnEnums(QString)const;
00064 QString columnCall(QString col,QString lang)const;
00065
00067 QList<WocEnum> getEnums()const;
00068
00070 QStringList foreigns()const;
00072 QString foreignQuery(QString)const;
00074 bool haveForeign(QString)const;
00075
00078 QList<QMap<QString,QString> > presets()const{return m_presets;}
00079
00081 static void parseAuditStatic(const QDomElement&);
00083 bool isAuditable()const{return m_audit;}
00085 WocTable auditTable()const;
00087 QStringList auditColumns()const;
00088
00090 QStringList docStrings()const{return m_docstrings;}
00092 QString columnDoc(QString c)const;
00094 QString foreignDoc(QString c)const
00095 {if(m_fordocs.contains(c))return m_fordocs[c];else return "";}
00096
00097 private:
00098 bool m_valid,m_backup,m_audit;
00099 QString m_name,m_base;
00101 struct s_col {
00102 QString name,type,foreign,defaultval,doc;
00103 bool isnull,isprime,isindex,isunique;
00104 QList<WocEnum>enumvals;
00105 QMap<QString,QString>methodcalls;
00106 };
00107 QList<s_col>m_columns,m_auditcolumns;
00108 static QList<s_col>m_staticauditcolumns;
00109 QList<QPair<QString,QString> >m_foreign;
00110 QList<QMap<QString,QString> >m_presets;
00111
00112 QStringList m_docstrings;
00113 QMap<QString,QString>m_fordocs;
00114
00115
00116 static QPair<bool,s_col> parseColumn(const QDomElement&,QString);
00117 };
00118
00119
00120 #endif