/** * Get this AttributeMap in sync with the given "defaults" map. * @param defaults The default attributes map to sync with. */ void DOMAttrMapImpl::reconcileDefaultAttributes(const DOMAttrMapImpl* defaults) { // remove any existing default XMLSize_t nsize = getLength(); for (XMLSSize_t i = nsize - 1; i >= 0; i--) { DOMAttr* attr = (DOMAttr*)item(i); if (!attr->getSpecified()) { removeNamedItemAt(i); } } hasDefaults(false); // add the new defaults if (defaults) { hasDefaults(true); if (nsize == 0) { cloneContent(defaults); } else { XMLSize_t dsize = defaults->getLength(); for (XMLSize_t n = 0; n < dsize; n++) { DOMAttr* attr = (DOMAttr*)defaults->item(n); DOMAttr* newAttr = (DOMAttr*)attr->cloneNode(true); setNamedItemNS(newAttr); DOMAttrImpl* newAttrImpl = (DOMAttrImpl*) newAttr; newAttrImpl->setSpecified(false); } } } } // reconcileDefaults()
DOMAttrMapImpl::DOMAttrMapImpl(DOMNode *ownerNod, const DOMNamedNodeMapImpl *defaults) : DOMNamedNodeMapImpl(ownerNod) { hasDefaults(false); if (defaults != 0) { if (defaults->getLength() > 0) { hasDefaults(true); cloneContent(defaults); } } }
AttrMapImpl::AttrMapImpl(NodeImpl *ownerNod, NamedNodeMapImpl *defaults) : NamedNodeMapImpl(ownerNod) { hasDefaults(false); if (defaults != null) { if (defaults->getLength() > 0) { hasDefaults(true); cloneContent(defaults); } } }
DOMAttrMapImpl::DOMAttrMapImpl(DOMNode *ownerNod, const DOMAttrMapImpl *defaults) { this->fOwnerNode=ownerNod; this->fNodes = 0; hasDefaults(false); if (defaults != 0) { if (defaults->getLength() > 0) { hasDefaults(true); cloneContent(defaults); } } }