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_PHPOUT_H 00007 #define WOC_PHPOUT_H 00008 00009 #include <QFile> 00010 00011 #include "processor.h" 00012 00013 class QDomElement; 00014 00015 class WocPHPOut; 00016 class WocPHPClass; 00017 class WocPHPTable; 00018 class WocPHPTransaction; 00019 class WocPHPClientTransaction; 00020 class WocPHPServerTransaction; 00021 00023 class WocPHPOut:public WocOutput 00024 { 00025 public: 00027 WocPHPOut(const QDomElement&); 00028 00029 virtual ~WocPHPOut()=0; 00030 protected: 00032 virtual void finalize(); 00034 virtual void newClass(const WocClass&); 00036 virtual void newTable(const WocTable&); 00038 virtual void newTransaction(const WocTransaction&); 00039 00040 friend class WocPHPClass; 00041 friend class WocPHPTable; 00042 friend class WocPHPTransaction; 00043 friend class WocPHPClientTransaction; 00044 friend class WocPHPServerTransaction; 00045 00046 QString m_basedir,m_subdir,m_fileext; 00047 QString m_transbase,m_lang; 00048 QFile m_loader,m_schema,m_transact; 00049 00051 void addLoad(QString classname,QString filename); 00052 00053 WocPHPClass*pclass; 00054 WocPHPTable*ptable; 00055 WocPHPTransaction*ptrans; 00056 00058 QString classPrefix(){return "WO";} 00060 QString className(const WocClass&c){return "WO"+c.name();} 00062 QString abstractClassName(const WocClass&c){return "WO"+c.name()+QString(c.isAbstract(m_lang)?"Abstract":"");} 00063 00065 QString trnClassName(const WocTransaction&t){return "WTr"+t.name();} 00066 }; 00067 00069 class WocPHPServerOut:public WocPHPOut 00070 { 00071 public: 00073 WocPHPServerOut(const QDomElement&); 00074 }; 00075 00077 class WocPHPClientOut:public WocPHPOut 00078 { 00079 public: 00081 WocPHPClientOut(const QDomElement&); 00082 }; 00083 00084 #endif