summaryrefslogtreecommitdiffstats
path: root/tests/auto/qscriptvalue/testgen/testgenerator.cpp
diff options
context:
space:
mode:
authorDavid Boddie <dboddie@trolltech.com>2010-03-04 18:22:02 (GMT)
committerDavid Boddie <dboddie@trolltech.com>2010-03-04 18:22:02 (GMT)
commit2542f8b565e90378145c048b3a6982f4749c6392 (patch)
treed48a2a8988a778e16cf73aac4d0b5709b82f0082 /tests/auto/qscriptvalue/testgen/testgenerator.cpp
parent4f2203e481cc1663776e7b87b082cf0dd42849fd (diff)
parent364ba2bfeeab574d2ae940e4387d3c90b2a46dcd (diff)
downloadQt-2542f8b565e90378145c048b3a6982f4749c6392.zip
Qt-2542f8b565e90378145c048b3a6982f4749c6392.tar.gz
Qt-2542f8b565e90378145c048b3a6982f4749c6392.tar.bz2
Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7
Diffstat (limited to 'tests/auto/qscriptvalue/testgen/testgenerator.cpp')
-rw-r--r--tests/auto/qscriptvalue/testgen/testgenerator.cpp401
1 files changed, 238 insertions, 163 deletions
diff --git a/tests/auto/qscriptvalue/testgen/testgenerator.cpp b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
index 4376c42..a291110 100644
--- a/tests/auto/qscriptvalue/testgen/testgenerator.cpp
+++ b/tests/auto/qscriptvalue/testgen/testgenerator.cpp
@@ -50,10 +50,17 @@
#include <QtCore/qvariant.h>
#include <QtScript/qscriptvalue.h>
-void TestGenerator::save(const QString& data)
+void TestGenerator::save(const QHash<QString, QString>& data)
{
- QTextStream out(&m_ofile);
- out << data;
+ foreach(const QString& name, data.keys()) {
+ QFile ofile(m_opath + "tst_qscriptvalue_generated_" + name + ".cpp");
+ if (!ofile.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ qWarning() << "Can't open output file: " << ofile.fileName();
+ exit(2);
+ }
+ QTextStream out(&ofile);
+ out << data[name];
+ }
}
static QString escape(QString txt)
@@ -98,6 +105,55 @@ QString typeName<bool>() {return "bool";}
template<>
QString typeName<QString>() {return "QString";}
+static QString generateLicence()
+{
+ return "/****************************************************************************\n"
+ "**\n"
+ "** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\n"
+ "** All rights reserved.\n"
+ "** Contact: Nokia Corporation (qt-info@nokia.com)\n"
+ "**\n"
+ "** This file is part of the test suite of the Qt Toolkit.\n"
+ "**\n"
+ "** $QT_BEGIN_LICENSE:LGPL$\n"
+ "** No Commercial Usage\n"
+ "** This file contains pre-release code and may not be distributed.\n"
+ "** You may use this file in accordance with the terms and conditions\n"
+ "** contained in the Technology Preview License Agreement accompanying\n"
+ "** this package.\n"
+ "**\n"
+ "** GNU Lesser General Public License Usage\n"
+ "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
+ "** General Public License version 2.1 as published by the Free Software\n"
+ "** Foundation and appearing in the file LICENSE.LGPL included in the\n"
+ "** packaging of this file. Please review the following information to\n"
+ "** ensure the GNU Lesser General Public License version 2.1 requirements\n"
+ "** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n"
+ "**\n"
+ "** In addition, as a special exception, Nokia gives you certain additional\n"
+ "** rights. These rights are described in the Nokia Qt LGPL Exception\n"
+ "** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n"
+ "**\n"
+ "** If you have questions regarding the use of this file, please contact\n"
+ "** Nokia at qt-info@nokia.com.\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "**\n"
+ "** $QT_END_LICENSE$\n"
+ "**\n"
+ "****************************************************************************/\n"
+ "\n"\
+ "/****************************************************************************\n"\
+ "*************** This file has been generated. DO NOT MODIFY! ****************\n"
+ "****************************************************************************/\n\n"\
+ "#include \"tst_qscriptvalue.h\"\n\n";
+}
+
static QString generateIsXXXDef(const QString& name, const QList<QString>& list)
{
static const QString templ("void tst_QScriptValue::%1_initData()\n"\
@@ -106,11 +162,14 @@ static QString generateIsXXXDef(const QString& name, const QList<QString>& list)
" initScriptValues();\n"\
"}\n"\
"\n"\
+ "static QString %1_array [] = {%2};\n\n"\
"void tst_QScriptValue::%1_makeData(const char* expr)\n"\
"{\n"\
" static QSet<QString> %1;\n"\
" if (%1.isEmpty()) {\n"\
- " %1%2\n"\
+ " %1.reserve(%3);\n"\
+ " for (unsigned i = 0; i < %3; ++i)\n"\
+ " %1.insert(%1_array[i]);\n"\
" }\n"\
" newRow(expr) << %1.contains(expr);\n"\
"}\n"\
@@ -132,16 +191,14 @@ static QString generateIsXXXDef(const QString& name, const QList<QString>& list)
QString result = templ;
QStringList set;
- foreach(QString t, list) {
- t = escape(t);
- t.append('\"');
- t.prepend('\"');
- set.append(QString(" << "));
- set.append(t);
- set.append("\n ");
+ set.reserve(3 * list.count());
+ foreach(const QString& t, list) {
+ set.append("\n \"");
+ set.append(escape(t));
+ set.append("\",");
}
- set.append(";");
- return result.arg(name, set.join(QString()));
+
+ return result.arg(name, set.join(QString()), QString::number(list.count()));
}
template<typename T>
@@ -154,11 +211,15 @@ static QString generateToXXXDef(const QString& name, const QList<QPair<QString,
" initScriptValues();\n"\
"}\n"\
"\n"\
+ "static QString %1_tagArray [] = {%4};\n\n"\
+ "static %2 %1_valueArray [] = {%5};\n\n"\
"void tst_QScriptValue::%1_makeData(const char* expr)\n"\
"{\n"\
" static QHash<QString, %2> %1;\n"\
" if (%1.isEmpty()) {\n"\
- "%3"\
+ " %1.reserve(%3);\n"\
+ " for (unsigned i = 0; i < %3; ++i)\n"\
+ " %1.insert(%1_tagArray[i], %1_valueArray[i]);\n"\
" }\n"\
" newRow(expr) << %1.value(expr);\n"\
"}\n"\
@@ -174,19 +235,26 @@ static QString generateToXXXDef(const QString& name, const QList<QPair<QString,
QString result = templ;
typename QList<QPair<QString, T> >::const_iterator i = list.constBegin();
- QStringList set;
+ QStringList tagSet, valueSet;
+ tagSet.reserve(list.count());
+ valueSet.reserve(list.count());
+ int tmp = -1;
for(; i != list.constEnd(); ++i) {
QPair<QString, T> t = *i;
t.first = escape(t.first);
- set.append(QString(" "));
- set.append(name);
- set.append(".insert(\"");
- set.append(t.first);
- set.append(QString::fromAscii("\", "));
- set.append(prepareToInsert<T>(t.second));
- set.append(QString::fromAscii(");\n"));
+ tagSet.append(QString("\n \""));
+ tagSet.append(t.first);
+ tagSet.append(QString::fromAscii("\","));
+ if (!((++tmp)%2))
+ valueSet.append(QString("\n "));
+ valueSet.append(prepareToInsert<T>(t.second));
+ valueSet.append(QString::fromAscii(", "));
}
- return result.arg(name, typeName<T>(), set.join(QString()));
+ return result.arg(name,
+ typeName<T>(),
+ QString::number(list.count()),
+ tagSet.join(QString()),
+ valueSet.join(QString()));
}
@@ -200,11 +268,15 @@ QString generateToXXXDef<qsreal>(const QString& name, const QList<QPair<QString,
" initScriptValues();\n"\
"}\n"\
"\n"\
+ "static QString %1_tagArray [] = {%3};\n"\
+ "static %2 %1_valueArray [] = {%4};\n"\
"void tst_QScriptValue::%1_makeData(const char* expr)\n"\
"{\n"\
" static QHash<QString, %2> %1;\n"\
" if (%1.isEmpty()) {\n"\
- "%3"\
+ " %1.reserve(%5);\n"\
+ " for (unsigned i = 0; i < %5; ++i)\n"\
+ " %1.insert(%1_tagArray[i], %1_valueArray[i]);\n"\
" }\n"\
" newRow(expr) << %1.value(expr);\n"\
"}\n"\
@@ -226,17 +298,20 @@ QString generateToXXXDef<qsreal>(const QString& name, const QList<QPair<QString,
QString result = templ;
QList<QPair<QString, qsreal> >::const_iterator i = list.constBegin();
- QStringList set;
+ QStringList tagSet, valueSet;
+ tagSet.reserve(list.count());
+ valueSet.reserve(list.count());
+ int tmp = -1;
for(; i != list.constEnd(); ++i) {
QPair<QString, qsreal> t = *i;
t.first = escape(t.first);
- set.append(QString(" "));
- set.append(name);
- set.append(".insert(\"");
- set.append(t.first);
- set.append(QString::fromAscii("\", "));
- set.append(prepareToInsert<qsreal>(t.second));
- set.append(QString::fromAscii(");\n"));
+ tagSet.append(QString("\n \""));
+ tagSet.append(t.first);
+ tagSet.append(QString::fromAscii("\","));
+ if (!((++tmp)%10))
+ valueSet.append(QString("\n "));
+ valueSet.append(prepareToInsert<qsreal>(t.second));
+ valueSet.append(QString::fromAscii(", "));
}
// toInteger shouldn't return NaN, so it would be nice to catch the case.
QString hook;
@@ -247,105 +322,129 @@ QString generateToXXXDef<qsreal>(const QString& name, const QList<QPair<QString,
" return;\n"\
" }\n";
}
- return result.arg(name, typeName<qsreal>(), set.join(QString()), hook);
+ return result.arg(name,
+ typeName<qsreal>(),
+ tagSet.join(QString()),
+ valueSet.join(QString()),
+ QString::number(list.count()),
+ hook);
}
template<typename T>
static QString generateCastDef(const QList<QPair<QString, T> >& list)
{
static const QString templ = "\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_initData()\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_initData()\n"\
"{\n"\
- " QTest::addColumn<%2>(\"expected\");\n"\
+ " QTest::addColumn<%1>(\"expected\");\n"\
" initScriptValues();\n"\
"}\n"\
"\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_makeData(const char* expr)\n"\
+ "static QString qscriptvalue_cast%1_tagArray [] = {%2};\n"\
+ "static %1 qscriptvalue_cast%1_valueArray [] = {%3};\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_makeData(const char* expr)\n"\
"{\n"\
- " static QHash<QString, %2> value;\n"\
+ " static QHash<QString, %1> value;\n"\
" if (value.isEmpty()) {\n"\
- "%3"\
+ " value.reserve(%4);\n"\
+ " for (unsigned i = 0; i < %4; ++i)\n"\
+ " value.insert(qscriptvalue_cast%1_tagArray[i], qscriptvalue_cast%1_valueArray[i]);\n"\
" }\n"\
" newRow(expr) << value.value(expr);\n"\
"}\n"\
"\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_test(const char*, const QScriptValue& value)\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_test(const char*, const QScriptValue& value)\n"\
"{\n"\
- " QFETCH(%2, expected);\n"\
- " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
- " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ " QFETCH(%1, expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%1>(value), expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%1>(value), expected);\n"\
"}\n"\
"\n"\
- "DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
+ "DEFINE_TEST_FUNCTION(qscriptvalue_cast%1)\n";
QString result = templ;
typename QList<QPair<QString, T> >::const_iterator i = list.constBegin();
- QStringList set;
+ QStringList tagSet, valueSet;
+ tagSet.reserve(list.count());
+ valueSet.reserve(list.count());
+ int tmp = -1;
for(; i != list.constEnd(); ++i) {
QPair<QString, T> t = *i;
t.first = escape(t.first);
- set.append(QString(" "));
- set.append("value.insert(\"");
- set.append(t.first);
- set.append(QString::fromAscii("\", "));
- set.append(prepareToInsert<T>(t.second));
- set.append(QString::fromAscii(");\n"));
+ tagSet.append(QString("\n \""));
+ tagSet.append(t.first);
+ tagSet.append(QString::fromAscii("\","));
+ if (!((++tmp)%2))
+ valueSet.append(QString("\n "));
+ valueSet.append(prepareToInsert<T>(t.second));
+ valueSet.append(QString::fromAscii(", "));
}
- return result.arg(typeName<T>(), set.join(QString()));
+ return result.arg(typeName<T>(), tagSet.join(QString()), valueSet.join(QString()), QString::number(list.count()));
}
template<>
QString generateCastDef<qsreal>(const QList<QPair<QString, qsreal> >& list)
{
static const QString templ = "\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_initData()\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_initData()\n"\
"{\n"\
- " QTest::addColumn<%2>(\"expected\");\n"\
+ " QTest::addColumn<%1>(\"expected\");\n"\
" initScriptValues();\n"\
"}\n"\
"\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_makeData(const char* expr)\n"\
+ "static QString qscriptvalue_cast%1_tagArray [] = {%2};\n"\
+ "static %1 qscriptvalue_cast%1_valueArray [] = {%3};\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_makeData(const char* expr)\n"\
"{\n"\
- " static QHash<QString, %2> value;\n"\
+ " static QHash<QString, %1> value;\n"\
" if (value.isEmpty()) {\n"\
- "%3"\
+ " value.reserve(%4);\n"\
+ " for (unsigned i = 0; i < %4; ++i)\n"\
+ " value.insert(qscriptvalue_cast%1_tagArray[i], qscriptvalue_cast%1_valueArray[i]);\n"\
" }\n"\
" newRow(expr) << value.value(expr);\n"\
"}\n"\
"\n"\
- "void tst_QScriptValue::qscriptvalue_cast%2_test(const char*, const QScriptValue& value)\n"\
+ "void tst_QScriptValue::qscriptvalue_cast%1_test(const char*, const QScriptValue& value)\n"\
"{\n"\
- " QFETCH(%2, expected);\n"\
+ " QFETCH(%1, expected);\n"\
" if (qIsNaN(expected)) {\n"
- " QVERIFY(qIsNaN(qscriptvalue_cast<%2>(value)));\n"
- " QVERIFY(qIsNaN(qscriptvalue_cast<%2>(value)));\n"
+ " QVERIFY(qIsNaN(qscriptvalue_cast<%1>(value)));\n"
+ " QVERIFY(qIsNaN(qscriptvalue_cast<%1>(value)));\n"
" return;\n"
" }\n"\
" if (qIsInf(expected)) {\n"
- " QVERIFY(qIsInf(qscriptvalue_cast<%2>(value)));\n"
- " QVERIFY(qIsInf(qscriptvalue_cast<%2>(value)));\n"
+ " QVERIFY(qIsInf(qscriptvalue_cast<%1>(value)));\n"
+ " QVERIFY(qIsInf(qscriptvalue_cast<%1>(value)));\n"
" return;\n"
" }\n"
- " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
- " QCOMPARE(qscriptvalue_cast<%2>(value), expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%1>(value), expected);\n"\
+ " QCOMPARE(qscriptvalue_cast<%1>(value), expected);\n"\
"}\n"\
"\n"\
- "DEFINE_TEST_FUNCTION(qscriptvalue_cast%2)\n";
+ "DEFINE_TEST_FUNCTION(qscriptvalue_cast%1)\n";
QString result = templ;
QList<QPair<QString, qsreal> >::const_iterator i = list.constBegin();
- QStringList set;
+ QStringList tagSet, valueSet;
+ tagSet.reserve(list.count());
+ valueSet.reserve(list.count());
+ int tmp = -1;
for(; i != list.constEnd(); ++i) {
QPair<QString, qsreal> t = *i;
t.first = escape(t.first);
- set.append(QString(" "));
- set.append("value.insert(\"");
- set.append(t.first);
- set.append(QString::fromAscii("\", "));
- set.append(prepareToInsert<qsreal>(t.second));
- set.append(QString::fromAscii(");\n"));
+ tagSet.append(QString("\n \""));
+ tagSet.append(t.first);
+ tagSet.append(QString::fromAscii("\","));
+ if (!((++tmp)%10))
+ valueSet.append(QString("\n "));
+ valueSet.append(prepareToInsert<qsreal>(t.second));
+ valueSet.append(QString::fromAscii(", "));
}
- return result.arg(typeName<qsreal>(), set.join(QString()));
+ return result.arg(typeName<qsreal>(),
+ tagSet.join(QString()),
+ valueSet.join(QString()),
+ QString::number(list.count()));
}
static QString generateCompareDef(const QString& comparisionType, const QList<QString> tags)
@@ -358,11 +457,14 @@ static QString generateCompareDef(const QString& comparisionType, const QList<QS
" initScriptValues();\n"\
"}\n"\
"\n"\
+ "static QString %1_array [] = {%2};\n\n"\
"void tst_QScriptValue::%1_makeData(const char *expr)\n"\
"{\n"\
" static QSet<QString> equals;\n"\
" if (equals.isEmpty()) {\n"\
- "%2\n"\
+ " equals.reserve(%3);\n"\
+ " for (unsigned i = 0; i < %3; ++i)\n"\
+ " equals.insert(%1_array[i]);\n"\
" }\n"\
" QHash<QString, QScriptValue>::const_iterator it;\n"\
" for (it = m_values.constBegin(); it != m_values.constEnd(); ++it) {\n"\
@@ -386,59 +488,16 @@ static QString generateCompareDef(const QString& comparisionType, const QList<QS
QString result = templ;
QStringList set;
+ set.reserve(tags.count());
foreach(const QString& tmp, tags) {
- set.append(" equals.insert(\"" + escape(tmp) + "\");");
+ set.append("\n \"" + escape(tmp) + "\",");
}
- return result.arg(comparisionType, set.join("\n"));
+ return result.arg(comparisionType, set.join(""), QString::number(tags.count()));
}
static QString generateInitDef(const QVector<QString>& allDataTags)
{
- static const QString templ = "/****************************************************************************\n"
- "**\n"
- "** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\n"
- "** All rights reserved.\n"
- "** Contact: Nokia Corporation (qt-info@nokia.com)\n"
- "**\n"
- "** This file is part of the test suite of the Qt Toolkit.\n"
- "**\n"
- "** $QT_BEGIN_LICENSE:LGPL$\n"
- "** No Commercial Usage\n"
- "** This file contains pre-release code and may not be distributed.\n"
- "** You may use this file in accordance with the terms and conditions\n"
- "** contained in the Technology Preview License Agreement accompanying\n"
- "** this package.\n"
- "**\n"
- "** GNU Lesser General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
- "** General Public License version 2.1 as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.LGPL included in the\n"
- "** packaging of this file. Please review the following information to\n"
- "** ensure the GNU Lesser General Public License version 2.1 requirements\n"
- "** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n"
- "**\n"
- "** In addition, as a special exception, Nokia gives you certain additional\n"
- "** rights. These rights are described in the Nokia Qt LGPL Exception\n"
- "** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n"
- "**\n"
- "** If you have questions regarding the use of this file, please contact\n"
- "** Nokia at qt-info@nokia.com.\n"
- "**\n"
- "**\n"
- "**\n"
- "**\n"
- "**\n"
- "**\n"
- "**\n"
- "**\n"
- "** $QT_END_LICENSE$\n"
- "**\n"
- "****************************************************************************/\n"
- "\n"\
- "#include \"tst_qscriptvalue.h\"\n\n"\
- "#define DEFINE_TEST_VALUE(expr) m_values.insert(QString::fromLatin1(#expr), expr)\n"\
- "\n"\
- "void tst_QScriptValue::initScriptValues()\n"\
+ static const QString templ = "void tst_QScriptValue::initScriptValues()\n"\
"{\n"\
" m_values.clear();\n"\
" if (engine) \n"\
@@ -463,7 +522,7 @@ static void squashTags(QString dataTag, const QVector<bool>& results, QList<QStr
}
-QString TestGenerator::generateTest()
+QHash<QString, QString> TestGenerator::generateTest()
{
// All data tags keept in one place.
QVector<QString> dataTags;
@@ -643,47 +702,63 @@ QString TestGenerator::generateTest()
Q_ASSERT(in.atEnd());
// Generate.
- QStringList result;
- result.append(generateInitDef(dataTags));
- result.append(generateIsXXXDef("isValid", isValidList));
- result.append(generateIsXXXDef("isBool", isBoolList));
- result.append(generateIsXXXDef("isBoolean", isBooleanList));
- result.append(generateIsXXXDef("isNumber", isNumberList));
- result.append(generateIsXXXDef("isFunction", isFunctionList));
- result.append(generateIsXXXDef("isNull", isNullList));
- result.append(generateIsXXXDef("isString", isStringList));
- result.append(generateIsXXXDef("isUndefined", isUndefinedList));
- result.append(generateIsXXXDef("isVariant", isVariantList));
- result.append(generateIsXXXDef("isQObject", isQObjectList));
- result.append(generateIsXXXDef("isQMetaObject", isQMetaObjectList));
- result.append(generateIsXXXDef("isObject", isObjectList));
- result.append(generateIsXXXDef("isDate", isDateList));
- result.append(generateIsXXXDef("isRegExp", isRegExpList));
- result.append(generateIsXXXDef("isArray", isArrayList));
- result.append(generateIsXXXDef("isError", isErrorList));
-
- result.append(generateToXXXDef<QString>("toString", toStringList));
- result.append(generateToXXXDef<qsreal>("toNumber", toNumberList));
- result.append(generateToXXXDef<bool>("toBool", toBoolList));
- result.append(generateToXXXDef<bool>("toBoolean", toBooleanList));
- result.append(generateToXXXDef<qsreal>("toInteger", toIntegerList));
- result.append(generateToXXXDef<qint32>("toInt32", toInt32List));
- result.append(generateToXXXDef<quint32>("toUInt32", toUInt32List));
- result.append(generateToXXXDef<quint16>("toUInt16", toUInt16List));
-
- result.append(generateCompareDef("equals", equalsList));
- result.append(generateCompareDef("strictlyEquals", strictlyEqualsList));
- result.append(generateCompareDef("lessThan", lessThanList));
- result.append(generateCompareDef("instanceOf", instanceOfList));
-
- result.append(generateCastDef(castStringList));
- result.append(generateCastDef(castSRealList));
- result.append(generateCastDef(castBoolList));
- result.append(generateCastDef(castInt32List));
- result.append(generateCastDef(castUInt32List));
- result.append(generateCastDef(castUInt16List));
-
- return result.join("\n");
+ QHash<QString, QString> result;
+ QStringList tmp;
+ tmp.append(generateLicence());
+ tmp.append(generateInitDef(dataTags));
+ result.insert("init", tmp.join("\n"));
+ tmp.clear();
+
+ tmp.append(generateLicence());
+ tmp.append(generateIsXXXDef("isValid", isValidList));
+ tmp.append(generateIsXXXDef("isBool", isBoolList));
+ tmp.append(generateIsXXXDef("isBoolean", isBooleanList));
+ tmp.append(generateIsXXXDef("isNumber", isNumberList));
+ tmp.append(generateIsXXXDef("isFunction", isFunctionList));
+ tmp.append(generateIsXXXDef("isNull", isNullList));
+ tmp.append(generateIsXXXDef("isString", isStringList));
+ tmp.append(generateIsXXXDef("isUndefined", isUndefinedList));
+ tmp.append(generateIsXXXDef("isVariant", isVariantList));
+ tmp.append(generateIsXXXDef("isQObject", isQObjectList));
+ tmp.append(generateIsXXXDef("isQMetaObject", isQMetaObjectList));
+ tmp.append(generateIsXXXDef("isObject", isObjectList));
+ tmp.append(generateIsXXXDef("isDate", isDateList));
+ tmp.append(generateIsXXXDef("isRegExp", isRegExpList));
+ tmp.append(generateIsXXXDef("isArray", isArrayList));
+ tmp.append(generateIsXXXDef("isError", isErrorList));
+ result.insert("isXXX", tmp.join("\n"));
+ tmp.clear();
+
+ tmp.append(generateLicence());
+ tmp.append(generateToXXXDef<QString>("toString", toStringList));
+ tmp.append(generateToXXXDef<qsreal>("toNumber", toNumberList));
+ tmp.append(generateToXXXDef<bool>("toBool", toBoolList));
+ tmp.append(generateToXXXDef<bool>("toBoolean", toBooleanList));
+ tmp.append(generateToXXXDef<qsreal>("toInteger", toIntegerList));
+ tmp.append(generateToXXXDef<qint32>("toInt32", toInt32List));
+ tmp.append(generateToXXXDef<quint32>("toUInt32", toUInt32List));
+ tmp.append(generateToXXXDef<quint16>("toUInt16", toUInt16List));
+ result.insert("toXXX", tmp.join("\n"));
+ tmp.clear();
+
+ tmp.append(generateLicence());
+ tmp.append(generateCompareDef("equals", equalsList));
+ tmp.append(generateCompareDef("strictlyEquals", strictlyEqualsList));
+ tmp.append(generateCompareDef("lessThan", lessThanList));
+ tmp.append(generateCompareDef("instanceOf", instanceOfList));
+ result.insert("comparison", tmp.join("\n"));
+ tmp.clear();
+
+ tmp.append(generateLicence());
+ tmp.append(generateCastDef(castStringList));
+ tmp.append(generateCastDef(castSRealList));
+ tmp.append(generateCastDef(castBoolList));
+ tmp.append(generateCastDef(castInt32List));
+ tmp.append(generateCastDef(castUInt32List));
+ tmp.append(generateCastDef(castUInt16List));
+ result.insert("cast", tmp.join("\n"));
+
+ return result;
}