KJsEmbed

dom.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 2005, 2006 Ian Reinhart Geiser <[email protected]>
3  Copyright (C) 2005, 2006 Matt Broadstone <[email protected]>
4  Copyright (C) 2005, 2006 Richard J. Moore <[email protected]>
5  Copyright (C) 2005, 2006 Erik L. Bunce <[email protected]>
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Library General Public License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to
19  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  Boston, MA 02110-1301, USA.
21 */
22 #include "dom.h"
23 
24 #include <QDomAttr>
25 #include <QDebug>
26 
27 using namespace KJSEmbed;
28 
29 const KJS::ClassInfo DomNodeBinding::info = { "QDomNode", &ValueBinding::info, nullptr, nullptr };
30 DomNodeBinding::DomNodeBinding(KJS::ExecState *exec, const QDomNode &value)
31  : ValueBinding(exec, "QDomNode", value)
32 {
33  StaticBinding::publish(exec, this, DomNode::methods());
34 }
35 
36 namespace DomNodeNS
37 {
38 START_VALUE_METHOD(nodeType, QDomNode)
39 result = KJS::jsNumber((int)value.nodeType());
40 END_VALUE_METHOD
41 
42 START_VALUE_METHOD(nodeName, QDomNode)
43 result = KJS::jsString(value.nodeName());
44 END_VALUE_METHOD
45 
46 START_VALUE_METHOD(nodeValue, QDomNode)
47 result = KJS::jsString(value.nodeValue());
48 END_VALUE_METHOD
49 
50 START_VALUE_METHOD(appendChild, QDomNode)
51 QDomNode newNode = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
52 QDomNode node = value.appendChild(newNode);
53 result = KJSEmbed::createValue(exec, "QDomNode", node);
54 END_VALUE_METHOD
55 
56 START_VALUE_METHOD(attributes, QDomNode)
57 QDomNamedNodeMap map = value.attributes();
58 result = KJSEmbed::createValue(exec, "QDomNamedNodeMap", map);
59 END_VALUE_METHOD
60 
61 START_VALUE_METHOD(childNodes, QDomNode)
62 QDomNodeList nodes = value.childNodes();
63 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
64 END_VALUE_METHOD
65 
66 START_VALUE_METHOD(clear, QDomNode)
67 value.clear();
68 END_VALUE_METHOD
69 
70 START_VALUE_METHOD(cloneNode, QDomNode)
71 bool deep = KJSEmbed::extractBool(exec, args, 0, true);
72 QDomNode node = value.cloneNode(deep);
73 result = KJSEmbed::createValue(exec, "QDomNode", node);
74 END_VALUE_METHOD
75 
76 START_VALUE_METHOD(firstChild, QDomNode)
77 QDomNode node = value.firstChild();
78 result = KJSEmbed::createValue(exec, "QDomNode", node);
79 END_VALUE_METHOD
80 
81 START_VALUE_METHOD(firstChildElement, QDomNode)
82 QString name = KJSEmbed::extractQString(exec, args, 0);
83 QDomElement node = value.firstChildElement(name);
84 result = KJSEmbed::createValue(exec, "QDomElement", node);
85 END_VALUE_METHOD
86 
87 START_VALUE_METHOD(hasAttributes, QDomNode)
88 result = KJS::jsBoolean(value.hasAttributes());
89 END_VALUE_METHOD
90 
91 START_VALUE_METHOD(hasChildNodes, QDomNode)
92 result = KJS::jsBoolean(value.hasChildNodes());
93 END_VALUE_METHOD
94 
95 START_VALUE_METHOD(insertBefore, QDomNode)
96 QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
97 QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
98 QDomNode node = value.insertBefore(first, second);
99 result = KJSEmbed::createValue(exec, "QDomNode", node);
100 END_VALUE_METHOD
101 
102 START_VALUE_METHOD(insertAfter, QDomNode)
103 QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
104 QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
105 QDomNode node = value.insertAfter(first, second);
106 result = KJSEmbed::createValue(exec, "QDomNode", node);
107 END_VALUE_METHOD
108 
109 START_VALUE_METHOD(isAttr, QDomNode)
110 result = KJS::jsBoolean(value.isAttr());
111 END_VALUE_METHOD
112 
113 START_VALUE_METHOD(isCDATASection, QDomNode)
114 result = KJS::jsBoolean(value.isCDATASection());
115 END_VALUE_METHOD
116 
117 START_VALUE_METHOD(isCharacterData, QDomNode)
118 result = KJS::jsBoolean(value.isCharacterData());
119 END_VALUE_METHOD
120 
121 START_VALUE_METHOD(isComment, QDomNode)
122 result = KJS::jsBoolean(value.isComment());
123 END_VALUE_METHOD
124 
125 START_VALUE_METHOD(isDocument, QDomNode)
126 result = KJS::jsBoolean(value.isDocument());
127 END_VALUE_METHOD
128 
129 START_VALUE_METHOD(isDocumentFragment, QDomNode)
130 result = KJS::jsBoolean(value.isDocumentFragment());
131 END_VALUE_METHOD
132 
133 START_VALUE_METHOD(isDocumentType, QDomNode)
134 result = KJS::jsBoolean(value.isDocumentType());
135 END_VALUE_METHOD
136 
137 START_VALUE_METHOD(isElement, QDomNode)
138 result = KJS::jsBoolean(value.isElement());
139 END_VALUE_METHOD
140 
141 START_VALUE_METHOD(isEntity, QDomNode)
142 result = KJS::jsBoolean(value.isEntity());
143 END_VALUE_METHOD
144 
145 START_VALUE_METHOD(isEntityReference, QDomNode)
146 result = KJS::jsBoolean(value.isEntityReference());
147 END_VALUE_METHOD
148 
149 START_VALUE_METHOD(isNotation, QDomNode)
150 result = KJS::jsBoolean(value.isNotation());
151 END_VALUE_METHOD
152 
153 START_VALUE_METHOD(isNull, QDomNode)
154 result = KJS::jsBoolean(value.isNull());
155 END_VALUE_METHOD
156 
157 START_VALUE_METHOD(isProcessingInstruction, QDomNode)
158 result = KJS::jsBoolean(value.isProcessingInstruction());
159 END_VALUE_METHOD
160 
161 START_VALUE_METHOD(isSupported, QDomNode)
162 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
163 QString arg1 = KJSEmbed::extractQString(exec, args, 1);
164 result = KJS::jsBoolean(value.isSupported(arg0, arg1));
165 END_VALUE_METHOD
166 
167 START_VALUE_METHOD(isText, QDomNode)
168 result = KJS::jsBoolean(value.isText());
169 END_VALUE_METHOD
170 
171 START_VALUE_METHOD(lastChild, QDomNode)
172 QDomNode node = value.lastChild();
173 result = KJSEmbed::createValue(exec, "QDomNode", node);
174 END_VALUE_METHOD
175 
176 START_VALUE_METHOD(lastChildElement, QDomNode)
177 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
178 QDomElement node = value.lastChildElement(arg0);
179 result = KJSEmbed::createValue(exec, "QDomElement", node);
180 END_VALUE_METHOD
181 
182 START_VALUE_METHOD(localName, QDomNode)
183 result = KJS::jsString(value.localName());
184 END_VALUE_METHOD
185 
186 START_VALUE_METHOD(namedItem, QDomNode)
187 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
188 QDomNode node = value.namedItem(arg0);
189 result = KJSEmbed::createValue(exec, "QDomNode", node);
190 END_VALUE_METHOD
191 
192 START_VALUE_METHOD(namespaceURI, QDomNode)
193 result = KJS::jsString(value.namespaceURI());
194 END_VALUE_METHOD
195 
196 START_VALUE_METHOD(nextSibling, QDomNode)
197 QDomNode node = value.nextSibling();
198 result = KJSEmbed::createValue(exec, "QDomNode", node);
199 END_VALUE_METHOD
200 
201 START_VALUE_METHOD(nextSiblingElement, QDomNode)
202 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
203 QDomElement node = value.nextSiblingElement(arg0);
204 result = KJSEmbed::createValue(exec, "QDomElement", node);
205 END_VALUE_METHOD
206 
207 START_VALUE_METHOD(normalize, QDomNode)
208 value.normalize();
209 END_VALUE_METHOD
210 
211 START_VALUE_METHOD(ownerDocument, QDomNode)
212 QDomDocument doc = value.ownerDocument();
213 result = KJSEmbed::createValue(exec, "QDomDocument", doc);
214 END_VALUE_METHOD
215 
216 START_VALUE_METHOD(parentNode, QDomNode)
217 QDomNode parent = value.parentNode();
218 result = KJSEmbed::createValue(exec, "QDomNode", parent);
219 END_VALUE_METHOD
220 
221 START_VALUE_METHOD(prefix, QDomNode)
222 result = KJS::jsString(value.prefix());
223 END_VALUE_METHOD
224 
225 START_VALUE_METHOD(previousSibling, QDomNode)
226 QDomNode node = value.previousSibling();
227 result = KJSEmbed::createValue(exec, "QDomNode", node);
228 END_VALUE_METHOD
229 
230 START_VALUE_METHOD(previousSiblingElement, QDomNode)
231 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
232 QDomNode node = value.previousSiblingElement(arg0);
233 result = KJSEmbed::createValue(exec, "QDomNode", node);
234 END_VALUE_METHOD
235 
236 START_VALUE_METHOD(removeChild, QDomNode)
237 QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
238 QDomNode node = value.removeChild(arg0);
239 result = KJSEmbed::createValue(exec, "QDomNode", node);
240 END_VALUE_METHOD
241 
242 START_VALUE_METHOD(replaceChild, QDomNode)
243 QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
244 QDomNode arg1 = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
245 QDomNode node = value.replaceChild(arg0, arg1);
246 result = KJSEmbed::createValue(exec, "QDomNode", node);
247 END_VALUE_METHOD
248 
249 START_VALUE_METHOD(setPrefix, QDomNode)
250 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
251 value.setPrefix(arg0);
252 END_VALUE_METHOD
253 
254 START_VALUE_METHOD(setNodeValue, QDomNode)
255 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
256 value.setNodeValue(arg0);
257 END_VALUE_METHOD
258 
259 START_VALUE_METHOD(toAttr, QDomNode)
260 QDomAttr attr = value.toAttr();
261 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
262 END_VALUE_METHOD
263 
264 START_VALUE_METHOD(toElement, QDomNode)
265 QDomElement elem = value.toElement();
266 result = KJSEmbed::createValue(exec, "QDomElement", elem);
267 END_VALUE_METHOD
268 }
269 
270 START_METHOD_LUT(DomNode)
271 {"appendChild", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::appendChild},
272 {"attributes", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::attributes},
273 {"childNodes", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::childNodes},
274 {"clear", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::clear},
275 {"cloneNode", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::cloneNode},
276 {"firstChild", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::firstChild},
277 {"firstChildElement", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::firstChildElement},
278 {"hasAttributes", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::hasAttributes},
279 {"hasChildNodes", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::hasChildNodes},
280 {"insertBefore", 2, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::insertBefore},
281 {"insertAfter", 2, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::insertAfter},
282 {"isAttr", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isAttr},
283 {"isCDATASection", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isCDATASection},
284 {"isCharacterData", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isCharacterData},
285 {"isComment", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isComment},
286 {"isDocument", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isDocument},
287 {"isDocumentFragment", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isDocumentFragment},
288 {"isDocumentType", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isDocumentType},
289 {"isElement", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isElement},
290 {"isEntity", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isEntity},
291 {"isEntityReference", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isEntityReference},
292 {"isNotation", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isNotation},
293 {"isNull", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isNull},
294 {"isProcessingInstruction", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isProcessingInstruction},
295 {"isSupported", 2, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isSupported},
296 {"isText", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::isText},
297 {"lastChild", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::lastChild},
298 {"lastChildElement", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::lastChildElement},
299 {"localName", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::localName},
300 {"namedItem", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::namedItem},
301 {"namespaceURI", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::namespaceURI},
302 {"nextSibling", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::nextSibling},
303 {"nextSiblingElement", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::nextSiblingElement},
304 {"nodeType", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::nodeType},
305 {"nodeName", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::nodeName},
306 {"nodeValue", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::nodeValue},
307 {"normalize", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::normalize},
308 {"ownerDocument", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::ownerDocument},
309 {"parentNode", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::parentNode},
310 {"prefix", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::prefix},
311 {"previousSibling", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::previousSibling},
312 {"previousSiblingElement", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::previousSiblingElement},
313 {"removeChild", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::removeChild},
314 {"replaceChild", 2, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::replaceChild},
315 {"setPrefix", 1, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::setPrefix},
316 {"setNodeValue", 2, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::setNodeValue},
317 {"toAttr", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::toAttr},
318 {"toElement", 0, KJS::DontDelete | KJS::ReadOnly, &DomNodeNS::toElement}
319 END_METHOD_LUT
320 
321 START_ENUM_LUT(DomNode)
322 {"ElementNode", QDomNode::ElementNode},
323 {"AttributeNode", QDomNode::AttributeNode},
324 {"TextNode", QDomNode::TextNode},
325 {"CDATASectionNode", QDomNode::CDATASectionNode},
326 {"EntityReferenceNode", QDomNode::EntityReferenceNode},
327 {"EntityNode", QDomNode::EntityNode},
328 {"ProcessingInstructionNode", QDomNode::ProcessingInstructionNode},
329 {"CommentNode", QDomNode::CommentNode},
330 {"DocumentNode", QDomNode::DocumentNode},
331 {"DocumentTypeNode", QDomNode::DocumentTypeNode},
332 {"DocumentFragmentNode", QDomNode::DocumentFragmentNode},
333 {"NotationNode", QDomNode::NotationNode},
334 {"BaseNode", QDomNode::BaseNode},
335 {"CharacterDataNode", QDomNode::CharacterDataNode}
336 END_ENUM_LUT
337 
338 NO_STATICS(DomNode)
339 
340 START_CTOR(DomNode, QDomNode, 0)
341 return new KJSEmbed::DomNodeBinding(exec, QDomNode());
342 END_CTOR
343 
344 const KJS::ClassInfo DomDocumentBinding::info = { "QDomDocument", &ValueBinding::info, nullptr, nullptr };
345 DomDocumentBinding::DomDocumentBinding(KJS::ExecState *exec, const QDomDocument &value)
346  : ValueBinding(exec, "QDomDocument", value)
347 {
348  StaticBinding::publish(exec, this, DomNode::methods());
349  StaticBinding::publish(exec, this, DomDocument::methods());
350 }
351 
352 namespace DomDocumentNS
353 {
354 QString parserErrorTemplate = "XML Parse error '%1' at %2,%3";
355 
356 START_VALUE_METHOD(setContent, QDomDocument)
357 QString xml = KJSEmbed::extractQString(exec, args, 0);
359 int row = 0;
360 int col = 0;
361 bool success = value.setContent(xml, &message, &row, &col);
362 result = KJS::jsBoolean(success);
363 if (!success)
364 {
365  KJS::throwError(exec, KJS::SyntaxError, parserErrorTemplate.arg(message).arg(row).arg(col));
366 }
367 END_VALUE_METHOD
368 
369 START_VALUE_METHOD(toString, QDomDocument)
370 int indent = KJSEmbed::extractInt(exec, args, 0, 1);
371 result = KJS::jsString(value.toString(indent));
372 END_VALUE_METHOD
373 
374 START_VALUE_METHOD(documentElement, QDomDocument)
375 QDomElement elem = value.documentElement();
376 result = KJSEmbed::createValue(exec, "QDomElement", elem);
377 END_VALUE_METHOD
378 
379 START_VALUE_METHOD(elementById, QDomDocument)
380 QString id = KJSEmbed::extractQString(exec, args, 0);
381 QDomElement elem = value.elementById(id);
382 result = KJSEmbed::createValue(exec, "QDomElement", elem);
383 END_VALUE_METHOD
384 
385 START_VALUE_METHOD(createAttribute, QDomDocument)
386 QString name = KJSEmbed::extractQString(exec, args, 0);
387 QDomAttr attr = value.createAttribute(name);
388 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
389 END_VALUE_METHOD
390 
391 START_VALUE_METHOD(createAttributeNS, QDomDocument)
392 QString nsURI = KJSEmbed::extractQString(exec, args, 0);
393 QString qName = KJSEmbed::extractQString(exec, args, 1);
394 QDomAttr attr = value.createAttributeNS(nsURI, qName);
395 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
396 END_VALUE_METHOD
397 
398 START_VALUE_METHOD(createCDATASection, QDomDocument)
399 QString cdatatxt = KJSEmbed::extractQString(exec, args, 0);
400 QDomCDATASection cdata = value.createCDATASection(cdatatxt);
401 result = KJSEmbed::createValue(exec, "QDomCDATASection", cdata);
402 END_VALUE_METHOD
403 
404 START_VALUE_METHOD(createComment, QDomDocument)
405 QString commenttxt = KJSEmbed::extractQString(exec, args, 0);
406 QDomComment comment = value.createComment(commenttxt);
407 result = KJSEmbed::createValue(exec, "QDomComment", comment);
408 END_VALUE_METHOD
409 
410 START_VALUE_METHOD(createDocumentFragment, QDomDocument)
411 QDomDocumentFragment fragment = value.createDocumentFragment();
412 result = KJSEmbed::createValue(exec, "QDomDocumentFragment", fragment);
413 END_VALUE_METHOD
414 
415 START_VALUE_METHOD(createElement, QDomDocument)
416 QString tagName = KJSEmbed::extractQString(exec, args, 0);
417 QDomElement elem = value.createElement(tagName);
418 result = KJSEmbed::createValue(exec, "QDomElement", elem);
419 END_VALUE_METHOD
420 
421 START_VALUE_METHOD(createElementNS, QDomDocument)
422 QString nsURI = KJSEmbed::extractQString(exec, args, 0);
423 QString qName = KJSEmbed::extractQString(exec, args, 1);
424 QDomElement elem = value.createElementNS(nsURI, qName);
425 result = KJSEmbed::createValue(exec, "QDomElement", elem);
426 END_VALUE_METHOD
427 
428 START_VALUE_METHOD(createEntityReference, QDomDocument)
429 QString name = KJSEmbed::extractQString(exec, args, 0);
430 QDomEntityReference ref = value.createEntityReference(name);
431 result = KJSEmbed::createValue(exec, "QDomEntityReference", ref);
432 END_VALUE_METHOD
433 
434 START_VALUE_METHOD(createProcessingInstruction, QDomDocument)
435 QString target = KJSEmbed::extractQString(exec, args, 0);
436 QString data = KJSEmbed::extractQString(exec, args, 1);
437 QDomProcessingInstruction inst = value.createProcessingInstruction(target, data);
438 result = KJSEmbed::createValue(exec, "QDomProcessingInstruction", inst);
439 END_VALUE_METHOD
440 
441 START_VALUE_METHOD(createTextNode, QDomDocument)
442 QString texttext = KJSEmbed::extractQString(exec, args, 0);
443 QDomText text = value.createTextNode(texttext);
444 result = KJSEmbed::createValue(exec, "QDomText", text);
445 END_VALUE_METHOD
446 
447 START_VALUE_METHOD(importNode, QDomDocument)
448 QDomNode import = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
449 bool deep = KJSEmbed::extractBool(exec, args, 1);
450 QDomNode node = value.importNode(import, deep);
451 result = KJSEmbed::createValue(exec, "QDomNode", node);
452 END_VALUE_METHOD
453 
454 }
455 
456 START_METHOD_LUT(DomDocument)
457 {"setContent", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::setContent},
458 {"toString", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::toString},
459 {"documentElement", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::documentElement},
460 {"elementById", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::elementById},
461 {"createAttribute", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createAttribute },
462 {"createAttributeNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createAttributeNS },
463 {"createCDATASection", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createCDATASection},
464 {"createComment", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createComment},
465 {"createDocumentFragment", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createDocumentFragment},
466 {"createElement", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createElement},
467 {"createElementNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createElementNS},
468 {"createEntityReference", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createEntityReference},
469 {"createProcessingInstruction", 2, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createProcessingInstruction},
470 {"createTextNode", 1, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::createTextNode},
471 {"importNode", 2, KJS::DontDelete | KJS::ReadOnly, &DomDocumentNS::importNode}
472 END_METHOD_LUT
473 
474 NO_ENUMS(DomDocument)
475 NO_STATICS(DomDocument)
476 
477 START_CTOR(DomDocument, QDomDocument, 1)
478 QString name = KJSEmbed::extractQString(exec, args, 0);
479 return new KJSEmbed::DomDocumentBinding(exec, QDomDocument(name));
480 END_CTOR
481 
482 const KJS::ClassInfo DomElementBinding::info = { "QDomElement", &ValueBinding::info, nullptr, nullptr };
483 DomElementBinding::DomElementBinding(KJS::ExecState *exec, const QDomElement &value)
484  : ValueBinding(exec, "QDomElement", value)
485 {
486  StaticBinding::publish(exec, this, DomNode::methods());
487  StaticBinding::publish(exec, this, DomElement::methods());
488 }
489 
490 namespace DomElementNS
491 {
492 START_VALUE_METHOD(toString, QDomElement)
493 result = KJS::jsString(value.text());
494 END_VALUE_METHOD
495 
496 START_VALUE_METHOD(tagName, QDomElement)
497 result = KJS::jsString(value.tagName());
498 END_VALUE_METHOD
499 
500 START_VALUE_METHOD(setTagName, QDomElement)
501 QString tag = KJSEmbed::extractQString(exec, args, 0);
502 value.setTagName(tag);
503 END_VALUE_METHOD
504 
505 START_VALUE_METHOD(attribute, QDomElement)
506 QString tag = KJSEmbed::extractQString(exec, args, 0);
507 QString defaultValue = KJSEmbed::extractQString(exec, args, 1, QString());
508 result = KJS::jsString(value.attribute(tag, defaultValue));
509 END_VALUE_METHOD
510 
511 START_VALUE_METHOD(setAttribute, QDomElement)
512 QString tag = KJSEmbed::extractQString(exec, args, 0);
513 QString newValue = KJSEmbed::extractQString(exec, args, 1);
514 value.setAttribute(tag, newValue);
515 END_VALUE_METHOD
516 
517 START_VALUE_METHOD(hasAttribute, QDomElement)
518 QString attr = KJSEmbed::extractQString(exec, args, 0);
519 result = KJS::jsBoolean(value.hasAttribute(attr));
520 END_VALUE_METHOD
521 
522 START_VALUE_METHOD(removeAttribute, QDomElement)
523 QString attr = KJSEmbed::extractQString(exec, args, 0);
524 value.removeAttribute(attr);
525 END_VALUE_METHOD
526 
527 START_VALUE_METHOD(setAttributeNS, QDomElement)
528 QString ns = KJSEmbed::extractQString(exec, args, 0);
529 QString attr = KJSEmbed::extractQString(exec, args, 1);
530 QString val = KJSEmbed::extractQString(exec, args, 3);
531 value.setAttributeNS(ns, attr, val);
532 END_VALUE_METHOD
533 
534 START_VALUE_METHOD(attributeNS, QDomElement)
535 QString nsURI = KJSEmbed::extractQString(exec, args, 0);
536 QString localName = KJSEmbed::extractQString(exec, args, 1);
537 QString defValue = KJSEmbed::extractQString(exec, args, 1, QString());
538 result = KJS::jsString(value.attributeNS(nsURI, localName, defValue));
539 END_VALUE_METHOD
540 
541 START_VALUE_METHOD(hasAttributeNS, QDomElement)
542 QString ns = KJSEmbed::extractQString(exec, args, 0);
543 QString attr = KJSEmbed::extractQString(exec, args, 1);
544 result = KJS::jsBoolean(value.hasAttributeNS(ns, attr));
545 END_VALUE_METHOD
546 
547 START_VALUE_METHOD(removeAttributeNS, QDomElement)
548 QString ns = KJSEmbed::extractQString(exec, args, 0);
549 QString attr = KJSEmbed::extractQString(exec, args, 1);
550 value.removeAttributeNS(ns, attr);
551 END_VALUE_METHOD
552 
553 START_VALUE_METHOD(elementsByTagName, QDomElement)
554 QString name = KJSEmbed::extractQString(exec, args, 0);
555 QDomNodeList nodes = value.elementsByTagName(name);
556 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
557 END_VALUE_METHOD
558 
559 START_VALUE_METHOD(elementsByTagNameNS, QDomElement)
560 QString ns = KJSEmbed::extractQString(exec, args, 0);
561 QString name = KJSEmbed::extractQString(exec, args, 1);
562 QDomNodeList nodes = value.elementsByTagNameNS(ns, name);
563 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
564 END_VALUE_METHOD
565 
566 START_VALUE_METHOD(attributeNode, QDomElement)
567 QString name = KJSEmbed::extractQString(exec, args, 0);
568 QDomAttr attr = value.attributeNode(name);
569 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
570 END_VALUE_METHOD
571 
572 START_VALUE_METHOD(attributeNodeNS, QDomElement)
573 QString ns = KJSEmbed::extractQString(exec, args, 0);
574 QString name = KJSEmbed::extractQString(exec, args, 1);
575 QDomAttr attr = value.attributeNodeNS(ns, name);
576 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
577 END_VALUE_METHOD
578 
579 START_VALUE_METHOD(removeAttributeNode, QDomElement)
580 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>(exec, args, 0);
581 QDomAttr newAttr = value.removeAttributeNode(attr);
582 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
583 END_VALUE_METHOD
584 
585 START_VALUE_METHOD(setAttributeNode, QDomElement)
586 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>(exec, args, 0);
587 QDomAttr newAttr = value.setAttributeNode(attr);
588 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
589 END_VALUE_METHOD
590 
591 START_VALUE_METHOD(setAttributeNodeNS, QDomElement)
592 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>(exec, args, 0);
593 QDomAttr newAttr = value.setAttributeNodeNS(attr);
594 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
595 END_VALUE_METHOD
596 }
597 
598 NO_ENUMS(DomElement)
599 NO_STATICS(DomElement)
600 
601 START_METHOD_LUT(DomElement)
602 {"toString", 0, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::toString},
603 {"text", 0, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::toString},
604 {"tagName", 0, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::tagName},
605 {"setTagName", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::setTagName},
606 {"setAttribute", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::setAttribute},
607 {"attribute", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::attribute},
608 {"hasAttribute", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::hasAttribute},
609 {"removeAttribute", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::removeAttribute},
610 {"setAttributeNS", 3, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::setAttributeNS},
611 {"attributeNS", 3, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::attributeNS},
612 {"hasAttributeNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::hasAttributeNS},
613 {"removeAttributeNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::removeAttributeNS},
614 {"elementsByTagName", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::elementsByTagName},
615 {"elementsByTagNameNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::elementsByTagNameNS},
616 {"attributeNode", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::attributeNode},
617 {"attributeNodeNS", 2, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::attributeNodeNS},
618 {"removeAttributeNode", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::removeAttributeNode},
619 {"setAttributeNode", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::setAttributeNode},
620 {"setAttributeNodeNS", 1, KJS::DontDelete | KJS::ReadOnly, &DomElementNS::setAttributeNodeNS}
621 END_METHOD_LUT
622 
623 START_CTOR(DomElement, QDomElement, 0)
624 return new KJSEmbed::DomElementBinding(exec, QDomElement());
625 END_CTOR
626 
627 const KJS::ClassInfo DomAttrBinding::info = { "QDomAttr", &ValueBinding::info, nullptr, nullptr };
628 DomAttrBinding::DomAttrBinding(KJS::ExecState *exec, const QDomAttr &value)
629  : ValueBinding(exec, "QDomAttr", value)
630 {
631  StaticBinding::publish(exec, this, DomNode::methods());
632  StaticBinding::publish(exec, this, DomAttr::methods());
633 }
634 
635 namespace AttrElementNS
636 {
637 START_VALUE_METHOD(name, QDomAttr)
638 result = KJS::jsString(value.value());
639 END_VALUE_METHOD
640 
641 START_VALUE_METHOD(specified, QDomAttr)
642 result = KJS::jsBoolean(value.specified());
643 END_VALUE_METHOD
644 
645 START_VALUE_METHOD(ownerElement, QDomAttr)
646 QDomElement owner = value.ownerElement();
647 result = KJSEmbed::createValue(exec, "QDomElement", owner);
648 END_VALUE_METHOD
649 
650 START_VALUE_METHOD(value, QDomAttr)
651 result = KJS::jsString(value.value());
652 END_VALUE_METHOD
653 
654 START_VALUE_METHOD(setValue, QDomAttr)
655 QString newValue = KJSEmbed::extractQString(exec, args, 0);
656 value.setValue(newValue);
657 END_VALUE_METHOD
658 
659 }
660 
661 NO_ENUMS(DomAttr)
662 NO_STATICS(DomAttr)
663 
664 START_METHOD_LUT(DomAttr)
665 {"name", 0, KJS::DontDelete | KJS::ReadOnly, &AttrElementNS::name},
666 {"specified", 0, KJS::DontDelete | KJS::ReadOnly, &AttrElementNS::specified},
667 {"ownerElement", 0, KJS::DontDelete | KJS::ReadOnly, &AttrElementNS::ownerElement},
668 {"value", 0, KJS::DontDelete | KJS::ReadOnly, &AttrElementNS::value},
669 {"setValue", 1, KJS::DontDelete | KJS::ReadOnly, &AttrElementNS::setValue}
670 END_METHOD_LUT
671 
672 START_CTOR(DomAttr, QDomAttr, 0)
673 return new KJSEmbed::DomAttrBinding(exec, QDomAttr());
674 END_CTOR
675 
676 const KJS::ClassInfo DomNodeListBinding::info = { "QDomNodeList", &ValueBinding::info, nullptr, nullptr };
677 DomNodeListBinding::DomNodeListBinding(KJS::ExecState *exec, const QDomNodeList &value)
678  : ValueBinding(exec, "QDomNodeList", value)
679 {
680  StaticBinding::publish(exec, this, DomNodeList::methods());
681 }
682 
683 namespace NodeListNS
684 {
685 START_VALUE_METHOD(count, QDomNodeList)
686 result = KJS::jsNumber(value.count());
687 END_VALUE_METHOD
688 
689 START_VALUE_METHOD(length, QDomNodeList)
690 result = KJS::jsNumber(value.length());
691 END_VALUE_METHOD
692 
693 START_VALUE_METHOD(item, QDomNodeList)
694 int idx = KJSEmbed::extractInt(exec, args, 0);
695 QDomNode node = value.item(idx);
696 result = KJSEmbed::createValue(exec, "QDomNode", node);
697 END_VALUE_METHOD
698 
699 }
700 
701 NO_ENUMS(DomNodeList)
702 NO_STATICS(DomNodeList)
703 
704 START_METHOD_LUT(DomNodeList)
705 {"count", 0, KJS::DontDelete | KJS::ReadOnly, &NodeListNS::count},
706 {"length", 0, KJS::DontDelete | KJS::ReadOnly, &NodeListNS::length},
707 {"item", 1, KJS::DontDelete | KJS::ReadOnly, &NodeListNS::item}
708 END_METHOD_LUT
709 
710 START_CTOR(DomNodeList, QDomNodeList, 0)
711 return new KJSEmbed::DomNodeListBinding(exec, QDomNodeList());
712 END_CTOR
713 
714 const KJS::ClassInfo DomDocumentTypeBinding::info = { "QDomDocumentType", &ValueBinding::info, nullptr, nullptr };
715 DomDocumentTypeBinding::DomDocumentTypeBinding(KJS::ExecState *exec, const QDomDocumentType &value)
716  : ValueBinding(exec, "QDomDocumentType", value)
717 {
718  StaticBinding::publish(exec, this, DomNode::methods());
719  StaticBinding::publish(exec, this, DomDocumentType::methods());
720 }
721 
722 namespace DomDocumentTypeNS
723 {
724 START_VALUE_METHOD(internalSubset, QDomDocumentType)
725 result = KJS::jsString(value.internalSubset());
726 END_VALUE_METHOD
727 
728 START_VALUE_METHOD(name, QDomDocumentType)
729 result = KJS::jsString(value.name());
730 END_VALUE_METHOD
731 
732 START_VALUE_METHOD(publicId, QDomDocumentType)
733 result = KJS::jsString(value.publicId());
734 END_VALUE_METHOD
735 
736 START_VALUE_METHOD(systemId, QDomDocumentType)
737 result = KJS::jsString(value.systemId());
738 END_VALUE_METHOD
739 
740 START_VALUE_METHOD(entities, QDomDocumentType)
741 result = KJSEmbed::createValue(exec, "QDomNamedNodeMap", value.entities());
742 END_VALUE_METHOD
743 
744 START_VALUE_METHOD(notations, QDomDocumentType)
745 result = KJSEmbed::createValue(exec, "QDomNamedNodeMap", value.notations());
746 END_VALUE_METHOD
747 }
748 
749 NO_ENUMS(DomDocumentType)
750 NO_STATICS(DomDocumentType)
751 
752 START_METHOD_LUT(DomDocumentType)
753 {"entities", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::entities},
754 {"notations", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::notations},
755 {"internalSubset", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::internalSubset},
756 {"name", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::name},
757 {"publicId", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::publicId},
758 {"systemId", 0, KJS::DontDelete | KJS::ReadOnly, &DomDocumentTypeNS::systemId}
759 END_METHOD_LUT
760 
761 START_CTOR(DomDocumentType, QDomDocumentType, 0)
762 return new KJSEmbed::DomDocumentTypeBinding(exec, QDomDocumentType());
763 END_CTOR
764 
765 const KJS::ClassInfo DomNamedNodeMapBinding::info = { "QDomNamedNodeMap", &ValueBinding::info, nullptr, nullptr };
766 DomNamedNodeMapBinding::DomNamedNodeMapBinding(KJS::ExecState *exec, const QDomNamedNodeMap &value)
767  : ValueBinding(exec, "QDomNamedNodeMap", value)
768 {
769  StaticBinding::publish(exec, this, DomNamedNodeMap::methods());
770 }
771 
772 namespace NamedNodeMapNS
773 {
774 START_VALUE_METHOD(contains, QDomNamedNodeMap)
775 QString name = KJSEmbed::extractQString(exec, args, 0);
776 result = KJS::jsBoolean(value.contains(name));
777 END_VALUE_METHOD
778 
779 START_VALUE_METHOD(count, QDomNamedNodeMap)
780 result = KJS::jsNumber(value.count());
781 END_VALUE_METHOD
782 
783 START_VALUE_METHOD(item, QDomNamedNodeMap)
784 int idx = KJSEmbed::extractInt(exec, args, 0);
785 QDomNode node = value.item(idx);
786 result = KJSEmbed::createValue(exec, "QDomNode", node);
787 END_VALUE_METHOD
788 
789 START_VALUE_METHOD(length, QDomNamedNodeMap)
790 result = KJS::jsNumber(value.length());
791 END_VALUE_METHOD
792 
793 START_VALUE_METHOD(namedItem, QDomNamedNodeMap)
794 QString name = KJSEmbed::extractQString(exec, args, 0);
795 QDomNode node = value.namedItem(name);
796 result = KJSEmbed::createValue(exec, "QDomNode", node);
797 END_VALUE_METHOD
798 
799 START_VALUE_METHOD(namedItemNS, QDomNamedNodeMap)
800 QString nsuri = KJSEmbed::extractQString(exec, args, 0);
801 QString localName = KJSEmbed::extractQString(exec, args, 1);
802 QDomNode node = value.namedItemNS(nsuri, localName);
803 result = KJSEmbed::createValue(exec, "QDomNode", node);
804 END_VALUE_METHOD
805 
806 START_VALUE_METHOD(removeNamedItem, QDomNamedNodeMap)
807 QString name = KJSEmbed::extractQString(exec, args, 0);
808 QDomNode node = value.removeNamedItem(name);
809 result = KJSEmbed::createValue(exec, "QDomNode", node);
810 END_VALUE_METHOD
811 
812 START_VALUE_METHOD(removeNamedItemNS, QDomNamedNodeMap)
813 QString nsuri = KJSEmbed::extractQString(exec, args, 0);
814 QString localName = KJSEmbed::extractQString(exec, args, 1);
815 QDomNode node = value.removeNamedItemNS(nsuri, localName);
816 result = KJSEmbed::createValue(exec, "QDomNode", node);
817 END_VALUE_METHOD
818 
819 START_VALUE_METHOD(setNamedItem, QDomNamedNodeMap)
820 QDomNode newNode = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
821 QDomNode node = value.setNamedItem(newNode);
822 result = KJSEmbed::createValue(exec, "QDomNode", node);
823 END_VALUE_METHOD
824 
825 START_VALUE_METHOD(setNamedItemNS, QDomNamedNodeMap)
826 QDomNode newNode = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
827 QDomNode node = value.setNamedItemNS(newNode);
828 result = KJSEmbed::createValue(exec, "QDomNode", node);
829 END_VALUE_METHOD
830 
831 }
832 
833 NO_ENUMS(DomNamedNodeMap)
834 NO_STATICS(DomNamedNodeMap)
835 
836 START_METHOD_LUT(DomNamedNodeMap)
837 {"contains", 0, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::contains},
838 {"count", 0, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::count},
839 {"item", 1, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::item},
840 {"length", 0, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::length},
841 {"namedItem", 1, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::namedItem},
842 {"namedItemNS", 2, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::namedItemNS},
843 {"removeNamedItem", 1, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::removeNamedItem},
844 {"removeNamedItemNS", 2, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::removeNamedItemNS},
845 {"setNamedItem", 1, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::setNamedItem},
846 {"setNamedItemNS", 1, KJS::DontDelete | KJS::ReadOnly, &NamedNodeMapNS::setNamedItemNS}
847 END_METHOD_LUT
848 
849 START_CTOR(DomNamedNodeMap, QDomNamedNodeMap, 0)
850 return new KJSEmbed::DomNamedNodeMapBinding(exec, QDomNamedNodeMap());
851 END_CTOR
852 
853 const KJS::ClassInfo DomTextBinding::info = { "QDomText", &ValueBinding::info, nullptr, nullptr };
854 DomTextBinding::DomTextBinding(KJS::ExecState *exec, const QDomText &value)
855  : ValueBinding(exec, "QDomText", value)
856 {
857  StaticBinding::publish(exec, this, DomNode::methods());
858  StaticBinding::publish(exec, this, DomText::methods());
859 }
860 
861 NO_ENUMS(DomText)
862 NO_STATICS(DomText)
863 NO_METHODS(DomText)
864 
865 START_CTOR(DomText, QDomText, 0)
866 return new KJSEmbed::DomTextBinding(exec, QDomText());
867 END_CTOR
868 
bool isNull() const const
Value binding implementation.
T value() const const
Implement QString-KJS::UString conversion methods.
void setValue(const T &value)
void clear()
static void publish(KJS::ExecState *exec, KJS::JSObject *object, const Method *methods)
Publishes an array of Methods to an object.
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
QString message
QString toString() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Dec 10 2023 03:59:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.