• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KJSEmbed

dom.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE libraries
00002     Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org>
00003     Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com>
00004     Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org>
00005     Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us>
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public License
00018     along with this library; see the file COPYING.LIB.  If not, write to
00019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020     Boston, MA 02110-1301, USA.
00021 */
00022 #include "dom.h"
00023 
00024 #include <QtXml/QDomAttr>
00025 #include <QtCore/QDebug>
00026 
00027 using namespace KJSEmbed;
00028 
00029 const KJS::ClassInfo DomNodeBinding::info = { "QDomNode", &ValueBinding::info, 0, 0 };
00030 DomNodeBinding::DomNodeBinding( KJS::ExecState *exec, const QDomNode &value )
00031     : ValueBinding(exec, "QDomNode", value )
00032 {
00033     StaticBinding::publish( exec, this, DomNode::methods() );
00034 }
00035 
00036 namespace DomNodeNS
00037 {
00038 START_VALUE_METHOD( nodeType, QDomNode )
00039     result = KJS::jsNumber((int)value.nodeType());
00040 END_VALUE_METHOD
00041 
00042 START_VALUE_METHOD( nodeName, QDomNode )
00043     result = KJS::jsString( value.nodeName());
00044 END_VALUE_METHOD
00045 
00046 START_VALUE_METHOD( nodeValue, QDomNode )
00047     result = KJS::jsString( value.nodeValue());
00048 END_VALUE_METHOD
00049 
00050 START_VALUE_METHOD( appendChild, QDomNode )
00051     QDomNode newNode = KJSEmbed::extractValue<QDomNode>( exec, args, 0);
00052     QDomNode node = value.appendChild(newNode);
00053     result = KJSEmbed::createValue(exec, "QDomNode", node);
00054 END_VALUE_METHOD
00055 
00056 START_VALUE_METHOD( attributes, QDomNode )
00057     QDomNamedNodeMap map = value.attributes();
00058     result = KJSEmbed::createValue(exec, "QDomNamedNodeMap", map);
00059 END_VALUE_METHOD
00060 
00061 START_VALUE_METHOD( childNodes, QDomNode )
00062     QDomNodeList nodes = value.childNodes();
00063     result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00064 END_VALUE_METHOD
00065 
00066 START_VALUE_METHOD( clear, QDomNode )
00067     value.clear();
00068 END_VALUE_METHOD
00069 
00070 START_VALUE_METHOD( cloneNode, QDomNode )
00071     bool deep = KJSEmbed::extractBool( exec, args, 0, true);
00072     QDomNode node = value.cloneNode(deep);
00073     result = KJSEmbed::createValue(exec, "QDomNode", node);
00074 END_VALUE_METHOD
00075 
00076 START_VALUE_METHOD( firstChild, QDomNode )
00077     QDomNode node = value.firstChild();
00078     result = KJSEmbed::createValue(exec, "QDomNode", node);
00079 END_VALUE_METHOD
00080 
00081 START_VALUE_METHOD( firstChildElement, QDomNode )
00082     QString name = KJSEmbed::extractQString(exec, args, 0);
00083     QDomElement node = value.firstChildElement( name );
00084     result = KJSEmbed::createValue( exec, "QDomElement", node );
00085 END_VALUE_METHOD
00086 
00087 START_VALUE_METHOD( hasAttributes, QDomNode )
00088     result = KJS::jsBoolean( value.hasAttributes() );
00089 END_VALUE_METHOD
00090 
00091 START_VALUE_METHOD( hasChildNodes, QDomNode )
00092     result = KJS::jsBoolean( value.hasChildNodes() );
00093 END_VALUE_METHOD
00094 
00095 START_VALUE_METHOD( insertBefore, QDomNode )
00096     QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00097     QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00098     QDomNode node = value.insertBefore( first, second );
00099     result = KJSEmbed::createValue(exec, "QDomNode", node );
00100 END_VALUE_METHOD
00101 
00102 START_VALUE_METHOD( insertAfter, QDomNode )
00103     QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00104     QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00105     QDomNode node = value.insertAfter( first, second );
00106     result = KJSEmbed::createValue(exec, "QDomNode", node );
00107 END_VALUE_METHOD
00108 
00109 START_VALUE_METHOD( isAttr, QDomNode )
00110     result = KJS::jsBoolean( value.isAttr() );
00111 END_VALUE_METHOD
00112 
00113 START_VALUE_METHOD( isCDATASection, QDomNode )
00114     result = KJS::jsBoolean( value.isCDATASection() );
00115 END_VALUE_METHOD
00116 
00117 START_VALUE_METHOD( isCharacterData, QDomNode )
00118     result = KJS::jsBoolean( value.isCharacterData() );
00119 END_VALUE_METHOD
00120 
00121 START_VALUE_METHOD( isComment, QDomNode )
00122     result = KJS::jsBoolean( value.isComment() );
00123 END_VALUE_METHOD
00124 
00125 START_VALUE_METHOD( isDocument, QDomNode )
00126     result = KJS::jsBoolean( value.isDocument() );
00127 END_VALUE_METHOD
00128 
00129 START_VALUE_METHOD( isDocumentFragment, QDomNode )
00130     result = KJS::jsBoolean( value.isDocumentFragment() );
00131 END_VALUE_METHOD
00132 
00133 START_VALUE_METHOD( isDocumentType, QDomNode )
00134     result = KJS::jsBoolean( value.isDocumentType() );
00135 END_VALUE_METHOD
00136 
00137 START_VALUE_METHOD( isElement, QDomNode )
00138     result = KJS::jsBoolean( value.isElement() );
00139 END_VALUE_METHOD
00140 
00141 START_VALUE_METHOD( isEntity, QDomNode )
00142     result = KJS::jsBoolean( value.isEntity() );
00143 END_VALUE_METHOD
00144 
00145 START_VALUE_METHOD( isEntityReference, QDomNode )
00146     result = KJS::jsBoolean( value.isEntityReference() );
00147 END_VALUE_METHOD
00148 
00149 START_VALUE_METHOD( isNotation, QDomNode )
00150     result = KJS::jsBoolean( value.isNotation() );
00151 END_VALUE_METHOD
00152 
00153 START_VALUE_METHOD( isNull, QDomNode )
00154     result = KJS::jsBoolean( value.isNull() );
00155 END_VALUE_METHOD
00156 
00157 START_VALUE_METHOD( isProcessingInstruction, QDomNode )
00158     result = KJS::jsBoolean( value.isProcessingInstruction() );
00159 END_VALUE_METHOD
00160 
00161 START_VALUE_METHOD( isSupported, QDomNode )
00162     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00163     QString arg1 = KJSEmbed::extractQString(exec, args, 1);
00164     result = KJS::jsBoolean( value.isSupported( arg0, arg1 ) );
00165 END_VALUE_METHOD
00166 
00167 START_VALUE_METHOD( isText, QDomNode )
00168     result = KJS::jsBoolean( value.isText() );
00169 END_VALUE_METHOD
00170 
00171 START_VALUE_METHOD( lastChild, QDomNode )
00172     QDomNode node = value.lastChild();
00173     result = KJSEmbed::createValue(exec, "QDomNode", node );
00174 END_VALUE_METHOD
00175 
00176 START_VALUE_METHOD( lastChildElement, QDomNode )
00177     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00178     QDomElement node = value.lastChildElement( arg0 );
00179     result = KJSEmbed::createValue(exec, "QDomElement", node );
00180 END_VALUE_METHOD
00181 
00182 START_VALUE_METHOD( localName, QDomNode )
00183     result = KJS::jsString( value.localName() );
00184 END_VALUE_METHOD
00185 
00186 START_VALUE_METHOD( namedItem, QDomNode )
00187     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00188     QDomNode node = value.namedItem( arg0 );
00189     result = KJSEmbed::createValue(exec, "QDomNode", node );
00190 END_VALUE_METHOD
00191 
00192 START_VALUE_METHOD( namespaceURI, QDomNode )
00193     result = KJS::jsString( value.namespaceURI() );
00194 END_VALUE_METHOD
00195 
00196 START_VALUE_METHOD( nextSibling, QDomNode )
00197     QDomNode node = value.nextSibling();
00198     result = KJSEmbed::createValue(exec, "QDomNode", node );
00199 END_VALUE_METHOD
00200 
00201 START_VALUE_METHOD( nextSiblingElement, QDomNode )
00202     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00203     QDomElement node = value.nextSiblingElement( arg0 );
00204     result = KJSEmbed::createValue(exec, "QDomElement", node );
00205 END_VALUE_METHOD
00206 
00207 START_VALUE_METHOD( normalize, QDomNode )
00208     value.normalize();
00209 END_VALUE_METHOD
00210 
00211 START_VALUE_METHOD( ownerDocument, QDomNode )
00212     QDomDocument doc = value.ownerDocument();
00213     result = KJSEmbed::createValue( exec, "QDomDocument", doc);
00214 END_VALUE_METHOD
00215 
00216 START_VALUE_METHOD( parentNode, QDomNode )
00217     QDomNode parent = value.parentNode();
00218     result = KJSEmbed::createValue(exec, "QDomNode", parent );
00219 END_VALUE_METHOD
00220 
00221 START_VALUE_METHOD( prefix, QDomNode )
00222     result = KJS::jsString( value.prefix() );
00223 END_VALUE_METHOD
00224 
00225 START_VALUE_METHOD( previousSibling, QDomNode )
00226     QDomNode node = value.previousSibling();
00227     result = KJSEmbed::createValue(exec, "QDomNode", node);
00228 END_VALUE_METHOD
00229 
00230 START_VALUE_METHOD( previousSiblingElement, QDomNode )
00231     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00232     QDomNode node = value.previousSiblingElement( arg0 );
00233     result = KJSEmbed::createValue(exec, "QDomNode", node );
00234 END_VALUE_METHOD
00235 
00236 START_VALUE_METHOD( removeChild, QDomNode )
00237     QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00238     QDomNode node = value.removeChild( arg0 );
00239     result = KJSEmbed::createValue(exec, "QDomNode", node );
00240 END_VALUE_METHOD
00241 
00242 START_VALUE_METHOD( replaceChild, QDomNode )
00243     QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00244     QDomNode arg1 =KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00245     QDomNode node = value.replaceChild(arg0,arg1);
00246     result = KJSEmbed::createValue(exec, "QDomNode", node );
00247 END_VALUE_METHOD
00248 
00249 START_VALUE_METHOD( setPrefix, QDomNode )
00250     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00251     value.setPrefix(arg0);
00252 END_VALUE_METHOD
00253 
00254 START_VALUE_METHOD( setNodeValue, QDomNode )
00255     QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00256     value.setNodeValue(arg0);
00257 END_VALUE_METHOD
00258 
00259 START_VALUE_METHOD( toAttr, QDomNode )
00260     QDomAttr attr = value.toAttr(  );
00261     result = KJSEmbed::createValue(exec, "QDomAttr", attr );
00262 END_VALUE_METHOD
00263 
00264 START_VALUE_METHOD( toElement, QDomNode )
00265     QDomElement elem = value.toElement(  );
00266     result = KJSEmbed::createValue(exec, "QDomElement", elem );
00267 END_VALUE_METHOD
00268 }
00269 
00270 START_METHOD_LUT( DomNode )
00271     {"appendChild", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::appendChild},
00272     {"attributes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::attributes},
00273     {"childNodes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::childNodes},
00274     {"clear", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::clear},
00275     {"cloneNode", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::cloneNode},
00276     {"firstChild", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::firstChild},
00277     {"firstChildElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::firstChildElement},
00278     {"hasAttributes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::hasAttributes},
00279     {"hasChildNodes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::hasChildNodes},
00280     {"insertBefore", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::insertBefore},
00281     {"insertAfter", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::insertAfter},
00282     {"isAttr", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isAttr},
00283     {"isCDATASection", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isCDATASection},
00284     {"isCharacterData", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isCharacterData},
00285     {"isComment", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isComment},
00286     {"isDocument", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocument},
00287     {"isDocumentFragment", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocumentFragment},
00288     {"isDocumentType", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocumentType},
00289     {"isElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isElement},
00290     {"isEntity", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isEntity},
00291     {"isEntityReference", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isEntityReference},
00292     {"isNotation", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isNotation},
00293     {"isNull", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isNull},
00294     {"isProcessingInstruction", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isProcessingInstruction},
00295     {"isSupported", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isSupported},
00296     {"isText", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isText},
00297     {"lastChild", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::lastChild},
00298     {"lastChildElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::lastChildElement},
00299     {"localName", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::localName},
00300     {"namedItem", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::namedItem},
00301     {"namespaceURI", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::namespaceURI},
00302     {"nextSibling", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nextSibling},
00303     {"nextSiblingElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nextSiblingElement},
00304     {"nodeType", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeType},
00305     {"nodeName", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeName},
00306     {"nodeValue", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeValue},
00307     {"normalize", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::normalize},
00308     {"ownerDocument", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::ownerDocument},
00309     {"parentNode", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::parentNode},
00310     {"prefix", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::prefix},
00311     {"previousSibling", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::previousSibling},
00312     {"previousSiblingElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::previousSiblingElement},
00313     {"removeChild", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::removeChild},
00314     {"replaceChild", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::replaceChild},
00315     {"setPrefix", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::setPrefix},
00316     {"setNodeValue", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::setNodeValue},
00317     {"toAttr", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::toAttr},
00318     {"toElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::toElement}
00319 END_METHOD_LUT
00320 
00321 START_ENUM_LUT( DomNode )
00322     {"ElementNode", QDomNode::ElementNode},
00323     {"AttributeNode", QDomNode::AttributeNode},
00324     {"TextNode", QDomNode::TextNode},
00325     {"CDATASectionNode", QDomNode::CDATASectionNode},
00326     {"EntityReferenceNode", QDomNode::EntityReferenceNode},
00327     {"EntityNode", QDomNode::EntityNode},
00328     {"ProcessingInstructionNode", QDomNode::ProcessingInstructionNode},
00329     {"CommentNode", QDomNode::CommentNode},
00330     {"DocumentNode", QDomNode::DocumentNode},
00331     {"DocumentTypeNode", QDomNode::DocumentTypeNode},
00332     {"DocumentFragmentNode", QDomNode::DocumentFragmentNode},
00333     {"NotationNode", QDomNode::NotationNode},
00334     {"BaseNode", QDomNode::BaseNode},
00335     {"CharacterDataNode", QDomNode::CharacterDataNode}
00336 END_ENUM_LUT
00337 
00338 NO_STATICS( DomNode )
00339 
00340 START_CTOR( DomNode, QDomNode, 0 )
00341     return new KJSEmbed::DomNodeBinding(exec, QDomNode( ) );
00342 END_CTOR
00343 
00344 const KJS::ClassInfo DomDocumentBinding::info = { "QDomDocument", &ValueBinding::info, 0, 0 };
00345 DomDocumentBinding::DomDocumentBinding( KJS::ExecState *exec, const QDomDocument &value )
00346     : ValueBinding(exec, "QDomDocument", value )
00347 {
00348     StaticBinding::publish( exec, this, DomNode::methods() );
00349     StaticBinding::publish( exec, this, DomDocument::methods() );
00350 }
00351 
00352 namespace DomDocumentNS
00353 {
00354 QString parserErrorTemplate = "XML Parse error '%1' at %2,%3";
00355 
00356 START_VALUE_METHOD( setContent, QDomDocument )
00357     QString xml = KJSEmbed::extractQString( exec, args, 0);
00358     QString message;
00359     int row = 0;
00360     int col = 0;
00361     bool success = value.setContent(xml, &message, &row, &col );
00362     result = KJS::jsBoolean( success );
00363     if( !success )
00364     {
00365         KJS::throwError(exec, KJS::SyntaxError, parserErrorTemplate.arg(message).arg(row).arg(col) );
00366     }
00367 END_VALUE_METHOD
00368 
00369 START_VALUE_METHOD( toString, QDomDocument )
00370     int indent = KJSEmbed::extractInt( exec, args, 0, 1);
00371     result = KJS::jsString(value.toString(indent));
00372 END_VALUE_METHOD
00373 
00374 START_VALUE_METHOD( documentElement, QDomDocument )
00375     QDomElement elem = value.documentElement();
00376     result = KJSEmbed::createValue(exec, "QDomElement", elem);
00377 END_VALUE_METHOD
00378 
00379 START_VALUE_METHOD( elementById, QDomDocument )
00380     QString id = KJSEmbed::extractQString(exec, args, 0);
00381     QDomElement elem = value.elementById(id);
00382     result = KJSEmbed::createValue(exec, "QDomElement", elem);
00383 END_VALUE_METHOD
00384 
00385 START_VALUE_METHOD( createAttribute, QDomDocument )
00386     QString name = KJSEmbed::extractQString( exec, args, 0);
00387     QDomAttr attr = value.createAttribute( name );
00388     result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00389 END_VALUE_METHOD
00390 
00391 START_VALUE_METHOD( createAttributeNS, QDomDocument )
00392     QString nsURI = KJSEmbed::extractQString( exec, args, 0);
00393     QString qName = KJSEmbed::extractQString( exec, args, 1);
00394     QDomAttr attr = value.createAttributeNS( nsURI, qName );
00395     result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00396 END_VALUE_METHOD
00397 
00398 START_VALUE_METHOD( createCDATASection, QDomDocument )
00399     QString cdatatxt = KJSEmbed::extractQString( exec, args, 0);
00400     QDomCDATASection  cdata = value.createCDATASection( cdatatxt );
00401     result = KJSEmbed::createValue(exec, "QDomCDATASection", cdata);
00402 END_VALUE_METHOD
00403 
00404 START_VALUE_METHOD( createComment, QDomDocument )
00405     QString commenttxt = KJSEmbed::extractQString( exec, args, 0);
00406     QDomComment comment = value.createComment( commenttxt );
00407     result = KJSEmbed::createValue(exec, "QDomComment", comment);
00408 END_VALUE_METHOD
00409 
00410 START_VALUE_METHOD( createDocumentFragment, QDomDocument )
00411     QDomDocumentFragment fragment = value.createDocumentFragment();
00412     result = KJSEmbed::createValue(exec, "QDomDocumentFragment", fragment);
00413 END_VALUE_METHOD
00414 
00415 START_VALUE_METHOD( createElement, QDomDocument )
00416     QString tagName = KJSEmbed::extractQString( exec, args, 0);
00417     QDomElement elem = value.createElement( tagName );
00418     result = KJSEmbed::createValue(exec, "QDomElement", elem);
00419 END_VALUE_METHOD
00420 
00421 START_VALUE_METHOD( createElementNS, QDomDocument )
00422     QString nsURI = KJSEmbed::extractQString( exec, args, 0);
00423     QString qName = KJSEmbed::extractQString( exec, args, 1);
00424     QDomElement elem = value.createElementNS( nsURI, qName );
00425     result = KJSEmbed::createValue(exec, "QDomElement", elem);
00426 END_VALUE_METHOD
00427 
00428 START_VALUE_METHOD( createEntityReference, QDomDocument )
00429     QString name = KJSEmbed::extractQString( exec, args, 0);
00430     QDomEntityReference ref = value.createEntityReference( name );
00431     result = KJSEmbed::createValue(exec, "QDomEntityReference", ref);
00432 END_VALUE_METHOD
00433 
00434 START_VALUE_METHOD( createProcessingInstruction, QDomDocument )
00435     QString target = KJSEmbed::extractQString( exec, args, 0);
00436     QString data = KJSEmbed::extractQString( exec, args, 1);
00437     QDomProcessingInstruction inst = value.createProcessingInstruction(target, data );
00438     result = KJSEmbed::createValue(exec, "QDomProcessingInstruction", inst);
00439 END_VALUE_METHOD
00440 
00441 START_VALUE_METHOD( createTextNode, QDomDocument )
00442     QString texttext = KJSEmbed::extractQString( exec, args, 0);
00443     QDomText text = value.createTextNode( texttext );
00444     result = KJSEmbed::createValue(exec, "QDomText", text);
00445 END_VALUE_METHOD
00446 
00447 START_VALUE_METHOD( importNode, QDomDocument )
00448     QDomNode import = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00449     bool deep = KJSEmbed::extractBool( exec, args, 1);
00450     QDomNode node = value.importNode( import, deep );
00451     result = KJSEmbed::createValue(exec, "QDomNode",  node);
00452 END_VALUE_METHOD
00453 
00454 }
00455 
00456 START_METHOD_LUT( DomDocument )
00457     {"setContent", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::setContent},
00458     {"toString", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::toString},
00459     {"documentElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::documentElement},
00460     {"elementById", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::elementById},
00461     {"createAttribute", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createAttribute },
00462     {"createAttributeNS", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createAttributeNS },
00463     {"createCDATASection", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createCDATASection},
00464     {"createComment", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createComment},
00465     {"createDocumentFragment", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createDocumentFragment},
00466     {"createElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createElement},
00467     {"createElementNS", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createElementNS},
00468     {"createEntityReference", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createEntityReference},
00469     {"createProcessingInstruction", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createProcessingInstruction},
00470     {"createTextNode", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createTextNode},
00471     {"importNode", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::importNode}
00472 END_METHOD_LUT
00473 
00474 NO_ENUMS( DomDocument )
00475 NO_STATICS( DomDocument )
00476 
00477 START_CTOR( DomDocument, QDomDocument, 1 )
00478     QString name = KJSEmbed::extractQString( exec, args, 0);
00479     return new KJSEmbed::DomDocumentBinding(exec, QDomDocument(name) );
00480 END_CTOR
00481 
00482 const KJS::ClassInfo DomElementBinding::info = { "QDomElement", &ValueBinding::info, 0, 0 };
00483 DomElementBinding::DomElementBinding( KJS::ExecState *exec, const QDomElement &value )
00484     : ValueBinding(exec, "QDomElement", value )
00485 {
00486     StaticBinding::publish( exec, this, DomNode::methods() );
00487     StaticBinding::publish( exec, this, DomElement::methods() );
00488 }
00489 
00490 namespace DomElementNS {
00491 START_VALUE_METHOD( toString, QDomElement )
00492     result = KJS::jsString( value.text( ) );
00493 END_VALUE_METHOD
00494 
00495 START_VALUE_METHOD( tagName, QDomElement )
00496     result = KJS::jsString( value.tagName( ) );
00497 END_VALUE_METHOD
00498 
00499 START_VALUE_METHOD( setTagName, QDomElement )
00500     QString tag = KJSEmbed::extractQString(exec, args, 0);
00501     value.setTagName(tag);
00502 END_VALUE_METHOD
00503 
00504 START_VALUE_METHOD( attribute, QDomElement )
00505     QString tag = KJSEmbed::extractQString(exec, args, 0);
00506     QString defaultValue = KJSEmbed::extractQString(exec, args, 1, QString());
00507     result = KJS::jsString( value.attribute(tag,defaultValue) );
00508 END_VALUE_METHOD
00509 
00510 START_VALUE_METHOD( setAttribute, QDomElement )
00511     QString tag = KJSEmbed::extractQString(exec, args, 0);
00512     QString newValue = KJSEmbed::extractQString(exec, args, 1);
00513     value.setAttribute(tag,newValue);
00514 END_VALUE_METHOD
00515 
00516 START_VALUE_METHOD( hasAttribute, QDomElement )
00517     QString attr = KJSEmbed::extractQString(exec, args, 0);
00518     result = KJS::jsBoolean( value.hasAttribute(attr) );
00519 END_VALUE_METHOD
00520 
00521 START_VALUE_METHOD( removeAttribute, QDomElement )
00522     QString attr = KJSEmbed::extractQString(exec, args, 0);
00523     value.removeAttribute( attr );
00524 END_VALUE_METHOD
00525 
00526 START_VALUE_METHOD( setAttributeNS, QDomElement )
00527     QString ns = KJSEmbed::extractQString(exec, args, 0);
00528     QString attr = KJSEmbed::extractQString(exec, args, 1);
00529     QString val = KJSEmbed::extractQString(exec, args, 3);
00530     value.setAttributeNS( ns, attr, val );
00531 END_VALUE_METHOD
00532 
00533 START_VALUE_METHOD( attributeNS, QDomElement )
00534     QString nsURI = KJSEmbed::extractQString(exec, args, 0);
00535     QString localName = KJSEmbed::extractQString(exec, args, 1);
00536     QString defValue = KJSEmbed::extractQString( exec, args, 1, QString() );
00537     result = KJS::jsString( value.attributeNS( nsURI, localName, defValue ));
00538 END_VALUE_METHOD
00539 
00540 START_VALUE_METHOD( hasAttributeNS, QDomElement )
00541     QString ns = KJSEmbed::extractQString(exec, args, 0);
00542     QString attr = KJSEmbed::extractQString(exec, args, 1);
00543     result = KJS::jsBoolean( value.hasAttributeNS(ns, attr) );
00544 END_VALUE_METHOD
00545 
00546 START_VALUE_METHOD( removeAttributeNS, QDomElement )
00547     QString ns = KJSEmbed::extractQString(exec, args, 0);
00548     QString attr = KJSEmbed::extractQString(exec, args, 1);
00549     value.removeAttributeNS( ns, attr );
00550 END_VALUE_METHOD
00551 
00552 START_VALUE_METHOD( elementsByTagName, QDomElement )
00553     QString name = KJSEmbed::extractQString(exec, args, 0);
00554     QDomNodeList nodes = value.elementsByTagName(name);
00555     result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00556 END_VALUE_METHOD
00557 
00558 START_VALUE_METHOD( elementsByTagNameNS, QDomElement )
00559     QString ns = KJSEmbed::extractQString(exec, args, 0);
00560     QString name = KJSEmbed::extractQString(exec, args, 1);
00561     QDomNodeList nodes = value.elementsByTagNameNS( ns, name );
00562     result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00563 END_VALUE_METHOD
00564 
00565 START_VALUE_METHOD( attributeNode, QDomElement )
00566     QString name = KJSEmbed::extractQString(exec, args, 0);
00567     QDomAttr attr = value.attributeNode( name );
00568     result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00569 END_VALUE_METHOD
00570 
00571 START_VALUE_METHOD( attributeNodeNS, QDomElement )
00572     QString ns = KJSEmbed::extractQString(exec, args, 0);
00573     QString name = KJSEmbed::extractQString(exec, args, 1);
00574     QDomAttr attr = value.attributeNodeNS( ns, name );
00575     result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00576 END_VALUE_METHOD
00577 
00578 START_VALUE_METHOD( removeAttributeNode, QDomElement )
00579     QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00580     QDomAttr newAttr = value.removeAttributeNode( attr );
00581     result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00582 END_VALUE_METHOD
00583 
00584 START_VALUE_METHOD( setAttributeNode, QDomElement )
00585     QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00586     QDomAttr newAttr = value.setAttributeNode( attr );
00587     result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00588 END_VALUE_METHOD
00589 
00590 START_VALUE_METHOD( setAttributeNodeNS, QDomElement )
00591     QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00592     QDomAttr newAttr = value.setAttributeNodeNS( attr );
00593     result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00594 END_VALUE_METHOD
00595 }
00596 
00597 NO_ENUMS( DomElement )
00598 NO_STATICS( DomElement )
00599 
00600 START_METHOD_LUT( DomElement )
00601     {"toString", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::toString},
00602     {"text", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::toString},
00603     {"tagName", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::tagName},
00604     {"setTagName", 1, KJS::DontDelete|KJS::ReadOnly, &