--- parser3/src/classes/xnode.C 2007/10/10 17:37:18 1.80 +++ parser3/src/classes/xnode.C 2009/08/08 13:30:20 1.84 @@ -1,13 +1,13 @@ /** @file Parser: @b dom parser class. - Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #include "classes.h" #ifdef XML -static const char * const IDENT_XNODE_C="$Date: 2007/10/10 17:37:18 $"; +static const char * const IDENT_XNODE_C="$Date: 2009/08/08 13:30:20 $"; #include "pa_vmethod_frame.h" @@ -99,7 +99,7 @@ private: xmlNode& as_node(MethodParams& params, int index, const char* msg) { Value& value=params.as_no_junction(index, msg); - if(Value* vxnode=value.as(VXNODE_TYPE, false)) + if(Value* vxnode=value.as(VXNODE_TYPE)) return static_cast(vxnode)->get_xmlnode(); else throw Exception(PARSER_RUNTIME, @@ -167,7 +167,7 @@ xmlNs& pa_xmlMapNs(xmlDoc& doc, const xm return *cur; } -/// todo: проверить, обновляется ли parent! +/// @todo: проверить, обновляется ли parent! static void pa_addAttributeNode(xmlNode& selfNode, xmlAttr& attrNode) { if(attrNode.type!=XML_ATTRIBUTE_NODE) @@ -330,7 +330,7 @@ static void _hasChildNodes(Request& r, M xmlNode& node=vnode.get_xmlnode(); // write out result - r.write_no_lang(*new VBool(node.children!=0)); + r.write_no_lang(VBool::get(node.children!=0)); } // Node cloneNode(in boolean deep); @@ -366,7 +366,7 @@ static void _getAttribute(Request& r, Me xmlNode& element=get_self_element(vnode); const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); - // todo: when name="xmlns" + // @todo: when name="xmlns" xmlChar* attribute_value=xmlGetProp(&element, name); // write out result r.write_pass_lang(r.transcode(attribute_value)); @@ -379,7 +379,7 @@ static void _setAttribute(Request& r, Me const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); const xmlChar* attribute_value=as_xmlchar(r, params, 1, VALUE_MUST_BE_STRING); - // todo: when name="xmlns" + // @todo: when name="xmlns" if(!xmlSetProp(&element, name, attribute_value)) throw XmlException(0); } @@ -390,7 +390,7 @@ static void _removeAttribute(Request& r, xmlNode& element=get_self_element(vnode); const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); - // todo: when name="xmlns" + // @todo: when name="xmlns" xmlUnsetProp(&element, name); } @@ -503,7 +503,7 @@ static void _setAttributeNS(Request& r, xmlChar* prefix=0; xmlChar* localName=xmlSplitQName2(qualifiedName, &prefix); - // todo: name=xmlns + // @todo: name=xmlns xmlAttr* attrNode; if(localName) { xmlNs& ns=pa_xmlMapNs(xmldoc, namespaceURI, prefix); @@ -530,7 +530,7 @@ static void _removeAttributeNS(Request& const xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); const xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); - // todo: when name="xmlns" + // @todo: when name="xmlns" xmlNs& ns=pa_xmlMapNs(xmldoc, namespaceURI, 0); xmlUnsetNsProp(&element, &ns, localName); } @@ -556,9 +556,9 @@ static void _hasAttribute(Request& r, Me const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); - // todo: when name="xmlns" + // @todo: when name="xmlns" // write out result - r.write_no_lang(*new VBool(xmlGetProp(&element, name)!=0)); + r.write_no_lang(VBool::get(xmlHasProp(&element, name)!=0)); } // boolean hasAttributeNS(n DOMString namespaceURI, in DOMString localName) raises(DOMException); @@ -570,7 +570,7 @@ static void _hasAttributeNS(Request& r, const xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); // write out result - r.write_no_lang(*new VBool(xmlGetNsProp(&element, localName, namespaceURI)!=0)); + r.write_no_lang(VBool::get(xmlHasNsProp(&element, localName, namespaceURI)!=0)); } // boolean hasAttributes @@ -579,7 +579,7 @@ static void _hasAttributes(Request& r, M xmlNode& element=get_self_element(vnode); // write out result - r.write_no_lang(*new VBool(element.properties!=0)); + r.write_no_lang(VBool::get(element.properties!=0)); } static void _getElementsByTagNameNS(Request& r, MethodParams& params) { @@ -715,7 +715,7 @@ static void selectNodeHandler(Request& r } break; case XPATH_BOOLEAN: - result=new VBool(res->boolval!=0); + result=&VBool::get(res->boolval!=0); break; case XPATH_NUMBER: result=new VDouble(res->floatval); @@ -737,7 +737,7 @@ static void selectBoolHandler(Request&, Value*& result) { switch(res->type) { case XPATH_BOOLEAN: - result=new VBool(res->boolval!=0); + result=&VBool::get(res->boolval!=0); break; case XPATH_NODESET: if(!(res->nodesetval && res->nodesetval->nodeNr))