Add toString method.
authorScott Cantor <cantor.2@osu.edu>
Mon, 20 Feb 2006 04:29:56 +0000 (04:29 +0000)
committerScott Cantor <cantor.2@osu.edu>
Mon, 20 Feb 2006 04:29:56 +0000 (04:29 +0000)
xmltooling/QName.cpp
xmltooling/QName.h

index b087246..5872e9f 100644 (file)
@@ -24,6 +24,7 @@
 #include "QName.h"\r
 \r
 using namespace xmltooling;\r
+using namespace std;\r
 \r
 QName::QName(const XMLCh* uri, const XMLCh* localPart, const XMLCh* prefix)\r
 {\r
@@ -119,3 +120,20 @@ bool xmltooling::operator<(const QName& op1, const QName& op2)
     else\r
         return false;\r
 }\r
+\r
+string QName::toString() const\r
+{\r
+    if (!getLocalPart())\r
+        return "";\r
+    auto_ptr_char local(getLocalPart());\r
+    if (getPrefix()) {\r
+        auto_ptr_char pre(getPrefix());\r
+        return string(pre.get()) + ':' + local.get(); \r
+    }\r
+    else if (getNamespaceURI()) {\r
+        auto_ptr_char ns(getNamespaceURI());\r
+        return string("{") + ns.get() + '}' + local.get(); \r
+    }\r
+    else\r
+        return local.get();\r
+}\r
index 8836d6c..3d9e7f8 100644 (file)
@@ -112,6 +112,14 @@ namespace xmltooling {
          */\r
         void setLocalPart(const XMLCh* localPart);\r
         \r
+        /**\r
+         * Gets a string representation of the QName for logging, etc.\r
+         * Format is prefix:localPart or {namespaceURI}localPart if no prefix.\r
+         * \r
+         * @return the string representation\r
+         */\r
+        std::string toString() const;\r
+        \r
     private:\r
 #ifdef HAVE_GOOD_STL\r
         xstring m_uri;\r