Mercurial > projects > qtd
comparison generator/cppheadergenerator.cpp @ 259:515d6e1c7b10 lifetime
another iteration
author | maxter |
---|---|
date | Thu, 17 Sep 2009 16:28:41 +0000 |
parents | 17b5e13364b7 |
children | b5773ccab07d |
comparison
equal
deleted
inserted
replaced
258:1da8870e9a62 | 259:515d6e1c7b10 |
---|---|
42 #include "cppheadergenerator.h" | 42 #include "cppheadergenerator.h" |
43 | 43 |
44 #include <QtCore/QDir> | 44 #include <QtCore/QDir> |
45 | 45 |
46 #include <qdebug.h> | 46 #include <qdebug.h> |
47 #include <iostream> | |
47 | 48 |
48 QString CppHeaderGenerator::fileNameForClass(const AbstractMetaClass *java_class) const | 49 QString CppHeaderGenerator::fileNameForClass(const AbstractMetaClass *java_class) const |
49 { | 50 { |
50 return QString("%1_shell.h").arg(java_class->name()); | 51 return QString("%1_shell.h").arg(java_class->name()); |
51 } | 52 } |
173 if (!java_class->generateShellClass()) { | 174 if (!java_class->generateShellClass()) { |
174 s << "#endif" << endl << endl; | 175 s << "#endif" << endl << endl; |
175 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); | 176 priGenerator->addHeader(java_class->package(), fileNameForClass(java_class)); |
176 return ; | 177 return ; |
177 } | 178 } |
179 | |
180 if (java_class->name() == "QFSFileEngine") | |
181 { | |
182 std::cout << java_class->typeEntry()->isObject() << std::endl; | |
183 std::cout << java_class->hasVirtualDestructor() << std::endl; | |
184 qFatal("Bo"); | |
185 } | |
178 | 186 |
179 s << "class " << shellClassName(java_class) | 187 s << "class " << shellClassName(java_class) |
180 << " : public " << java_class->qualifiedCppName(); | 188 << " : public " << java_class->qualifiedCppName(); |
181 if (java_class->isQObject()) | 189 if (java_class->isQObject()) |
182 s << ", public QtD_QObjectEntity"; | 190 s << ", public QtD_QObjectEntity"; |
183 else if (java_class->hasVirtualFunctions()) | 191 else if (java_class->hasVirtualDestructor()) |
184 s << ", public QtD_Entity"; | 192 s << ", public QtD_Entity"; |
185 s << endl << "{" << endl; | 193 s << endl << "{" << endl; |
186 | 194 |
187 if (java_class->isQObject()) { | 195 if (java_class->isQObject()) { |
188 s << "public:" << endl | 196 s << "public:" << endl |
206 foreach (const AbstractMetaFunction *function, java_class->functions()) { | 214 foreach (const AbstractMetaFunction *function, java_class->functions()) { |
207 if (function->isConstructor() && !function->isPrivate()) | 215 if (function->isConstructor() && !function->isPrivate()) |
208 writeFunction(s, function); | 216 writeFunction(s, function); |
209 } | 217 } |
210 | 218 |
211 if (java_class->hasVirtualFunctions()) | 219 if (java_class->typeEntry()->isObject() && java_class->hasVirtualDestructor()) |
212 s << " ~" << shellClassName(java_class) << "();" << endl << endl; | 220 s << " ~" << shellClassName(java_class) << "();" << endl << endl; |
213 | 221 |
214 | 222 |
215 // All functions in original class that should be reimplemented in shell class | 223 // All functions in original class that should be reimplemented in shell class |
216 AbstractMetaFunctionList shell_functions = java_class->functionsInShellClass(); | 224 AbstractMetaFunctionList shell_functions = java_class->functionsInShellClass(); |