Default support for arbitrary DOM objects.
[shibboleth/xmltooling.git] / xmltooling / AbstractDOMCachingXMLObject.h
index 35bd2e1..8093fe8 100644 (file)
@@ -65,17 +65,17 @@ namespace xmltooling {
         /**\r
          * @see DOMCachingXMLObject::releaseDOM()\r
          */\r
-        void releaseDOM();\r
+        virtual void releaseDOM();\r
         \r
         /**\r
          * @see DOMCachingXMLObject::releaseParentDOM()\r
          */\r
-        void releaseParentDOM(bool propagateRelease=true);\r
+        virtual void releaseParentDOM(bool propagateRelease=true);\r
         \r
         /**\r
          * @see DOMCachingXMLObject::releaseChildrenDOM()\r
          */\r
-        void releaseChildrenDOM(bool propagateRelease=true);\r
+        virtual void releaseChildrenDOM(bool propagateRelease=true);\r
     \r
         /**\r
          * A convenience method that is equal to calling releaseDOM() then releaseParentDOM(true).\r
@@ -88,7 +88,7 @@ namespace xmltooling {
         }\r
     \r
         /**\r
-         * A convenience method that is equal to calling releaseDOM() then releaseChildrenDOM(true).\r
+         * A convenience method that is equal to calling releaseChildrenDOM(true) then releaseDOM().\r
          */\r
         void releaseThisAndChildrenDOM() {\r
             if (m_dom) {\r
@@ -132,13 +132,15 @@ namespace xmltooling {
          */\r
         XMLObject* prepareForAssignment(const XMLObject* oldValue, XMLObject* newValue);\r
 \r
+        AbstractDOMCachingXMLObject() : m_dom(NULL), m_document(NULL) {}\r
+\r
         /**\r
          * Constructor\r
          * \r
          * @param namespaceURI the namespace the element is in\r
          * @param elementLocalName the local name of the XML element this Object represents\r
          */\r
-        explicit AbstractDOMCachingXMLObject(const XMLCh* namespaceURI, const XMLCh* elementLocalName)\r
+        AbstractDOMCachingXMLObject(const XMLCh* namespaceURI, const XMLCh* elementLocalName)\r
             : AbstractXMLObject(namespaceURI,elementLocalName), m_dom(NULL), m_document(NULL) {}\r
 \r
     private:\r