1
/*****************************************************************
2
* Unipro UGENE - Integrated Bioinformatics Suite
3
* Copyright (C) 2008 Unipro, Russia (http://ugene.unipro.ru)
6
* This source code is distributed under the terms of the
7
* GNU General Public License. See the files COPYING and LICENSE
9
*****************************************************************/
11
#include <QtScript/QScriptEngine>
12
#include <QtScript/QScriptContext>
13
#include <QtScript/QScriptValue>
14
#include <QtCore/QStringList>
15
#include <QtCore/QDebug>
16
#include <qmetaobject.h>
22
#include "qtscriptshell_QXmlReader.h"
24
static const char * const qtscript_QXmlReader_function_names[] = {
50
static const char * const qtscript_QXmlReader_function_signatures[] = {
63
, "QXmlInputSource input\nQXmlInputSource input"
65
, "QXmlContentHandler handler"
66
, "QXmlDTDHandler handler"
67
, "QXmlDeclHandler handler"
68
, "QXmlEntityResolver handler"
69
, "QXmlErrorHandler handler"
70
, "String name, bool value"
71
, "QXmlLexicalHandler handler"
72
, "String name, void value"
76
static QScriptValue qtscript_QXmlReader_throw_ambiguity_error_helper(
77
QScriptContext *context, const char *functionName, const char *signatures)
79
QStringList lines = QString::fromLatin1(signatures).split(QLatin1Char('\n'));
80
QStringList fullSignatures;
81
for (int i = 0; i < lines.size(); ++i)
82
fullSignatures.append(QString::fromLatin1("%0(%1)").arg(functionName).arg(lines.at(i)));
83
return context->throwError(QString::fromLatin1("QFile::%0(): could not find a function match; candidates are:\n%1")
84
.arg(functionName).arg(fullSignatures.join(QLatin1String("\n"))));
87
Q_DECLARE_METATYPE(QXmlReader*)
88
Q_DECLARE_METATYPE(QtScriptShell_QXmlReader*)
89
Q_DECLARE_METATYPE(QXmlDTDHandler*)
90
Q_DECLARE_METATYPE(QXmlContentHandler*)
91
Q_DECLARE_METATYPE(QXmlDeclHandler*)
92
Q_DECLARE_METATYPE(QXmlEntityResolver*)
93
Q_DECLARE_METATYPE(QXmlErrorHandler*)
94
Q_DECLARE_METATYPE(QXmlLexicalHandler*)
95
Q_DECLARE_METATYPE(QXmlInputSource)
96
Q_DECLARE_METATYPE(QXmlInputSource*)
102
static QScriptValue qtscript_QXmlReader_prototype_call(QScriptContext *context, QScriptEngine *)
104
#if QT_VERSION > 0x040400
105
Q_ASSERT(context->callee().isFunction());
106
uint _id = context->callee().data().toUInt32();
109
if (context->callee().isFunction())
110
_id = context->callee().data().toUInt32();
112
_id = 0xBABE0000 + 19;
114
Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
116
QXmlReader* _q_self = qscriptvalue_cast<QXmlReader*>(context->thisObject());
118
return context->throwError(QScriptContext::TypeError,
119
QString::fromLatin1("QXmlReader.%0(): this object is not a QXmlReader")
120
.arg(qtscript_QXmlReader_function_names[_id+1]));
125
if (context->argumentCount() == 0) {
126
QXmlDTDHandler* _q_result = _q_self->DTDHandler();
127
return qScriptValueFromValue(context->engine(), _q_result);
132
if (context->argumentCount() == 0) {
133
QXmlContentHandler* _q_result = _q_self->contentHandler();
134
return qScriptValueFromValue(context->engine(), _q_result);
139
if (context->argumentCount() == 0) {
140
QXmlDeclHandler* _q_result = _q_self->declHandler();
141
return qScriptValueFromValue(context->engine(), _q_result);
146
if (context->argumentCount() == 0) {
147
QXmlEntityResolver* _q_result = _q_self->entityResolver();
148
return qScriptValueFromValue(context->engine(), _q_result);
153
if (context->argumentCount() == 0) {
154
QXmlErrorHandler* _q_result = _q_self->errorHandler();
155
return qScriptValueFromValue(context->engine(), _q_result);
160
if (context->argumentCount() == 1) {
161
QString _q_arg0 = context->argument(0).toString();
162
bool _q_result = _q_self->feature(_q_arg0);
163
return QScriptValue(context->engine(), _q_result);
168
if (context->argumentCount() == 1) {
169
QString _q_arg0 = context->argument(0).toString();
170
bool _q_result = _q_self->hasFeature(_q_arg0);
171
return QScriptValue(context->engine(), _q_result);
176
if (context->argumentCount() == 1) {
177
QString _q_arg0 = context->argument(0).toString();
178
bool _q_result = _q_self->hasProperty(_q_arg0);
179
return QScriptValue(context->engine(), _q_result);
184
if (context->argumentCount() == 0) {
185
QXmlLexicalHandler* _q_result = _q_self->lexicalHandler();
186
return qScriptValueFromValue(context->engine(), _q_result);
191
if (context->argumentCount() == 1) {
192
if ((qMetaTypeId<QXmlInputSource>() == context->argument(0).toVariant().userType())) {
193
QXmlInputSource _q_arg0 = qscriptvalue_cast<QXmlInputSource>(context->argument(0));
194
bool _q_result = _q_self->parse(_q_arg0);
195
return QScriptValue(context->engine(), _q_result);
196
} else if (qscriptvalue_cast<QXmlInputSource*>(context->argument(0))) {
197
QXmlInputSource* _q_arg0 = qscriptvalue_cast<QXmlInputSource*>(context->argument(0));
198
bool _q_result = _q_self->parse(_q_arg0);
199
return QScriptValue(context->engine(), _q_result);
205
if (context->argumentCount() == 1) {
206
QString _q_arg0 = context->argument(0).toString();
207
void* _q_result = _q_self->property(_q_arg0);
208
return qScriptValueFromValue(context->engine(), _q_result);
213
if (context->argumentCount() == 1) {
214
QXmlContentHandler* _q_arg0 = qscriptvalue_cast<QXmlContentHandler*>(context->argument(0));
215
_q_self->setContentHandler(_q_arg0);
216
return context->engine()->undefinedValue();
221
if (context->argumentCount() == 1) {
222
QXmlDTDHandler* _q_arg0 = qscriptvalue_cast<QXmlDTDHandler*>(context->argument(0));
223
_q_self->setDTDHandler(_q_arg0);
224
return context->engine()->undefinedValue();
229
if (context->argumentCount() == 1) {
230
QXmlDeclHandler* _q_arg0 = qscriptvalue_cast<QXmlDeclHandler*>(context->argument(0));
231
_q_self->setDeclHandler(_q_arg0);
232
return context->engine()->undefinedValue();
237
if (context->argumentCount() == 1) {
238
QXmlEntityResolver* _q_arg0 = qscriptvalue_cast<QXmlEntityResolver*>(context->argument(0));
239
_q_self->setEntityResolver(_q_arg0);
240
return context->engine()->undefinedValue();
245
if (context->argumentCount() == 1) {
246
QXmlErrorHandler* _q_arg0 = qscriptvalue_cast<QXmlErrorHandler*>(context->argument(0));
247
_q_self->setErrorHandler(_q_arg0);
248
return context->engine()->undefinedValue();
253
if (context->argumentCount() == 2) {
254
QString _q_arg0 = context->argument(0).toString();
255
bool _q_arg1 = context->argument(1).toBoolean();
256
_q_self->setFeature(_q_arg0, _q_arg1);
257
return context->engine()->undefinedValue();
262
if (context->argumentCount() == 1) {
263
QXmlLexicalHandler* _q_arg0 = qscriptvalue_cast<QXmlLexicalHandler*>(context->argument(0));
264
_q_self->setLexicalHandler(_q_arg0);
265
return context->engine()->undefinedValue();
270
if (context->argumentCount() == 2) {
271
QString _q_arg0 = context->argument(0).toString();
272
void* _q_arg1 = qscriptvalue_cast<void*>(context->argument(1));
273
_q_self->setProperty(_q_arg0, _q_arg1);
274
return context->engine()->undefinedValue();
279
QString result = QString::fromLatin1("QXmlReader");
280
return QScriptValue(context->engine(), result);
286
return qtscript_QXmlReader_throw_ambiguity_error_helper(context,
287
qtscript_QXmlReader_function_names[_id+1],
288
qtscript_QXmlReader_function_signatures[_id+1]);
291
static QScriptValue qtscript_QXmlReader_static_call(QScriptContext *context, QScriptEngine *)
293
uint _id = context->callee().data().toUInt32();
294
Q_ASSERT((_id & 0xFFFF0000) == 0xBABE0000);
298
if (context->thisObject().strictlyEquals(context->engine()->globalObject())) {
299
return context->throwError(QString::fromLatin1("QXmlReader(): Did you forget to construct with 'new'?"));
301
if (context->argumentCount() == 0) {
302
QtScriptShell_QXmlReader* _q_cpp_result = new QtScriptShell_QXmlReader();
303
QScriptValue _q_result = context->engine()->newVariant(context->thisObject(), qVariantFromValue((QXmlReader*)_q_cpp_result));
304
_q_cpp_result->__qtscript_self = _q_result;
312
return qtscript_QXmlReader_throw_ambiguity_error_helper(context,
313
qtscript_QXmlReader_function_names[_id],
314
qtscript_QXmlReader_function_signatures[_id]);
317
QScriptValue qtscript_create_QXmlReader_class(QScriptEngine *engine)
319
static const int function_lengths[] = {
344
engine->setDefaultPrototype(qMetaTypeId<QXmlReader*>(), QScriptValue());
345
QScriptValue proto = engine->newVariant(qVariantFromValue((QXmlReader*)0));
346
for (int i = 0; i < 20; ++i) {
347
QScriptValue fun = engine->newFunction(qtscript_QXmlReader_prototype_call, function_lengths[i+1]);
348
fun.setData(QScriptValue(engine, uint(0xBABE0000 + i)));
349
proto.setProperty(QString::fromLatin1(qtscript_QXmlReader_function_names[i+1]),
350
fun, QScriptValue::SkipInEnumeration);
353
engine->setDefaultPrototype(qMetaTypeId<QXmlReader*>(), proto);
355
QScriptValue ctor = engine->newFunction(qtscript_QXmlReader_static_call, proto, function_lengths[0]);
356
ctor.setData(QScriptValue(engine, uint(0xBABE0000 + 0)));