--- parser3/src/classes/xnode.C 2001/10/19 14:15:23 1.12 +++ parser3/src/classes/xnode.C 2001/11/05 11:46:22 1.18 @@ -2,9 +2,9 @@ Parser: @b dom parser class. Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) + Author: Alexander Petrosyan (http://paf.design.ru) - $Id: xnode.C,v 1.12 2001/10/19 14:15:23 parser Exp $ + $Id: xnode.C,v 1.18 2001/11/05 11:46:22 paf Exp $ */ #include "classes.h" #ifdef XML @@ -70,11 +70,11 @@ static void _insertBefore(Request& r, co try { if(XalanNode *retNode=selfNode.insertBefore(&newChild, &refChild)) { // write out result - VXnode& result=*new(pool) VXnode(pool, retNode); + VXnode& result=*new(pool) VXnode(pool, retNode, false); r.write_no_lang(result); } } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -90,11 +90,11 @@ static void _replaceChild(Request& r, co try { if(XalanNode *retNode=selfNode.replaceChild(&newChild, &refChild)) { // write out result - VXnode& result=*new(pool) VXnode(pool, retNode); + VXnode& result=*new(pool) VXnode(pool, retNode, false); r.write_no_lang(result); } } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -109,11 +109,11 @@ static void _removeChild(Request& r, con try { if(XalanNode *retNode=selfNode.removeChild(&oldChild)) { // write out result - VXnode& result=*new(pool) VXnode(pool, retNode); + VXnode& result=*new(pool) VXnode(pool, retNode, false); r.write_no_lang(result); } } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -128,11 +128,11 @@ static void _appendChild(Request& r, con try { if(XalanNode *retNode=selfNode.appendChild(&newChild)) { // write out result - VXnode& result=*new(pool) VXnode(pool, retNode); + VXnode& result=*new(pool) VXnode(pool, retNode, false); r.write_no_lang(result); } } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -149,7 +149,7 @@ static void _hasChildNodes(Request& r, c } // Node cloneNode(in boolean deep); -/// @test 1. who frees it up? 2. ownerDocument=? +/// @test ownerDocument=? static void _cloneNode(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); VXnode& vnode=*static_cast(r.self); @@ -158,7 +158,7 @@ static void _cloneNode(Request& r, const bool deep=params->as_bool(0, "deep must be bool", r); // write out result - VXnode& result=*new(pool) VXnode(pool, node.cloneNode(deep)); + VXnode& result=*new(pool) VXnode(pool, node.cloneNode(deep), true/*all sense goes here*/); result.set_name(method_name); r.write_no_lang(result); } @@ -184,7 +184,7 @@ static void _getAttribute(Request& r, co XalanElement& element=get_self_element(r, method_name); const String& name=params->as_string(0, "name must be string"); - const XalanDOMString& attribute_value=element.getAttribute(pool.transcode(name)); + const XalanDOMString& attribute_value=element.getAttribute(*pool.transcode(name)); // write out result r.write_no_lang(*new(pool) VString(pool.transcode(attribute_value))); } @@ -198,10 +198,10 @@ static void _setAttribute(Request& r, co try { element.setAttribute( - pool.transcode(name), - pool.transcode(attribute_value)); + *pool.transcode(name), + *pool.transcode(attribute_value)); } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -212,9 +212,9 @@ static void _removeAttribute(Request& r, const String& name=params->as_string(0, "name must be string"); try { - element.removeAttribute(pool.transcode(name)); + element.removeAttribute(*pool.transcode(name)); } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -224,9 +224,9 @@ static void _getAttributeNode(Request& r XalanElement& element=get_self_element(r, method_name); const String& name=params->as_string(0, "name must be string"); - if(XalanAttr *attr=element.getAttributeNode(pool.transcode(name))) { + if(XalanAttr *attr=element.getAttributeNode(*pool.transcode(name))) { // write out result - VXnode& result=*new(pool) VXnode(pool, attr); + VXnode& result=*new(pool) VXnode(pool, attr, false); r.write_no_lang(result); } } @@ -240,11 +240,11 @@ static void _setAttributeNode(Request& r try { if(XalanAttr *returnAttr=element.setAttributeNode(&newAttr)) { // write out result - VXnode& result=*new(pool) VXnode(pool, returnAttr); + VXnode& result=*new(pool) VXnode(pool, returnAttr, false); r.write_no_lang(result); } } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -257,7 +257,7 @@ static void _removeAttributeNode(Request try { /*XalanAttr *returnAttr*/element.removeAttributeNode(&oldAttr); } catch(const XalanDOMException& e) { - Exception::convert(pool, &method_name, e); + Exception::provide_source(pool, &method_name, e); } } @@ -270,7 +270,7 @@ static void _getElementsByTagName(Reques VHash& result=*new(pool) VHash(pool); if(const XalanNodeList *nodes= - element.getElementsByTagName(pool.transcode(name))) { + element.getElementsByTagName(*pool.transcode(name))) { for(int i=0; igetLength(); i++) { String& skey=*new(pool) String(pool); { @@ -279,7 +279,7 @@ static void _getElementsByTagName(Reques skey << buf; } - result.hash().put(skey, new(pool) VXnode(pool, nodes->item(i))); + result.hash(0).put(skey, new(pool) VXnode(pool, nodes->item(i), false)); } } @@ -302,7 +302,7 @@ static void _select(Request& r, const St // expression const String& expression=params->as_string(0, "expression must be string"); - const char *expression_cstr=expression.cstr(String::UL_AS_IS); + const char *expression_cstr=expression.cstr(); XalanDOMString dstring(expression_cstr); const XalanDOMChar *expression_dcstr=dstring.c_str(); @@ -324,12 +324,12 @@ static void _select(Request& r, const St skey << buf; } - result.hash().put(skey, new(pool) VXnode(pool, list.item(i))); + result.hash(0).put(skey, new(pool) VXnode(pool, list.item(i), false)); } result.set_name(method_name); r.write_no_lang(result); } catch(const XSLException& e) { - Exception::convert(pool, &expression, e); + Exception::provide_source(pool, &expression, e); } } @@ -340,7 +340,7 @@ static void _selectSingle(Request& r, co // expression const String& expression=params->as_string(0, "expression must be string"); - const char *expression_cstr=expression.cstr(String::UL_AS_IS); + const char *expression_cstr=expression.cstr(); XalanDOMString dstring(expression_cstr); const XalanDOMChar *expression_dcstr=dstring.c_str(); @@ -355,12 +355,12 @@ static void _selectSingle(Request& r, co &vnode.get_node(pool, &method_name), expression_dcstr)) { - VXnode& result=*new(pool) VXnode(pool, node); + VXnode& result=*new(pool) VXnode(pool, node, false); result.set_name(method_name); r.write_no_lang(result); } } catch(const XSLException& e) { - Exception::convert(pool, &expression, e); + Exception::provide_source(pool, &expression, e); } }