dom_namednodemap.cpp

来自「IBM的解析xml的工具Xerces的源代码」· C++ 代码 · 共 181 行

CPP
181
字号
/* * Copyright 1999-2002,2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: DOM_NamedNodeMap.cpp,v 1.4 2004/09/08 13:55:42 peiyongz Exp $ */#include "DOM_Node.hpp"#include "DOM_NamedNodeMap.hpp"#include "NamedNodeMapImpl.hpp"#include "ElementImpl.hpp"XERCES_CPP_NAMESPACE_BEGINconst unsigned short DOM_NamedNodeMap::NNM_ELEMENT  = 0;const unsigned short DOM_NamedNodeMap::NNM_OTHER    = 1;DOM_NamedNodeMap::DOM_NamedNodeMap(){    fImpl = 0;	flagElem = NNM_OTHER;};DOM_NamedNodeMap::DOM_NamedNodeMap(const DOM_NamedNodeMap & other){    this->fImpl = other.fImpl;	this->flagElem = other.flagElem;	(other.flagElem == NNM_ELEMENT) ? NodeImpl::addRef((NodeImpl *)fImpl) :		                                  NamedNodeMapImpl::addRef((NamedNodeMapImpl *)fImpl);};DOM_NamedNodeMap::DOM_NamedNodeMap(NamedNodeMapImpl *impl){	fImpl = impl;	flagElem = NNM_OTHER;	if (impl != null)		NamedNodeMapImpl::addRef((NamedNodeMapImpl *)fImpl);};DOM_NamedNodeMap::DOM_NamedNodeMap(NodeImpl *impl){	fImpl = impl;	flagElem = NNM_ELEMENT;	NodeImpl::addRef((NodeImpl *)fImpl);}DOM_NamedNodeMap::~DOM_NamedNodeMap(){	(flagElem == NNM_OTHER) ? NamedNodeMapImpl::removeRef((NamedNodeMapImpl *)fImpl) :	                          NodeImpl::removeRef((NodeImpl *)fImpl);};bool DOM_NamedNodeMap::operator == (const DOM_NamedNodeMap &other) const{    return this->fImpl == other.fImpl;};bool DOM_NamedNodeMap::operator != (const DOM_NamedNodeMap &other) const{    return this->fImpl != other.fImpl;};bool DOM_NamedNodeMap::operator == (const DOM_NullPtr *p) const{    return this->fImpl == 0;};bool DOM_NamedNodeMap::operator != (const DOM_NullPtr *p) const{    return this->fImpl != 0;};DOM_NamedNodeMap & DOM_NamedNodeMap::operator = (const DOM_NamedNodeMap & other){    if (this->fImpl != other.fImpl)    {		// update reference counts and change pointers        (flagElem == NNM_OTHER) ? NamedNodeMapImpl::removeRef((NamedNodeMapImpl *)fImpl) : NodeImpl::removeRef((NodeImpl *)fImpl);        this->fImpl = other.fImpl;		this->flagElem = other.flagElem;        (flagElem == NNM_OTHER) ? NamedNodeMapImpl::addRef((NamedNodeMapImpl *)fImpl) : NodeImpl::addRef((NodeImpl *)fImpl);    }    return *this;};DOM_NamedNodeMap & DOM_NamedNodeMap::operator = (const DOM_NullPtr *other){    (flagElem == NNM_OTHER) ? NamedNodeMapImpl::removeRef((NamedNodeMapImpl *)fImpl) : NodeImpl::removeRef((NodeImpl *)fImpl);    this->fImpl = 0;	this->flagElem = NNM_OTHER;    return *this;};DOM_Node DOM_NamedNodeMap::getNamedItem(const DOMString &name) const{	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->getNamedItem(name)) :	                                 DOM_Node(((ElementImpl *)fImpl)->NNM_getNamedItem(name));};DOM_Node DOM_NamedNodeMap::setNamedItem(DOM_Node arg){	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->setNamedItem(arg.fImpl)) :	                                 DOM_Node(((ElementImpl *)fImpl)->NNM_setNamedItem(arg.fImpl));};DOM_Node DOM_NamedNodeMap::removeNamedItem(const DOMString &name){	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->removeNamedItem(name)) :	                                 DOM_Node(((ElementImpl *)fImpl)->NNM_removeNamedItem(name));};DOM_Node DOM_NamedNodeMap::item(unsigned int index) const{	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->item(index)) :	                                 DOM_Node(((ElementImpl *)fImpl)->NNM_item(index));};unsigned int DOM_NamedNodeMap::getLength() const{	return (flagElem == NNM_OTHER) ? ((NamedNodeMapImpl *)fImpl)->getLength() :	                                 ((ElementImpl *)fImpl)->NNM_getLength();};//Introduced in DOM Level 2DOM_Node DOM_NamedNodeMap::getNamedItemNS(const DOMString &namespaceURI,	const DOMString &localName){	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->getNamedItemNS(namespaceURI, localName)) :									 DOM_Node(((ElementImpl *)fImpl)->NNM_getNamedItemNS(namespaceURI, localName));}DOM_Node DOM_NamedNodeMap::setNamedItemNS(DOM_Node arg){    return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->setNamedItemNS(arg.fImpl)) :	                                 DOM_Node(((ElementImpl *)fImpl)->NNM_setNamedItemNS(arg.fImpl));}DOM_Node DOM_NamedNodeMap::removeNamedItemNS(const DOMString &namespaceURI,	const DOMString &localName){	return (flagElem == NNM_OTHER) ? DOM_Node(((NamedNodeMapImpl *)fImpl)->removeNamedItemNS(namespaceURI, localName)) :                                     DOM_Node(((ElementImpl *)fImpl)->NNM_removeNamedItemNS(namespaceURI, localName));}XERCES_CPP_NAMESPACE_END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?