Convert from NULL macro to nullptr.
[shibboleth/cpp-xmltooling.git] / xmltooling / impl / UnknownElement.h
index aa4cd31..90d9a67 100644 (file)
@@ -1,5 +1,5 @@
 /*
-*  Copyright 2001-2007 Internet2
+*  Copyright 2001-2010 Internet2
  * 
 * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
 /**
  * @file xmltooling/impl/UnknownElement.h
  * 
- * Basic implementation suitable for use as default for unrecognized content
+ * Basic implementation suitable for use as default for unrecognized content.
  */
 
 #ifndef __xmltooling_unkelement_h__
@@ -42,44 +42,34 @@ namespace xmltooling {
     class XMLTOOL_DLLLOCAL UnknownElementImpl : public AbstractSimpleElement, public AbstractDOMCachingXMLObject
     {
     public:
-        UnknownElementImpl(const XMLCh* namespaceURI=NULL, const XMLCh* elementLocalName=NULL, const XMLCh* namespacePrefix=NULL)
-            : AbstractXMLObject(namespaceURI, elementLocalName, namespacePrefix) {}
+        UnknownElementImpl(const XMLCh* namespaceURI=nullptr, const XMLCh* elementLocalName=nullptr, const XMLCh* namespacePrefix=nullptr);
     
-        void releaseDOM() const;
+        virtual ~UnknownElementImpl();
 
+        void releaseDOM() const;
         XMLObject* clone() const;
+        const XMLCh* getTextContent(unsigned int position=0) const;
+        void setTextContent(const XMLCh*, unsigned int position=0);
 
-        const XMLCh* getTextContent(unsigned int position=0) const {
-            throw XMLObjectException("Direct access to content is not permitted.");
-        }
-
-        void setTextContent(const XMLCh*, unsigned int position=0) {
-            throw XMLObjectException("Direct access to content is not permitted.");
-        }
-
-        DOMElement* marshall(
-            DOMDocument* document=NULL
+        xercesc::DOMElement* marshall(
+            xercesc::DOMDocument* document=nullptr
 #ifndef XMLTOOLING_NO_XMLSEC
-            ,const std::vector<xmlsignature::Signature*>* sigs=NULL
+            ,const std::vector<xmlsignature::Signature*>* sigs=nullptr
+            ,const Credential* credential=nullptr
 #endif
             ) const;
 
-        DOMElement* marshall(
-            DOMElement* parentElement
+        xercesc::DOMElement* marshall(
+            xercesc::DOMElement* parentElement
 #ifndef XMLTOOLING_NO_XMLSEC
-            ,const std::vector<xmlsignature::Signature*>* sigs=NULL
+            ,const std::vector<xmlsignature::Signature*>* sigs=nullptr
+            ,const Credential* credential=nullptr
 #endif
             ) const;
-        XMLObject* unmarshall(DOMElement* element, bool bindDocument=false);
+        XMLObject* unmarshall(xercesc::DOMElement* element, bool bindDocument=false);
         
     protected:
-        void setDocumentElement(DOMDocument* document, DOMElement* element) const {
-            DOMElement* documentRoot = document->getDocumentElement();
-            if (documentRoot)
-                document->replaceChild(element, documentRoot);
-            else
-                document->appendChild(element);
-        }
+        void setDocumentElement(xercesc::DOMDocument* document, xercesc::DOMElement* element) const;
 
         mutable std::string m_xml;
 
@@ -95,7 +85,7 @@ namespace xmltooling {
     {
     public:
         XMLObject* buildObject(
-            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=NULL, const QName* schemaType=NULL
+            const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix=nullptr, const QName* schemaType=nullptr
             ) const;
     };