• Main Page
  • Classes
  • Files
  • File List
  • File Members

proc/proctable.h

Go to the documentation of this file.
00001 // Copyright (C) 2009-2011 by Konrad Rosenbaum <konrad@silmor.de>
00002 // protected under the GNU GPL version 3 or at your option any newer.
00003 // See COPYING.GPL file that comes with this distribution.
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                 //helper method: parses a single column element
00116                 static QPair<bool,s_col> parseColumn(const QDomElement&,QString);
00117 };
00118 
00119 
00120 #endif

Generated on Sun Apr 15 2012 21:13:24 for PACK WOC by  doxygen 1.7.1