* Extension of AbstractXMLObject that implements a DOMCachingXMLObject.\r
* This is the primary base class for XMLObject implementation classes to use.\r
*/\r
- class XMLTOOL_API AbstractDOMCachingXMLObject : public AbstractXMLObject, public DOMCachingXMLObject\r
+ class XMLTOOL_API AbstractDOMCachingXMLObject : public AbstractXMLObject, public virtual DOMCachingXMLObject\r
{\r
public:\r
virtual ~AbstractDOMCachingXMLObject();\r
/**\r
* @see DOMCachingXMLObject::setDOM()\r
*/\r
- void setDOM(DOMElement* dom, bool bindDocument=false);\r
+ void setDOM(DOMElement* dom, bool bindDocument=false) const;\r
\r
/**\r
* @see DOMCachingXMLObject::setDocument()\r
*/\r
- void setDocument(DOMDocument* doc) {\r
+ void setDocument(DOMDocument* doc) const {\r
if (m_document)\r
m_document->release();\r
m_document=doc;\r
/**\r
* @see DOMCachingXMLObject::releaseDOM()\r
*/\r
- virtual void releaseDOM();\r
+ virtual void releaseDOM() const;\r
\r
/**\r
* @see DOMCachingXMLObject::releaseParentDOM()\r
*/\r
- virtual void releaseParentDOM(bool propagateRelease=true);\r
+ virtual void releaseParentDOM(bool propagateRelease=true) const;\r
\r
/**\r
* @see DOMCachingXMLObject::releaseChildrenDOM()\r
*/\r
- virtual void releaseChildrenDOM(bool propagateRelease=true);\r
+ virtual void releaseChildrenDOM(bool propagateRelease=true) const;\r
\r
/**\r
* A convenience method that is equal to calling releaseDOM() then releaseParentDOM(true).\r
*/\r
- void releaseThisandParentDOM() {\r
+ void releaseThisandParentDOM() const {\r
if (m_dom) {\r
releaseDOM();\r
releaseParentDOM(true);\r
/**\r
* A convenience method that is equal to calling releaseChildrenDOM(true) then releaseDOM().\r
*/\r
- void releaseThisAndChildrenDOM() {\r
+ void releaseThisAndChildrenDOM() const {\r
if (m_dom) {\r
releaseChildrenDOM(true);\r
releaseDOM();\r
* @param elementLocalName the local name of the XML element this Object represents\r
* @param namespacePrefix the namespace prefix to use\r
*/\r
- AbstractDOMCachingXMLObject(const XMLCh* namespaceURI=NULL, const XMLCh* elementLocalName=NULL, const XMLCh* namespacePrefix=NULL)\r
- : AbstractXMLObject(namespaceURI,elementLocalName, namespacePrefix), m_dom(NULL), m_document(NULL) {}\r
+ AbstractDOMCachingXMLObject(\r
+ const XMLCh* namespaceURI=NULL, const XMLCh* elementLocalName=NULL, const XMLCh* namespacePrefix=NULL\r
+ ) : AbstractXMLObject(namespaceURI,elementLocalName, namespacePrefix), m_dom(NULL), m_document(NULL) {}\r
\r
/**\r
* If a DOM representation exists, this clones it into a new document.\r
XMLObject* prepareForAssignment(XMLObject* oldValue, XMLObject* newValue);\r
\r
private:\r
- DOMElement* m_dom;\r
- DOMDocument* m_document;\r
+ mutable DOMElement* m_dom;\r
+ mutable DOMDocument* m_document;\r
};\r
\r
};\r