Initial unit test plus fixes
[shibboleth/xmltooling.git] / xmltooling / AbstractDOMCachingXMLObject.cpp
index 8a23062..86f8bf7 100644 (file)
@@ -57,23 +57,21 @@ void AbstractDOMCachingXMLObject::setDOM(DOMElement* dom, bool bindDocument)
 void AbstractDOMCachingXMLObject::releaseDOM()\r
 {\r
     Category& log=Category::getInstance(XMLTOOLING_LOGCAT".DOM");\r
-    if (log.isDebugEnabled())\r
-        log.debug("releasing cached DOM reprsentation for %s", getElementQName().toString().c_str());\r
+    if (log.isDebugEnabled()) {\r
+        string qname=getElementQName().toString();\r
+        log.debug("releasing cached DOM representation for (%s)", qname.empty() ? "unknown" : qname.c_str());\r
+    }\r
     setDOM(NULL);\r
 }\r
 \r
 void AbstractDOMCachingXMLObject::releaseParentDOM(bool propagateRelease)\r
 {\r
-    Category& log=Category::getInstance(XMLTOOLING_LOGCAT".DOM");\r
-    if (log.isDebugEnabled()) {\r
-        log.debug(\r
-            "releasing cached DOM representation for parent of %s with propagation set to %s",\r
-            getElementQName().toString().c_str(), propagateRelease ? "true" : "false"\r
-            );\r
-    }\r
-\r
     DOMCachingXMLObject* domCachingParent = dynamic_cast<DOMCachingXMLObject*>(getParent());\r
     if (domCachingParent) {\r
+        Category::getInstance(XMLTOOLING_LOGCAT".DOM").debug(\r
+            "releasing cached DOM representation for parent object with propagation set to %s",\r
+            propagateRelease ? "true" : "false"\r
+            );\r
         domCachingParent->releaseDOM();\r
         if (propagateRelease)\r
             domCachingParent->releaseParentDOM(propagateRelease);\r
@@ -94,23 +92,20 @@ public:
 \r
 void AbstractDOMCachingXMLObject::releaseChildrenDOM(bool propagateRelease)\r
 {\r
-    Category& log=Category::getInstance(XMLTOOLING_LOGCAT".DOM");\r
-    if (log.isDebugEnabled()) {\r
-        log.debug(\r
-            "releasing cached DOM representation for children of %s with propagation set to %s",\r
-            getElementQName().toString().c_str(), propagateRelease ? "true" : "false"\r
-            );\r
-    }\r
-    \r
     vector<XMLObject*> children;\r
-    if (getOrderedChildren(children))\r
+    if (getOrderedChildren(children)) {\r
+        Category::getInstance(XMLTOOLING_LOGCAT".DOM").debug(\r
+            "releasing cached DOM representation for children with propagation set to %s",\r
+            propagateRelease ? "true" : "false"\r
+            );\r
         for_each(children.begin(),children.end(),bind2nd(_release(),propagateRelease));\r
+    }\r
 }\r
 \r
 XMLObject* AbstractDOMCachingXMLObject::prepareForAssignment(const XMLObject* oldValue, XMLObject* newValue) {\r
 \r
     if (newValue && newValue->hasParent())\r
-        throw XMLObjectException("child XMLObject cannot be added - it is already the child of another XMLObject");\r
+        throw XMLObjectException("Child XMLObject cannot be added - it is already the child of another XMLObject");\r
 \r
     if (!oldValue) {\r
         if (newValue) {\r