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

proc/procclass.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_CLASS_H
00007 #define WOC_PROCESSOR_CLASS_H
00008 
00009 #include <QList>
00010 #include <QMap>
00011 #include <QObject>
00012 #include <QPair>
00013 #include <QStringList>
00014 
00015 class QDomElement;
00016 
00018 struct WocEnum {
00019         QString name,doc;
00020         int val;
00021         WocEnum(){val=0;}
00022         WocEnum(QString n,int v,QString d=""){name=n;val=v;doc=d;}
00023 };
00024 
00026 class WocClass
00027 {
00028         public:
00030                 WocClass(const QDomElement&);
00031                 
00033                 bool isValid()const{return m_valid;}
00034                 
00036                 QString name()const{return m_name;}
00040                 QString baseClass(QString lang,QString prefix)const;
00041                 
00043                 bool hasProperty(QString)const;
00045                 QStringList propertyNames()const;
00047                 QString propertyType(QString)const;
00049                 QString propertyPlainType(QString)const;
00051                 bool propertyIsIdentity(QString)const;
00053                 bool propertyIsAbstract(QString)const;
00055                 bool propertyIsAttribute(QString)const;
00057                 bool propertyIsElement(QString)const;
00059                 bool propertyIsSimpleElement(QString)const;
00061                 bool propertyIsEnum(QString)const;
00063                 bool propertyIsObject(QString)const;
00065                 bool propertyIsList(QString)const;
00067                 bool propertyIsInt(QString p)const{QString pt=propertyPlainType(p);return pt=="int" || pt=="int32" || pt=="int64";}
00069                 bool propertyIsBool(QString p)const{return propertyPlainType(p)=="bool";}
00071                 bool propertyIsString(QString p)const{QString pt=propertyPlainType(p);return pt=="string"||pt=="astring";}
00073                 bool propertyIsBlob(QString p)const{QString pt=propertyPlainType(p);return pt=="blob";}
00074                 
00076                 bool isAbstract(QString)const;
00078                 QStringList abstractLangs()const{return m_cabstract;}
00079                 
00081                 QStringList enumTypes()const{return m_enumvals.keys();}
00083                 bool hasEnumType(QString t)const{return m_enumvals.contains(t);}
00085                 QList<WocEnum> enumValues(QString t)const{return m_enumvals[t];}
00086                 
00088                 bool hasMapping(QString m)const{return m_maps.contains(m);}
00090                 QStringList mappingTables()const{return m_maps.keys();}
00092                 QStringList mappingProperties(QString)const;
00094                 QMap<QString,QString> mapping(QString m)const;
00096                 QString mapMethod(QString table,QString property,QString lang)const;
00097                 
00099                 QStringList docStrings()const{return m_docstrings;}
00101                 QString propDoc(QString p)const
00102                 {if(m_propdoc.contains(p))return m_propdoc[p];else return "";}
00104                 QString enumDoc(QString e)const
00105                 {if(m_enumdoc.contains(e))return m_enumdoc[e];else return QString();}
00106                 
00107         private:
00109                 bool m_valid;
00111                 bool m_abstract;
00113                 QStringList m_cabstract;
00115                 QString m_name;
00117                 QMap<QString,QString>m_base;
00119                 struct s_prop{
00120                         QString name,type;
00121                         bool isid,isabstract;
00122                 };
00123                 QList<s_prop> m_props;
00125                 struct s_map{
00126                         QString column,property;
00127                         QMap<QString,QString>method;//lang->method
00128                 };
00129                 QMap<QString,QList<s_map> >m_maps;
00131                 QMap<QString,QList<WocEnum> >m_enumvals;
00133                 QMap<QString,QString>m_enumdoc;
00134 
00136                 QStringList m_docstrings;
00138                 QMap<QString,QString>m_propdoc;
00139                 
00140                 //helper: contains predefined types sorted by serialization type
00141                 static const QStringList attrtypes,elemtypes;
00142 };
00143 
00144 #endif

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